@@ -37,14 +37,15 @@ conditional_density = function(noise_scale, lasso_soln){
37
37
38
38
nactive = length(active_set )
39
39
B = opt_linear [,1 : nactive ]
40
- beta_offset = observed_raw + opt_offset
40
+ beta_offset = opt_offset
41
41
p = length(observed_opt_state )
42
42
if (nactive < p ){
43
43
beta_offset = beta_offset + (opt_linear [,(nactive + 1 ): p ] %*% observed_opt_state [(nactive + 1 ): p ])
44
44
}
45
45
opt_transform = list (linear_term = B ,
46
46
offset_term = beta_offset )
47
47
reduced_B = chol(t(B ) %*% B )
48
+ beta_offset = beta_offset + observed_raw
48
49
reduced_beta_offset = solve(t(reduced_B )) %*% (t(B ) %*% beta_offset )
49
50
50
51
log_condl_optimization_density = function (opt_state ) {
@@ -53,7 +54,7 @@ conditional_density = function(noise_scale, lasso_soln){
53
54
}
54
55
D = selectiveInference ::: log_density_gaussian_conditional_(noise_scale ,
55
56
reduced_B ,
56
- as.matrix(observed_opt_state [ 1 : nactive ] ),
57
+ as.matrix(opt_state ),
57
58
reduced_beta_offset )
58
59
return (D )
59
60
}
@@ -73,7 +74,7 @@ run_instance = function(X,y,sigma, lam, noise_scale, ridge_term){
73
74
nactive = length(active_set )
74
75
print(paste(" nactive" , nactive ))
75
76
76
- # lasso_soln = conditional_density(noise_scale, lasso_soln)
77
+ lasso_soln = conditional_density(noise_scale , lasso_soln )
77
78
78
79
dim = length(lasso_soln $ observed_opt_state )
79
80
print(paste(" chain dim" , dim ))
@@ -88,8 +89,6 @@ run_instance = function(X,y,sigma, lam, noise_scale, ridge_term){
88
89
observed_target = solve(t(X_E ) %*% X_E ) %*% t(X_E ) %*% y
89
90
observed_internal = c(observed_target , t(X_minusE ) %*% (y - X_E %*% observed_target ))
90
91
internal_transform = lasso_soln $ internal_transform
91
-
92
- observed_opt_state = lasso_soln $ observed_opt_state
93
92
opt_transform = lasso_soln $ optimization_transform
94
93
observed_raw = lasso_soln $ observed_raw
95
94
@@ -100,7 +99,6 @@ run_instance = function(X,y,sigma, lam, noise_scale, ridge_term){
100
99
target_cov [i ,i ],
101
100
cov_target_internal [,i ],
102
101
internal_transform )
103
-
104
102
target_sample = rnorm(nrow(opt_samples )) * sqrt(target_cov [i ,i ])
105
103
106
104
pivot = function (candidate ){
0 commit comments