Skip to content

Commit 68e27f4

Browse files
author
Jelena Markovic
committed
bug in weights
1 parent fdff629 commit 68e27f4

File tree

2 files changed

+12
-15
lines changed

2 files changed

+12
-15
lines changed

selectiveInference/R/funs.randomized.R

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ importance_weight = function(noise_scale,
216216
log_den = log_density_gaussian_conditional_(noise_scale,
217217
opt_transform$linear_term,
218218
as.matrix(opt_sample),
219-
observed_raw)
219+
observed_raw+opt_transform$offset_term)
220220
W = log_num - log_den
221221
W = W - max(W)
222222
return(exp(W))

tests/randomized/test_instances.R

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ gaussian_instance = function(n, p, s, sigma=1, rho=0, signal=6, X=NA,
3030
conditional_density = function(noise_scale, lasso_soln){
3131

3232
active_set = lasso_soln$active_set
33-
inactive_set = lasso_soln$inactive_set
3433
observed_raw = lasso_soln$observed_raw
3534
opt_linear = lasso_soln$optimization_transform$linear_term
3635
opt_offset = lasso_soln$optimization_transform$offset_term
@@ -41,15 +40,14 @@ conditional_density = function(noise_scale, lasso_soln){
4140
beta_offset = observed_raw+opt_offset
4241
p=length(observed_opt_state)
4342
if (nactive<p){
44-
U=opt_linear[,(nactive+1):p]
45-
beta_offset =+U %*% observed_opt_state[(nactive+1):p]
43+
beta_offset = beta_offset+(opt_linear[,(nactive+1):p] %*% observed_opt_state[(nactive+1):p])
4644
}
47-
opt_transform = list(linear_term=B, offset_term = beta_offset)
45+
opt_transform = list(linear_term=B,
46+
offset_term = beta_offset)
4847
reduced_B = chol(t(B) %*% B)
4948
reduced_beta_offset = solve(t(reduced_B)) %*% (t(B) %*% beta_offset)
5049

5150
log_condl_optimization_density = function(opt_state) {
52-
5351
if (sum(opt_state < 0) > 0) {
5452
return(-Inf)
5553
}
@@ -77,25 +75,24 @@ run_instance = function(X,y,sigma, lam, noise_scale, ridge_term){
7775

7876
#lasso_soln = conditional_density(noise_scale, lasso_soln)
7977

80-
observed_raw = lasso_soln$observed_raw
81-
opt_linear = lasso_soln$optimization_transform$linear_term
82-
opt_offset = lasso_soln$optimization_transform$offset_term
83-
observed_opt_state = lasso_soln$observed_opt_state
84-
opt_transform = lasso_soln$optimization_transform
85-
86-
dim=length(observed_opt_state)
78+
dim=length(lasso_soln$observed_opt_state)
79+
print(paste("chain dim", dim))
8780
S = selectiveInference:::sample_opt_variables(lasso_soln, jump_scale=rep(1/sqrt(n), dim), nsample=10000)
8881
opt_samples = S$samples[2001:10000,]
8982
print(paste("dim opt samples", toString(dim(opt_samples))))
9083

9184
X_E=X[, active_set]
9285
X_minusE=X[, inactive_set]
93-
target_cov = solve(t(X_E)%*%X_E)*sigma^2
86+
target_cov = solve(t(X_E) %*% X_E)*sigma^2
9487
cov_target_internal = rbind(target_cov, matrix(0, nrow=p-nactive, ncol=nactive))
9588
observed_target = solve(t(X_E) %*% X_E) %*% t(X_E) %*% y
9689
observed_internal = c(observed_target, t(X_minusE) %*% (y-X_E%*% observed_target))
9790
internal_transform = lasso_soln$internal_transform
9891

92+
observed_opt_state = lasso_soln$observed_opt_state
93+
opt_transform = lasso_soln$optimization_transform
94+
observed_raw = lasso_soln$observed_raw
95+
9996
pivots = rep(0, nactive)
10097
for (i in 1:nactive){
10198
target_transform = selectiveInference:::linear_decomposition(observed_target[i],
@@ -122,7 +119,7 @@ run_instance = function(X,y,sigma, lam, noise_scale, ridge_term){
122119
return(pivots)
123120
}
124121

125-
collect_results = function(n,p,s, nsim=2){
122+
collect_results = function(n,p,s, nsim=1){
126123
rho=0.3
127124
lam=1.
128125
sigma=1

0 commit comments

Comments
 (0)