@@ -73,10 +73,17 @@ test_liu_full = function(seed=1, outfile=NULL, family="gaussian", lambda_frac=0.
73
73
} else {
74
74
glm_Xy = glm(y ~ X [,active_vars ] - 1 , family = binomial )
75
75
}
76
- naive_pvalues = c(naive_pvalues , summary(glm_Xy )$ coef [,4 ])
76
+
77
+ naive_Z = PVS $ estimate / PVS $ std_err
78
+ naive_P = pnorm(naive_Z )
79
+ naive_P = 2 * pmin(naive_P , 1 - naive_P )
80
+ naive_pvalues = c(naive_pvalues , naive_P )
77
81
sel_intervals = rbind(sel_intervals , PVS $ intervals ) # matrix with two rows
78
- naive_int = confint(glm_Xy , level = 0.9 )
82
+ naive_Q = qnorm(0.95 )
83
+ naive_int = cbind(PVS $ estimate - naive_Q * PVS $ std_err , PVS $ estimate + naive_Q * PVS $ std_err )
84
+ naive_int [is.na(PVS $ pvalues ),] = NA
79
85
naive_intervals = rbind(naive_intervals , naive_int )
86
+ print(' naive intervals' )
80
87
print(naive_intervals )
81
88
if (length(pvalues )> 0 ){
82
89
plot(ecdf(pvalues ))
@@ -92,12 +99,15 @@ test_liu_full = function(seed=1, outfile=NULL, family="gaussian", lambda_frac=0.
92
99
sel_lengths = c(sel_lengths , as.vector(naive_int [,2 ]- naive_int [,1 ]))
93
100
naive_lengths = c(naive_lengths , as.vector(PVS $ naive_intervals [,2 ]- PVS $ naive_intervals [,1 ]))
94
101
# cat("sel cov", sel_coverages, "\n")
95
- print(c(" selective coverage:" , mean(sel_coverages )))
96
- print(c(" naive coverage:" , mean(naive_coverages )))
97
- print(c(" selective length mean:" , mean(sel_lengths )))
98
- print(c(" selective length median:" , median(sel_lengths )))
99
- print(c(" naive length mean:" , mean(naive_lengths )))
100
- print(c(" naive length median:" , median(naive_lengths )))
102
+ print(c(" selective coverage:" , mean(sel_coverages , na.rm = TRUE )))
103
+ NA_sel = is.na(sel_coverages )
104
+ naive_coverages [NA_sel ] = NA
105
+ print(c(" naive coverage:" , mean(naive_coverages , na.rm = TRUE )))
106
+ print(c(" selective length mean:" , mean(sel_lengths , na.rm = TRUE )))
107
+ print(c(" selective length median:" , median(sel_lengths , na.rm = TRUE )))
108
+ naive_lengths [NA_sel ] = NA
109
+ print(c(" naive length mean:" , mean(naive_lengths , na.rm = TRUE )))
110
+ print(c(" naive length median:" , median(naive_lengths , na.rm = TRUE )))
101
111
}
102
112
103
113
mc = selectiveInference ::: selective.plus.BH(beta , active_vars , PVS $ pvalues , q = 0.2 )
0 commit comments