|
31 | 31 | model_x_knockoff_pvalue,
|
32 | 32 | )
|
33 | 33 | from hidimstat.statistical_tools.multiple_testing import fdp_power
|
34 |
| -from hidimstat._utils.scenario import multivariate_1D_simulation_AR |
| 34 | +from hidimstat._utils.scenario import multivariate_simulation |
35 | 35 |
|
36 | 36 |
|
37 | 37 | #############################################################################
|
|
49 | 49 | # Number of variables
|
50 | 50 | n_features = 150
|
51 | 51 | # Correlation parameter
|
52 |
| -rho = 0.4 |
| 52 | +rho = 0.5 |
53 | 53 | # Ratio of number of variables with non-zero coefficients over total
|
54 | 54 | # coefficients
|
55 | 55 | sparsity = 0.2
|
56 | 56 | # Desired controlled False Discovery Rate (FDR) level
|
57 | 57 | fdr = 0.1
|
58 | 58 | # signal noise ration
|
59 |
| -snr = 10 |
| 59 | +signal_noise_ratio = 10 |
60 | 60 | # number of repetitions for the bootstraps
|
61 | 61 | n_bootstraps = 25
|
62 | 62 | # seed for the random generator
|
|
73 | 73 | #######################################################################
|
74 | 74 | # Define the function for running the three procedures on the same data
|
75 | 75 | # ---------------------------------------------------------------------
|
76 |
| -def single_run(n_samples, n_features, rho, sparsity, snr, fdr, n_bootstraps, seed=None): |
| 76 | +def single_run( |
| 77 | + n_samples, |
| 78 | + n_features, |
| 79 | + rho, |
| 80 | + sparsity, |
| 81 | + signal_noise_ratio, |
| 82 | + fdr, |
| 83 | + n_bootstraps, |
| 84 | + seed=None, |
| 85 | +): |
77 | 86 | # Generate data
|
78 |
| - X, y, _, non_zero_index = multivariate_1D_simulation_AR( |
79 |
| - n_samples, n_features, rho=rho, sparsity=sparsity, seed=seed, snr=snr |
| 87 | + X, y, beta_true, noise = multivariate_simulation( |
| 88 | + n_samples, |
| 89 | + n_features, |
| 90 | + rho=rho, |
| 91 | + support_size=int(n_features * sparsity), |
| 92 | + signal_noise_ratio=signal_noise_ratio, |
| 93 | + seed=seed, |
80 | 94 | )
|
| 95 | + non_zero_index = np.where(beta_true)[0] |
81 | 96 |
|
82 | 97 | # Use model-X Knockoffs [1]
|
83 | 98 | selected, test_scores, threshold, X_tildes = model_x_knockoff(
|
@@ -165,7 +180,14 @@ def effect_number_samples(n_samples):
|
165 | 180 | parallel = Parallel(n_jobs, verbose=joblib_verbose)
|
166 | 181 | results = parallel(
|
167 | 182 | delayed(single_run)(
|
168 |
| - n_samples, n_features, rho, sparsity, snr, fdr, n_bootstraps, seed=seed |
| 183 | + n_samples, |
| 184 | + n_features, |
| 185 | + rho, |
| 186 | + sparsity, |
| 187 | + signal_noise_ratio, |
| 188 | + fdr, |
| 189 | + n_bootstraps, |
| 190 | + seed=seed, |
169 | 191 | )
|
170 | 192 | for seed in seed_list
|
171 | 193 | )
|
|
0 commit comments