Skip to content

Commit 6dae27c

Browse files
author
Jelena Markovic
committed
weights running in |E|+1 dimensions
1 parent ff34a52 commit 6dae27c

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

selectiveInference/R/funs.randomized.R

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -296,16 +296,28 @@ randomized_inference = function(X, y, sigma, lam, noise_scale, ridge_term, level
296296
target_cov[i,i],
297297
cov_target_internal[,i],
298298
internal_transform)
299-
299+
300+
target_opt_linear = cbind(target_transform$linear_term, opt_transform$linear_term)
301+
reduced_target_opt_linear = chol(t(target_opt_linear) %*% target_opt_linear)
302+
target_linear = reduced_target_opt_linear[,1]
303+
temp = solve(t(reduced_target_opt_linear)) %*% t(target_opt_linear)
304+
target_offset = temp %*% target_transform$offset_term
305+
target_transform = list(linear_term = as.matrix(target_linear), offset_term = target_offset)
306+
print(dim(reduced_target_opt_linear))
307+
opt_linear = reduced_target_opt_linear[,2:ncol(reduced_target_opt_linear)]
308+
opt_offset = temp %*% opt_transform$offset_term
309+
opt_transform_reduced = list(linear_term = as.matrix(opt_linear), offset_term = opt_offset)
310+
311+
raw = target_transform$linear_term * observed_target[i] +target_transform$offset_term
312+
300313
target_sample = rnorm(nrow(as.matrix(opt_samples))) * sqrt(target_cov[i,i])
301-
print(length(target_sample))
302314
pivot = function(candidate){
303315
weights = selectiveInference:::importance_weight(noise_scale,
304316
t(as.matrix(target_sample)) + candidate,
305317
t(opt_samples),
306-
opt_transform,
318+
opt_transform_reduced,
307319
target_transform,
308-
observed_raw)
320+
raw)
309321
return(mean((target_sample+candidate<observed_target[i])*weights)/mean(weights))
310322
}
311323
rootU = function(candidate){

tests/randomized/test_instances.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ gaussian_instance = function(n, p, s, sigma=1, rho=0, signal=6, X=NA,
2525
}
2626

2727

28-
collect_results = function(n,p,s, nsim=1, level=0.9){
28+
collect_results = function(n,p,s, nsim=100, level=0.9){
2929
rho=0.3
30-
lam=2.
30+
lam=1.
3131
sigma=1
3232
sample_pvalues = c()
3333
sample_coverage = c()

0 commit comments

Comments
 (0)