Code for reproducing key results in the paper QuTE algorithms for decentralized decision making on networks with false discovery rate control by Aaditya Ramdas, Jianbo Chen, Martin J. Wainwright, Michael I. Jordan.
This project was written in Python 2.7. It currently requires the package graph_tool of version 2.22 available on https://graph-tool.skewed.de.
In addition, please 'pip install' the following packages:
numpy
scipy
pandas
statsmodels
matplotlib
We provide the source code to replicate the simulations:
cd simulations/
# A test run of the first experiment on G(n,p)
python run_simulations.py --replicate 10 --experiment gnp
# A test run of the second experiment on grid graphs.
python run_simulations.py --replicate 10 --experiment grid
# The figures can only be plotted after the corresponding experiment has been run.
# Plot figures for the first experiment on G(n,p).
python run_simulations.py --experiment plot_gnp
# Plot figures for the second experiment on grid graphs.
python run_simulations.py --experiment plot_grid
Data and plots used in our paper use 1,000 replications. Below we plot the results from two experiments:
Experiment on G(n,p):
Achieved FDR v.s. p in G(n,p) | Power v.s. p in G(n,p) |
Experiment on grid graphs:
Achieved FDR v.s. Rounds of communication | Power v.s. Rounds of communication |
The figures can also be found in simulations/results/figures. Details can be found in our paper.
We also provide the source code to replicate our experiment on Intel Lab Data:
# Extract and clean the real data, run QuTE and generate the three figures.
cd applications/
python run_real_data.py
Below are three generated figuers with threshold on communication probability being 0.1, 0.3, 0.5 respectively. The figures can also be found in applications/results. Details can be found in our paper.
Threshold=0.1 | Threshold=0.3 | Threshold=0.5 |