Skip to content

Commit e224b46

Browse files
author
Snigdha Panigrahi
committed
update test for comparison
1 parent b575094 commit e224b46

File tree

2 files changed

+41
-34
lines changed

2 files changed

+41
-34
lines changed

selectinf/randomized/query.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -1446,6 +1446,8 @@ def selective_MLE(observed_target,
14461446
final_estimator = target_cov.dot(_prec).dot(observed_target) \
14471447
+ target_cov.dot(target_lin.T.dot(prec_opt.dot(cond_mean - soln))) + C
14481448

1449+
T11 = target_cov.dot(target_lin.T.dot(prec_opt))
1450+
14491451
unbiased_estimator = target_cov.dot(_prec).dot(observed_target) + target_cov.dot(
14501452
_P - target_lin.T.dot(prec_opt).dot(target_off))
14511453

@@ -1477,7 +1479,8 @@ def selective_MLE(observed_target,
14771479
'lower_confidence': intervals[:, 0],
14781480
'upper_confidence': intervals[:, 1],
14791481
'unbiased': unbiased_estimator})
1480-
return result, observed_info_mean, log_ref
1482+
return result, observed_info_mean, log_ref, \
1483+
T11[:,0], cond_mean - soln, target_cov.dot(_prec).dot(observed_target), C
14811484

14821485

14831486
def normalizing_constant(target_parameter,

selectinf/randomized/tests/test_selective_MLE_high.py

+37-33
Original file line numberDiff line numberDiff line change
@@ -142,9 +142,9 @@ def test_selected_targets(seedn,
142142
nonzero,
143143
dispersion=dispersion)
144144

145-
result = conv.selective_MLE(observed_target,
145+
result, _, _, X1, X2, X3, X4 = conv.selective_MLE(observed_target,
146146
cov_target,
147-
cov_target_score)[0]
147+
cov_target_score)
148148
estimate = result['MLE']
149149
pval = result['pvalue']
150150
intervals = np.asarray(result[['lower_confidence', 'upper_confidence']])
@@ -156,7 +156,7 @@ def test_selected_targets(seedn,
156156
# print("check ", np.asarray(result['MLE']), np.asarray(result['unbiased']))
157157

158158
#return pval[beta[nonzero] == 0], pval[beta[nonzero] != 0], coverage, intervals
159-
return result['MLE'], result['lower_confidence'], result['upper_confidence']
159+
return result['MLE'], result['lower_confidence'], result['upper_confidence'], X1, X2, X3, X4
160160

161161

162162
def test_instance():
@@ -282,58 +282,62 @@ def test_selected_targets_disperse(n=500,
282282
return pval[beta[nonzero] == 0], pval[beta[nonzero] != 0], coverage, intervals
283283

284284

285-
def test_inf(nsim=500, full=False):
286-
P0, PA, cover, length_int = [], [], [], []
287-
from statsmodels.distributions import ECDF
288-
289-
n, p, s = 500, 100, 0
290-
291-
for i in range(nsim):
292-
if full:
293-
if n > p:
294-
full_dispersion = True
295-
else:
296-
full_dispersion = False
297-
p0, pA, cover_, intervals = test_full_targets(n=n, p=p, s=s, full_dispersion=full_dispersion)
298-
avg_length = intervals[:, 1] - intervals[:, 0]
299-
else:
300-
full_dispersion = True
301-
p0, pA, cover_, intervals = test_selected_targets(n=n, p=p, s=s, full_dispersion=full_dispersion)
302-
avg_length = intervals[:, 1] - intervals[:, 0]
303-
304-
cover.extend(cover_)
305-
P0.extend(p0)
306-
PA.extend(pA)
307-
# print(
308-
# np.array(PA) < 0.1, np.mean(P0), np.std(P0), np.mean(np.array(P0) < 0.1), np.mean(np.array(PA) < 0.1), np.mean(cover),
309-
# np.mean(avg_length), 'null pvalue + power + length')
310-
print("coverage and lengths ", np.mean(cover), np.mean(avg_length))
285+
# def main(nsim=500, full=False):
286+
# P0, PA, cover, length_int = [], [], [], []
287+
# from statsmodels.distributions import ECDF
288+
#
289+
# n, p, s = 500, 100, 0
290+
#
291+
# for i in range(nsim):
292+
# if full:
293+
# if n > p:
294+
# full_dispersion = True
295+
# else:
296+
# full_dispersion = False
297+
# p0, pA, cover_, intervals = test_full_targets(n=n, p=p, s=s, full_dispersion=full_dispersion)
298+
# avg_length = intervals[:, 1] - intervals[:, 0]
299+
# else:
300+
# full_dispersion = True
301+
# p0, pA, cover_, intervals = test_selected_targets(n=n, p=p, s=s, full_dispersion=full_dispersion)
302+
# avg_length = intervals[:, 1] - intervals[:, 0]
303+
#
304+
# cover.extend(cover_)
305+
# P0.extend(p0)
306+
# PA.extend(pA)
307+
# # print(
308+
# # np.array(PA) < 0.1, np.mean(P0), np.std(P0), np.mean(np.array(P0) < 0.1), np.mean(np.array(PA) < 0.1), np.mean(cover),
309+
# # np.mean(avg_length), 'null pvalue + power + length')
310+
# print("coverage and lengths ", np.mean(cover), np.mean(avg_length))
311311

312312

313313
def main(nsim =50):
314314

315315
import pandas as pd
316-
column_names = ["Experiment Replicate", "MLE", "Lower Conf", "Upper Conf"]
316+
column_names = ["Experiment Replicate", "MLE", "Lower Conf", "Upper Conf", "X1", "X2", "X3", "X4"]
317317
master_DF = pd.DataFrame(columns=column_names)
318318
DF = pd.DataFrame(columns=column_names)
319319

320320
n, p, s = 500, 100, 5
321321
for i in range(nsim):
322322
full_dispersion = True
323-
mle, lower_conf, upper_conf = test_selected_targets(n=n, p=p, s=s, signal_fac=1.2, full_dispersion=full_dispersion, seedn=i)
323+
mle, lower_conf, upper_conf, X1, X2, X3, X4 = test_selected_targets(seedn=i, n=n, p=p, s=s, signal_fac=1.2, full_dispersion=full_dispersion)
324324
#print("check ", mle, lower_conf, upper_conf)
325325
DF["MLE"] = pd.Series(mle)
326326
DF["Lower Conf"] = pd.Series(lower_conf)
327327
DF["Upper Conf"] = pd.Series(upper_conf)
328328
DF["Experiment Replicate"] = pd.Series((i*np.ones(len(mle),int)).tolist())
329+
DF["X1"] = pd.Series(X1)
330+
DF["X2"] = pd.Series(X2)
331+
DF["X3"] = pd.Series(X3)
332+
DF["X4"] = pd.Series(X4)
329333

330334
master_DF = DF.append(master_DF, ignore_index=True)
331335

332336
import os
333337
outpath = os.path.dirname(__file__)
334338

335-
outfile_mse_html = os.path.join(outpath, "compare_mle_old.html")
336-
outfile_mse_csv = os.path.join(outpath, "compare_mle_old.csv")
339+
outfile_mse_html = os.path.join(outpath, "simple_example.html")
340+
outfile_mse_csv = os.path.join(outpath, "simple_example.csv")
337341

338342
master_DF.to_html(outfile_mse_html, index=False)
339343
master_DF.to_csv(outfile_mse_csv, index=False)

0 commit comments

Comments
 (0)