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:
cd ~/Desktop/<folder>
python3 virtualenv urban.venv
source urban.venv/bin/activate
pip install -r requirements.txt
jupyter notebooks
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