Title of Dataset: Urban Scaling of the Firearm Ecosystem

Author/Principal Investigator Information Name: Rayan Succar ORCID: 0000-0003-0927-3147 Institution: Center for Urban Science and Progress, Tandon School of Engineering, New York University, Brooklyn, NY, USA Email: rs7949@nyu.edu

Author/Associate/Co-investigator/Collaborator Information Name: Maurizio Porfiri ORCID: 0000-0002-1480-3539 Institution: Center for Urban Science and Progress, Tandon School of Engineering, New York University, Brooklyn, NY, USA Email: mporfiri@nyu.edu

Date of data collection: Data analyzed was obtained in 2023; period analyzed is the 6-year period between 2014-2019

Geographic location of data collection: USA

Funding sources: National Science Foundation, LEAP-HI: Understanding and Engineering the Ecosystem of Firearms: Prevalence, Safety, and Firearm-Related Harms, Award 1953135

SHARING/ACCESS INFORMATION

Recommended citation for this dataset: Succar, R., & Porfiri, M. (2024). Urban scaling of firearm violence, ownership and accessibility in the United States [Data set]. New York University. https://doi.org/10.58153/xv1tw-98j62

Licenses/restrictions placed on the data: GPL 3.0

Links to publications that cite or use the data: Succar, R., Porfiri, M. Urban scaling of firearm violence, ownership and accessibility in the United States. Nat Cities 1, 216–224 (2024). https://doi.org/10.1038/s44284-024-00034-8

Links to other publicly accessible locations of the data:

Data sources: CDC WONDER, https://wonder.cdc.gov/ucd-icd10.html; Ko, J. L. Gun Violence Data, https://www.kaggle.com/datasets/jameslko/gun-violence-data (2022); U.S. Bureau of Labor Statistics County-MSA-CSA Crosswalk, https://www.bls.gov/cew/classifications/areas/county-msa-csa-crosswalk.htm; Bureau of Alcohol, Tobacco, Firearms and Explosives (ATF) Listing of Federal Firearms Licensees (FFLs), https://www.atf.gov/firearms/listing-federal-firearms-licensees-ffls-2016

METHODOLOGICAL INFORMATION

Description of methods used for collection/generation of data: Data was derived from above sources; full methodological information included in the publication.

DESCRIPTION

This repository has the necessary codes and instructions to replicate the results of the publication.

The folders and files are:

"Armed_Robberies_Scaling" is a script that provides an example of how we performed the scaling analysis and got the SAMIs.

"Causal_Results" is the script of the main causal analysis with the three variables (homicides, firearm ownership, federal firearm selling licenses)

"Clean_data" contains data about the scale-adjusted metropolitan indicators (SAMIs) of the three main variables presented in the main manuscript (homicides, firearm ownership, federal firearm selling licenses), as well as the SAMIs of the four variables examined in the Supplementary Material (firearm homicides, armed robberies, Gini index of income inequality, urbanicity). The folder also contains processed data on firearm armed robberies and gun shops along with the aggregated population of the years 2013-2018. The raw data can be found on the original sources, as described in the manuscript. "SAMIs_Rankings" is the ranking of the MSAs/MicroSAs with respect to the SAMIs of the three main urban features. The "Armed_Robberies_Scaling" notebook calls "Armed_Robberies_GIS.xlsx," but a csv version of this file has also been provided for accessibility.

"Helpers" contains two datasets that we used to aggregate data from zip codes and county codes resolution to MSA/MicroSA resolution.

"requirements.txt" provides the complete list of dependencies required to run the two Jupyter Notebooks.

"Supplement_Causal" has a copy of the results and script of the PC algorithm of the Python package gCastle, modified to perform mutual information as the statistical test of independence. For more information on gCastle, see Zhang, et. al.(2021), "gCastle: A Python Toolbox for Causal Discovery," https://doi.org/10.48550/arXiv.2111.15155.

INSTALLATION/RUNNING

This software is provided in the form of two Jupyter Notebooks, Armed_Robberies_Scaling and Causal_Results. Dependency information for the notebooks is listed in the included requirements.txt. To replicate the results:

  1. Download and extract all files to your desktop.
  2. Open up a terminal.
  3. Change directory to the unzipped folder you just put on your desktop: cd ~/Desktop/<folder>
  4. Create a virtual environment: python3 virtualenv urban.venv
  5. Activate the virtual environment: source urban.venv/bin/activate
  6. Run this command to install all the dependencies in this repository: pip install -r requirements.txt
  7. Next we'll run jupyter. A browser window will pop up with the notebooks listed. Use this command to start the jupyter notebook server: jupyter notebooks
  8. Pick a notebook, and run it from top-to-bottom.

