Skip to content

Commit ff34a52

Browse files
author
Jelena Markovic
committed
dealing with zero length active set
1 parent e2f4585 commit ff34a52

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

selectiveInference/R/funs.randomized.R

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,9 @@ randomized_inference = function(X, y, sigma, lam, noise_scale, ridge_term, level
264264
p = ncol(X)
265265
lasso_soln = selectiveInference:::randomizedLASSO(X, y, lam, noise_scale, ridge_term)
266266
active_set = lasso_soln$active_set
267+
if (length(active_set)==0){
268+
return (list(active_set=active_set, pvalues=c(), ci=c()))
269+
}
267270
inactive_set = lasso_soln$inactive_set
268271
nactive = length(active_set)
269272

@@ -293,8 +296,9 @@ randomized_inference = function(X, y, sigma, lam, noise_scale, ridge_term, level
293296
target_cov[i,i],
294297
cov_target_internal[,i],
295298
internal_transform)
299+
296300
target_sample = rnorm(nrow(as.matrix(opt_samples))) * sqrt(target_cov[i,i])
297-
301+
print(length(target_sample))
298302
pivot = function(candidate){
299303
weights = selectiveInference:::importance_weight(noise_scale,
300304
t(as.matrix(target_sample)) + candidate,

tests/randomized/test_instances.R

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -39,22 +39,26 @@ collect_results = function(n,p,s, nsim=1, level=0.9){
3939
ridge_term=sd(y)/sqrt(n)
4040
noise_scale = sd(y)/2
4141
result = selectiveInference:::randomized_inference(X,y,sigma,lam,noise_scale,ridge_term, level)
42-
true_beta = beta[result$active_set]
43-
coverage = rep(0, nrow(result$ci))
44-
for (i in 1:nrow(result$ci)){
45-
if (result$ci[i,1]<true_beta[i] & result$ci[i,2]>true_beta[i]){
46-
coverage[i]=1
42+
if (length(result$active_set)>0){
43+
true_beta = beta[result$active_set]
44+
coverage = rep(0, nrow(result$ci))
45+
for (i in 1:nrow(result$ci)){
46+
if (result$ci[i,1]<true_beta[i] & result$ci[i,2]>true_beta[i]){
47+
coverage[i]=1
48+
}
49+
print(paste("ci", toString(result$ci[i,])))
4750
}
48-
print(paste("ci", toString(result$ci[i,])))
51+
sample_pvalues = c(sample_pvalues, result$pvalues)
52+
sample_coverage = c(sample_coverage, coverage)
4953
}
50-
sample_pvalues = c(sample_pvalues, result$pvalues)
51-
sample_coverage = c(sample_coverage, coverage)
5254
}
53-
print(paste("coverage", mean(sample_coverage)))
54-
jpeg('pivots.jpg')
55-
plot(ecdf(sample_pvalues), xlim=c(0,1), main="Empirical CDF of null p-values", xlab="p-values", ylab="ecdf")
56-
abline(0, 1, lty=2)
57-
dev.off()
55+
if (length(sample_coverage)>0){
56+
print(paste("coverage", mean(sample_coverage)))
57+
jpeg('pivots.jpg')
58+
plot(ecdf(sample_pvalues), xlim=c(0,1), main="Empirical CDF of null p-values", xlab="p-values", ylab="ecdf")
59+
abline(0, 1, lty=2)
60+
dev.off()
61+
}
5862
}
5963

6064
set.seed(1)

0 commit comments

Comments
 (0)