Skip to content

Commit 376a4e0

Browse files
committed
Fixed confidence interval test again
1 parent 27135bc commit 376a4e0

File tree

2 files changed

+25
-25
lines changed

2 files changed

+25
-25
lines changed

src/inference.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ julia> p_value_and_std_err(null_dist, CausalELM.mean(null_dist))
335335
"""
336336
function p_value_and_std_err(null_dist, test_stat)
337337
n = length(null_dist)
338-
extremes = length(null_dist[abs(test_stat) .<= null_dist])
338+
extremes = length(null_dist[abs(test_stat) .<= abs.(null_dist)])
339339
pvalue = extremes / n
340340
stderr = (sum([(test_stat .- x)^2 for x in null_dist]) / (n - 1)) / sqrt(n)
341341

test/test_inference.jl

+24-24
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,23 @@ Float64.([rand() < 0.4 for i in 1:100])
77

88
g_computer = GComputation(x, t, y)
99
estimate_causal_effect!(g_computer)
10-
g_inference = CausalELM.generate_null_distribution(g_computer, 100)
10+
g_inference = CausalELM.generate_null_distribution(g_computer, 1000)
1111
p1, stderr1 = CausalELM.p_value_and_std_err(g_inference, CausalELM.mean(g_inference))
1212
lb1, ub1 = CausalELM.confidence_interval(g_inference)
1313
p11, stderr11, lb11, ub11 = CausalELM.quantities_of_interest(g_computer, 100)
1414
summary1 = summarize(g_computer, n=100, inference=true)
1515

1616
dm = DoubleMachineLearning(x, t, y)
1717
estimate_causal_effect!(dm)
18-
dm_inference = CausalELM.generate_null_distribution(dm, 100)
18+
dm_inference = CausalELM.generate_null_distribution(dm, 1000)
1919
p2, stderr2 = CausalELM.p_value_and_std_err(dm_inference, CausalELM.mean(dm_inference))
2020
lb2, ub2 = CausalELM.confidence_interval(dm_inference)
2121
summary2 = summarize(dm, n=100)
2222

2323
# With a continuous treatment variable
2424
dm_continuous = DoubleMachineLearning(x, t, rand(1:4, 100))
2525
estimate_causal_effect!(dm_continuous)
26-
dm_continuous_inference = CausalELM.generate_null_distribution(dm_continuous, 100)
26+
dm_continuous_inference = CausalELM.generate_null_distribution(dm_continuous, 1000)
2727
p3, stderr3 = CausalELM.p_value_and_std_err(
2828
dm_continuous_inference, CausalELM.mean(dm_continuous_inference)
2929
)
@@ -37,7 +37,7 @@ summary4 = summarize(its, n=100)
3737
summary4_inference = summarize(its, n=100, inference=true)
3838

3939
# Null distributions for the mean and cummulative changes
40-
its_inference1 = CausalELM.generate_null_distribution(its, 100, true)
40+
its_inference1 = CausalELM.generate_null_distribution(its, 1000, true)
4141
its_inference2 = CausalELM.generate_null_distribution(its, 10, false)
4242
lb4, ub4 = CausalELM.confidence_interval(its_inference1)
4343
p4, stderr4 = CausalELM.p_value_and_std_err(its_inference1, CausalELM.mean(its_inference1))
@@ -49,7 +49,7 @@ summary5 = summarize(slearner, n=100)
4949

5050
tlearner = TLearner(x, t, y)
5151
estimate_causal_effect!(tlearner)
52-
tlearner_inference = CausalELM.generate_null_distribution(tlearner, 100)
52+
tlearner_inference = CausalELM.generate_null_distribution(tlearner, 1000)
5353
lb6, ub6 = CausalELM.confidence_interval(tlearner_inference)
5454
p6, stderr6 = CausalELM.p_value_and_std_err(
5555
tlearner_inference, CausalELM.mean(tlearner_inference)
@@ -59,7 +59,7 @@ summary6 = summarize(tlearner, n=100)
5959

6060
xlearner = XLearner(x, t, y)
6161
estimate_causal_effect!(xlearner)
62-
xlearner_inference = CausalELM.generate_null_distribution(xlearner, 100)
62+
xlearner_inference = CausalELM.generate_null_distribution(xlearner, 1000)
6363
lb7, ub7 = CausalELM.confidence_interval(xlearner_inference)
6464
p7, stderr7 = CausalELM.p_value_and_std_err(
6565
xlearner_inference, CausalELM.mean(xlearner_inference)
@@ -73,29 +73,29 @@ summary9 = summarize(rlearner, n=100)
7373

7474
dr_learner = DoublyRobustLearner(x, t, y)
7575
estimate_causal_effect!(dr_learner)
76-
dr_learner_inference = CausalELM.generate_null_distribution(dr_learner, 100)
76+
dr_learner_inference = CausalELM.generate_null_distribution(dr_learner, 1000)
7777
lb8, ub8 = CausalELM.confidence_interval(dr_learner_inference)
7878
p8, stderr8 = CausalELM.p_value_and_std_err(
7979
dr_learner_inference, CausalELM.mean(dr_learner_inference)
8080
)
8181
summary10 = summarize(dr_learner, n=100)
8282

8383
@testset "Generating Null Distributions" begin
84-
@test size(g_inference, 1) === 100
84+
@test size(g_inference, 1) === 1000
8585
@test g_inference isa Array{Float64}
86-
@test size(dm_inference, 1) === 100
86+
@test size(dm_inference, 1) === 1000
8787
@test dm_inference isa Array{Float64}
88-
@test size(dm_continuous_inference, 1) === 100
88+
@test size(dm_continuous_inference, 1) === 1000
8989
@test dm_continuous_inference isa Array{Float64}
90-
@test size(its_inference1, 1) === 100
90+
@test size(its_inference1, 1) === 1000
9191
@test its_inference1 isa Array{Float64}
9292
@test size(its_inference2, 1) === 10
9393
@test its_inference2 isa Array{Float64}
94-
@test size(tlearner_inference, 1) === 100
94+
@test size(tlearner_inference, 1) === 1000
9595
@test tlearner_inference isa Array{Float64}
96-
@test size(xlearner_inference, 1) === 100
96+
@test size(xlearner_inference, 1) === 1000
9797
@test xlearner_inference isa Array{Float64}
98-
@test size(dr_learner_inference, 1) === 100
98+
@test size(dr_learner_inference, 1) === 1000
9999
@test dr_learner_inference isa Array{Float64}
100100
end
101101

@@ -117,23 +117,23 @@ end
117117
end
118118

119119
@testset "Confidence Intervals" begin
120-
@test lb1 !== NaN && ub1 !== NaN
121-
@test lb2 !== NaN && ub2 !== NaN
122-
@test lb3 !== NaN && ub3 !== NaN
123-
@test lb4 !== NaN && ub4 !== NaN
124-
@test lb6 !== NaN && ub6 !== NaN
125-
@test lb7 !== NaN && ub7 !== NaN
126-
@test lb8 !== NaN && ub8 !== NaN
120+
@test lb1 < g_computer.causal_effect < ub1
121+
@test lb2 < dm.causal_effect < ub2
122+
@test lb3 < dm_continuous.causal_effect < ub3
123+
@test lb4 < CausalELM.mean(its.causal_effect) < ub4
124+
@test lb6 < CausalELM.mean(tlearner.causal_effect) < ub6
125+
@test lb7 < CausalELM.mean(xlearner.causal_effect) < ub7
126+
@test lb8 < CausalELM.mean(dr_learner.causal_effect) < ub8
127127
end
128128

129129
@testset "All Quantities of Interest" begin
130-
@test lb11 !== NaN && ub11 !== NaN
130+
@test lb11 < g_computer.causal_effect < ub11
131131
@test 1 >= p11 >= 0
132132
@test stderr11 > 0
133-
@test lb44 !== NaN && ub44 !== NaN
133+
@test lb44 < CausalELM.mean(its.causal_effect) < ub44
134134
@test 1 >= p44 >= 0
135135
@test stderr44 > 0
136-
@test lb66 !== NaN && ub66 !== NaN
136+
@test lb66 < CausalELM.mean(tlearner.causal_effect) < ub66
137137
@test 1 >= p66 >= 0
138138
@test stderr66 > 0
139139
end

0 commit comments

Comments
 (0)