FILE LIST

├── Armed_Robberies_Scaling.ipynb ├── Causal Results.ipynb ├── Clean_data │   ├── 2013_2018_Underlying Cause of Death, 1999-2020.csv │   ├── Armed_Robberies_GIS.xlsx │   ├── Armed_Robberies_MSA.csv │   ├── Gun_Shops_df_14_19_Type_06.csv │   ├── SAMIs_7_Variables.csv │   └── SAMIs_Type_06.csv ├── Helpers │   ├── Geography_MSA_ZIP_2018.csv │   └── qcew-county-msa-csa-crosswalk.xlsx ├── README.md ├── SAMIs_Rankings.csv └── Supplement_Causal ├── PC.ipynb ├── Tigramite_Tests │   ├── Independance_tests_Parents │   │   ├── pycache │   │   │   ├── independence_tests_base.cpython-38.pyc │   │   │   └── independence_tests_base.cpython-39.pyc │   │   └── independence_tests_base.py │   ├── pycache │   │   ├── cmiknn.cpython-38.pyc │   │   └── cmiknn.cpython-39.pyc │   └── cmiknn.py └── castle ├── init.py ├── pycache │   ├── init.cpython-38.pyc │   └── init.cpython-39.pyc ├── algorithms │   ├── init.py │   ├── pycache │   │   ├── init.cpython-38.pyc │   │   └── init.cpython-39.pyc │   ├── anm │   │   ├── init.py │   │   ├── pycache │   │   │   ├── init.cpython-38.pyc │   │   │   ├── init.cpython-39.pyc │   │   │   ├── _anm.cpython-38.pyc │   │   │   └── _anm.cpython-39.pyc │   │   └── _anm.py │   ├── ges │   │   ├── init.py │   │   ├── pycache │   │   │   ├── init.cpython-38.pyc │   │   │   ├── init.cpython-39.pyc │   │   │   ├── ges.cpython-38.pyc │   │   │   └── ges.cpython-39.pyc │   │   ├── functional │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   ├── graph.cpython-38.pyc │   │   │   │   ├── graph.cpython-39.pyc │   │   │   │   ├── utils.cpython-38.pyc │   │   │   │   └── utils.cpython-39.pyc │   │   │   ├── graph.py │   │   │   └── utils.py │   │   ├── ges.py │   │   ├── operators │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   ├── deleter.cpython-38.pyc │   │   │   │   ├── deleter.cpython-39.pyc │   │   │   │   ├── inserter.cpython-38.pyc │   │   │   │   ├── inserter.cpython-39.pyc │   │   │   │   ├── search.cpython-38.pyc │   │   │   │   └── search.cpython-39.pyc │   │   │   ├── deleter.py │   │   │   ├── inserter.py │   │   │   └── search.py │   │   └── score │   │   ├── init.py │   │   ├── pycache │   │   │   ├── init.cpython-38.pyc │   │   │   ├── init.cpython-39.pyc │   │   │   ├── local_scores.cpython-38.pyc │   │   │   └── local_scores.cpython-39.pyc │   │   └── local_scores.py │   ├── gradient │   │   ├── init.py │   │   ├── pycache │   │   │   ├── init.cpython-38.pyc │   │   │   └── init.cpython-39.pyc │   │   ├── corl │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   └── init.cpython-39.pyc │   │   │   └── torch │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   ├── corl.cpython-38.pyc │   │   │   │   └── corl.cpython-39.pyc │   │   │   ├── corl.py │   │   │   ├── frame │   │   │   │   ├── init.py │   │   │   │   ├── pycache │   │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   │   ├── _actor.cpython-38.pyc │   │   │   │   │   ├── _actor.cpython-39.pyc │   │   │   │   │   ├── _critic.cpython-38.pyc │   │   │   │   │   ├── _critic.cpython-39.pyc │   │   │   │   │   ├── _reward.cpython-38.pyc │   │   │   │   │   ├── _reward.cpython-39.pyc │   │   │   │   │   ├── score_function.cpython-38.pyc │   │   │   │   │   └── score_function.cpython-39.pyc │   │   │   │   ├── _actor.py │   │   │   │   ├── _critic.py │   │   │   │   ├── _reward.py │   │   │   │   └── score_function.py │   │   │   ├── models │   │   │   │   ├── init.py │   │   │   │   ├── pycache │   │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   │   ├── _base_network.cpython-38.pyc │   │   │   │   │   ├── _base_network.cpython-39.pyc │   │   │   │   │   ├── decoders.cpython-38.pyc │   │   │   │   │   ├── decoders.cpython-39.pyc │   │   │   │   │   ├── encoders.cpython-38.pyc │   │   │   │   │   └── encoders.cpython-39.pyc │   │   │   │   ├── _base_network.py │   │   │   │   ├── decoders.py │   │   │   │   └── encoders.py │   │   │   └── utils │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   ├── data_loader.cpython-38.pyc │   │   │   │   ├── data_loader.cpython-39.pyc │   │   │   │   ├── graph_analysis.cpython-38.pyc │   │   │   │   ├── graph_analysis.cpython-39.pyc │   │   │   │   ├── validation.cpython-38.pyc │   │   │   │   └── validation.cpython-39.pyc │   │   │   ├── data_loader.py │   │   │   ├── graph_analysis.py │   │   │   └── validation.py │   │   ├── dag_gnn │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   └── init.cpython-39.pyc │   │   │   └── torch │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   ├── dag_gnn.cpython-38.pyc │   │   │   │   └── dag_gnn.cpython-39.pyc │   │   │   ├── dag_gnn.py │   │   │   ├── models │   │   │   │   ├── init.py │   │   │   │   ├── pycache │   │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   │   ├── modules.cpython-38.pyc │   │   │   │   │   └── modules.cpython-39.pyc │   │   │   │   └── modules.py │   │   │   └── utils │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   ├── functions.cpython-38.pyc │   │   │   │   └── functions.cpython-39.pyc │   │   │   └── functions.py │   │   ├── gae │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   └── init.cpython-39.pyc │   │   │   └── torch │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   ├── gae.cpython-38.pyc │   │   │   │   └── gae.cpython-39.pyc │   │   │   ├── gae.py │   │   │   ├── models │   │   │   │   ├── init.py │   │   │   │   ├── pycache │   │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   │   ├── model.cpython-38.pyc │   │   │   │   │   └── model.cpython-39.pyc │   │   │   │   └── model.py │   │   │   └── trainers │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   ├── al_trainer.cpython-38.pyc │   │   │   │   └── al_trainer.cpython-39.pyc │   │   │   └── al_trainer.py │   │   ├── gran_dag │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   └── init.cpython-39.pyc │   │   │   ├── mindspore │   │   │   │   ├── init.py │   │   │   │   ├── base │   │   │   │   │   ├── init.py │   │   │   │   │   ├── base_model.py │   │   │   │   │   └── dag_optimizer.py │   │   │   │   └── gran_dag.py │   │   │   └── torch │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   ├── gran_dag.cpython-38.pyc │   │   │   │   └── gran_dag.cpython-39.pyc │   │   │   ├── base │   │   │   │   ├── init.py │   │   │   │   ├── pycache │   │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   │   ├── base_model.cpython-38.pyc │   │   │   │   │   ├── base_model.cpython-39.pyc │   │   │   │   │   ├── dag_optimizer.cpython-38.pyc │   │   │   │   │   └── dag_optimizer.cpython-39.pyc │   │   │   │   ├── base_model.py │   │   │   │   └── dag_optimizer.py │   │   │   └── gran_dag.py │   │   ├── mcsl │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   └── init.cpython-39.pyc │   │   │   └── torch │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   ├── mcsl.cpython-38.pyc │   │   │   │   └── mcsl.cpython-39.pyc │   │   │   ├── helpers │   │   │   │   ├── init.py │   │   │   │   ├── pycache │   │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   │   ├── utils.cpython-38.pyc │   │   │   │   │   └── utils.cpython-39.pyc │   │   │   │   └── utils.py │   │   │   ├── mcsl.py │   │   │   ├── models │   │   │   │   ├── init.py │   │   │   │   ├── pycache │   │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   │   ├── masked_model.cpython-38.pyc │   │   │   │   │   ├── masked_model.cpython-39.pyc │   │   │   │   │   ├── masked_nn.cpython-38.pyc │   │   │   │   │   ├── masked_nn.cpython-39.pyc │   │   │   │   │   ├── masked_quadratic_regression.cpython-38.pyc │   │   │   │   │   └── masked_quadratic_regression.cpython-39.pyc │   │   │   │   ├── masked_model.py │   │   │   │   ├── masked_nn.py │   │   │   │   └── masked_quadratic_regression.py │   │   │   └── trainers │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   ├── al_trainer.cpython-38.pyc │   │   │   │   └── al_trainer.cpython-39.pyc │   │   │   └── al_trainer.py │   │   ├── notears │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   ├── linear.cpython-38.pyc │   │   │   │   ├── linear.cpython-39.pyc │   │   │   │   ├── low_rank.cpython-38.pyc │   │   │   │   └── low_rank.cpython-39.pyc │   │   │   ├── linear.py │   │   │   ├── low_rank.py │   │   │   └── torch │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   ├── golem.cpython-38.pyc │   │   │   │   ├── golem.cpython-39.pyc │   │   │   │   ├── models.cpython-38.pyc │   │   │   │   ├── models.cpython-39.pyc │   │   │   │   ├── nonlinear.cpython-38.pyc │   │   │   │   └── nonlinear.cpython-39.pyc │   │   │   ├── golem.py │   │   │   ├── golem_utils │   │   │   │   ├── init.py │   │   │   │   ├── pycache │   │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   │   ├── golem_model.cpython-38.pyc │   │   │   │   │   ├── golem_model.cpython-39.pyc │   │   │   │   │   ├── train.cpython-38.pyc │   │   │   │   │   ├── train.cpython-39.pyc │   │   │   │   │   ├── utils.cpython-38.pyc │   │   │   │   │   └── utils.cpython-39.pyc │   │   │   │   ├── golem_model.py │   │   │   │   ├── train.py │   │   │   │   └── utils.py │   │   │   ├── models.py │   │   │   ├── nonlinear.py │   │   │   └── utils │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   ├── lbfgsb_scipy.cpython-38.pyc │   │   │   │   ├── lbfgsb_scipy.cpython-39.pyc │   │   │   │   ├── locally_connected.cpython-38.pyc │   │   │   │   └── locally_connected.cpython-39.pyc │   │   │   ├── lbfgsb_scipy.py │   │   │   └── locally_connected.py │   │   ├── pnl │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   └── init.cpython-39.pyc │   │   │   └── torch │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   ├── pnl.cpython-38.pyc │   │   │   │   ├── pnl.cpython-39.pyc │   │   │   │   ├── utils.cpython-38.pyc │   │   │   │   └── utils.cpython-39.pyc │   │   │   ├── pnl.py │   │   │   └── utils.py │   │   └── rl │   │   ├── init.py │   │   ├── pycache │   │   │   ├── init.cpython-38.pyc │   │   │   └── init.cpython-39.pyc │   │   └── torch │   │   ├── init.py │   │   ├── pycache │   │   │   ├── init.cpython-38.pyc │   │   │   ├── init.cpython-39.pyc │   │   │   ├── rl.cpython-38.pyc │   │   │   └── rl.cpython-39.pyc │   │   ├── data_loader │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   ├── dataset_read_data.cpython-38.pyc │   │   │   │   └── dataset_read_data.cpython-39.pyc │   │   │   └── dataset_read_data.py │   │   ├── helpers │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   ├── analyze_utils.cpython-38.pyc │   │   │   │   ├── analyze_utils.cpython-39.pyc │   │   │   │   ├── lambda_utils.cpython-38.pyc │   │   │   │   ├── lambda_utils.cpython-39.pyc │   │   │   │   ├── torch_utils.cpython-38.pyc │   │   │   │   └── torch_utils.cpython-39.pyc │   │   │   ├── analyze_utils.py │   │   │   ├── lambda_utils.py │   │   │   └── torch_utils.py │   │   ├── models │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   ├── actor_graph.cpython-38.pyc │   │   │   │   ├── actor_graph.cpython-39.pyc │   │   │   │   ├── critic.cpython-38.pyc │   │   │   │   └── critic.cpython-39.pyc │   │   │   ├── actor_graph.py │   │   │   ├── critic.py │   │   │   ├── decoder │   │   │   │   ├── init.py │   │   │   │   ├── pycache │   │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   │   ├── decoder.cpython-38.pyc │   │   │   │   │   └── decoder.cpython-39.pyc │   │   │   │   └── decoder.py │   │   │   └── encoder │   │   │   ├── init.py │   │   │   ├── pycache │   │   │   │   ├── init.cpython-38.pyc │   │   │   │   ├── init.cpython-39.pyc │   │   │   │   ├── encoder.cpython-38.pyc │   │   │   │   └── encoder.cpython-39.pyc │   │   │   └── encoder.py │   │   ├── rewards │   │   │   ├── Reward_BIC.py │   │   │   ├── init.py │   │   │   └── pycache │   │   │   ├── Reward_BIC.cpython-38.pyc │   │   │   ├── Reward_BIC.cpython-39.pyc │   │   │   ├── init.cpython-38.pyc │   │   │   └── init.cpython-39.pyc │   │   └── rl.py │   ├── lingam │   │   ├── init.py │   │   ├── pycache │   │   │   ├── init.cpython-38.pyc │   │   │   ├── init.cpython-39.pyc │   │   │   ├── direct_lingam.cpython-38.pyc │   │   │   ├── direct_lingam.cpython-39.pyc │   │   │   ├── ica_lingam.cpython-38.pyc │   │   │   └── ica_lingam.cpython-39.pyc │   │   ├── direct_lingam.py │   │   ├── ica_lingam.py │   │   └── utils │   │   ├── init.py │   │   ├── pycache │   │   │   ├── init.cpython-38.pyc │   │   │   ├── init.cpython-39.pyc │   │   │   ├── base.cpython-38.pyc │   │   │   ├── base.cpython-39.pyc │   │   │   ├── bootstrap.cpython-38.pyc │   │   │   └── bootstrap.cpython-39.pyc │   │   ├── base.py │   │   └── bootstrap.py │   ├── pc │   │   ├── init.py │   │   ├── pycache │   │   │   ├── init.cpython-38.pyc │   │   │   ├── init.cpython-39.pyc │   │   │   ├── pc.cpython-38.pyc │   │   │   └── pc.cpython-39.pyc │   │   └── pc.py │   └── ttpm │   ├── init.py │   ├── pycache │   │   ├── init.cpython-38.pyc │   │   ├── init.cpython-39.pyc │   │   ├── ttpm.cpython-38.pyc │   │   └── ttpm.cpython-39.pyc │   └── ttpm.py ├── backend │   ├── init.py │   ├── pycache │   │   ├── init.cpython-38.pyc │   │   └── init.cpython-39.pyc │   ├── mindspore │   │   └── init.py │   └── pytorch │   ├── init.py │   └── pycache │   ├── init.cpython-38.pyc │   └── init.cpython-39.pyc ├── common │   ├── Tigramite_Stuff │   │   ├── Independance_tests_Parents │   │   │   ├── pycache │   │   │   │   ├── independence_tests_base.cpython-38.pyc │   │   │   │   └── independence_tests_base.cpython-39.pyc │   │   │   └── independence_tests_base.py │   │   ├── pycache │   │   │   ├── cmiknn.cpython-38.pyc │   │   │   └── cmiknn.cpython-39.pyc │   │   └── cmiknn.py │   ├── init.py │   ├── pycache │   │   ├── init.cpython-38.pyc │   │   ├── init.cpython-39.pyc │   │   ├── base.cpython-38.pyc │   │   ├── base.cpython-39.pyc │   │   ├── cmiknn.cpython-39.pyc │   │   ├── consts.cpython-38.pyc │   │   ├── consts.cpython-39.pyc │   │   ├── independence_tests.cpython-38.pyc │   │   ├── independence_tests.cpython-39.pyc │   │   ├── independence_tests_base.cpython-39.pyc │   │   ├── plot_dag.cpython-38.pyc │   │   ├── plot_dag.cpython-39.pyc │   │   ├── priori_knowledge.cpython-38.pyc │   │   ├── priori_knowledge.cpython-39.pyc │   │   ├── validator.cpython-38.pyc │   │   └── validator.cpython-39.pyc │   ├── base.py │   ├── consts.py │   ├── independence_tests.py │   ├── plot_dag.py │   ├── priori_knowledge.py │   └── validator.py ├── datasets │   ├── init.py │   ├── pycache │   │   ├── init.cpython-38.pyc │   │   ├── init.cpython-39.pyc │   │   ├── builtin_dataset.cpython-38.pyc │   │   ├── builtin_dataset.cpython-39.pyc │   │   ├── loader.cpython-38.pyc │   │   ├── loader.cpython-39.pyc │   │   ├── simulator.cpython-38.pyc │   │   └── simulator.cpython-39.pyc │   ├── builtin_dataset.py │   ├── loader.py │   └── simulator.py └── metrics ├── init.py ├── pycache │   ├── init.cpython-38.pyc │   ├── init.cpython-39.pyc │   ├── evaluation.cpython-38.pyc │   └── evaluation.cpython-39.pyc └── evaluation.py