Skip to content

Commit a5fb03d

Browse files
author
Frankie Robertson
committed
Rename PriorAbilityEstimator => PosteriorAbilityEstimator
1 parent ca8b99a commit a5fb03d

File tree

14 files changed

+33
-33
lines changed

14 files changed

+33
-33
lines changed

benchmark/benchmarks.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ function prepare_4pls(group)
3030
integrator = even_grid(-6.0, 6.0, mirtcat_quadpts(1))
3131
optimizer = AbilityOptimizer(OneDimOptimOptimizer(-6.0, 6.0, NelderMead()))
3232

33-
dist_ability_estimator = PriorAbilityEstimator()
33+
dist_ability_estimator = PosteriorAbilityEstimator()
3434
ability_estimators = [
3535
("mean", MeanAbilityEstimator(dist_ability_estimator, integrator)),
3636
("mode", ModeAbilityEstimator(dist_ability_estimator, optimizer))

docs/examples/examples/ability_convergence_3pl.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ using ComputerAdaptiveTesting
2222
using ComputerAdaptiveTesting.Sim: auto_responder
2323
using ComputerAdaptiveTesting.NextItemRules: AbilityVarianceStateCriterion
2424
using ComputerAdaptiveTesting.TerminationConditions: FixedItemsTerminationCondition
25-
using ComputerAdaptiveTesting.Aggregators: PriorAbilityEstimator,
25+
using ComputerAdaptiveTesting.Aggregators: PosteriorAbilityEstimator,
2626
MeanAbilityEstimator, LikelihoodAbilityEstimator
2727
using FittedItemBanks
2828
using ComputerAdaptiveTesting.Responses: BooleanResponse
@@ -46,7 +46,7 @@ using FittedItemBanks.DummyData: dummy_full, std_normal, SimpleItemBankSpec, Std
4646
# CatRecorder collects information which can be used to draw different types of plots.
4747
max_questions = 99
4848
integrator = FixedGKIntegrator(-6, 6, 80)
49-
dist_ability_est = PriorAbilityEstimator(std_normal)
49+
dist_ability_est = PosteriorAbilityEstimator(std_normal)
5050
ability_estimator = MeanAbilityEstimator(dist_ability_est, integrator)
5151
rules = CatRules(ability_estimator,
5252
AbilityVarianceStateCriterion(dist_ability_est, integrator),

docs/examples/examples/ability_convergence_mirt.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ using ComputerAdaptiveTesting
2222
using ComputerAdaptiveTesting.Sim: auto_responder
2323
using ComputerAdaptiveTesting.NextItemRules: DRuleItemCriterion
2424
using ComputerAdaptiveTesting.TerminationConditions: FixedItemsTerminationCondition
25-
using ComputerAdaptiveTesting.Aggregators: PriorAbilityEstimator,
25+
using ComputerAdaptiveTesting.Aggregators: PosteriorAbilityEstimator,
2626
MeanAbilityEstimator, LikelihoodAbilityEstimator
2727
using FittedItemBanks
2828
import PsychometricsBazaarBase.IntegralCoeffs
@@ -49,7 +49,7 @@ using ComputerAdaptiveTesting.Responses: BooleanResponse
4949
# CatRecorder collects information which can be used to draw different types of plots.
5050
max_questions = 9
5151
integrator = CubaIntegrator([-6.0, -6.0], [6.0, 6.0], CubaVegas(); rtol = 1e-2)
52-
ability_estimator = MeanAbilityEstimator(PriorAbilityEstimator(std_mv_normal(dims)),
52+
ability_estimator = MeanAbilityEstimator(PosteriorAbilityEstimator(std_mv_normal(dims)),
5353
integrator)
5454
rules = CatRules(ability_estimator,
5555
DRuleItemCriterion(ability_estimator),

docs/examples/examples/vocab_iq.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
# ---
66

77
#md # Running a CAT based based on real response data
8-
#
8+
#
99
# This example shows how to run a CAT end-to-end on real data.
10-
#
10+
#
1111
# First a 1-dimensional IRT model is fitted based on open response data to the
1212
# vocabulary IQ test using the IRTSupport package which internally, this uses
1313
# the `mirt` R package. Next, the model is used to administer the test
@@ -37,7 +37,7 @@ function run_vocab_iq_cat()
3737
item_bank, labels = get_item_bank()
3838
integrator = FixedGKIntegrator(-6, 6, 61)
3939
ability_integrator = AbilityIntegrator(integrator)
40-
dist_ability_est = PriorAbilityEstimator(std_normal)
40+
dist_ability_est = PosteriorAbilityEstimator(std_normal)
4141
optimizer = AbilityOptimizer(OneDimOptimOptimizer(-6.0, 6.0, NelderMead()))
4242
ability_estimator = ModeAbilityEstimator(dist_ability_est, optimizer)
4343
@info "run_cat" ability_estimator

profile/next_items.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ function get_ability_estimator(multidim)
2020
integrator = FixedGKIntegrator(-6.0, 6.0)
2121
dist = Normal()
2222
end
23-
return PriorAbilityEstimator(dist, integrator)
23+
return PosteriorAbilityEstimator(dist, integrator)
2424
end
2525

2626
function prepare_empty(item_bank, actual_responses, ability_tracker)

src/Compat/CatR.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ using ComputerAdaptiveTesting.Aggregators: AbilityIntegrator,
55
DistributionAbilityEstimator,
66
ModeAbilityEstimator,
77
MeanAbilityEstimator,
8-
PriorAbilityEstimator
8+
PosteriorAbilityEstimator
99
using ComputerAdaptiveTesting.TerminationConditions: RunForeverTerminationCondition
1010
using ComputerAdaptiveTesting.Rules: CatRules
1111
using ComputerAdaptiveTesting.NextItemRules
@@ -51,9 +51,9 @@ const next_item_aliases = _next_item_aliases()
5151

5252
function _ability_estimator_aliases()
5353
res = Dict{String, Any}()
54-
res["BM"] = (; optimizer, kwargs...) -> ModeAbilityEstimator(PriorAbilityEstimator(), optimizer)
54+
res["BM"] = (; optimizer, kwargs...) -> ModeAbilityEstimator(PosteriorAbilityEstimator(), optimizer)
5555
res["ML"] = (; optimizer, kwargs...) -> ModeAbilityEstimator(LikelihoodAbilityEstimator(), optimizer)
56-
res["EAP"] = (; integrator, kwargs...) -> MeanAbilityEstimator(PriorAbilityEstimator(), integrator)
56+
res["EAP"] = (; integrator, kwargs...) -> MeanAbilityEstimator(PosteriorAbilityEstimator(), integrator)
5757
#res["WL"]
5858
#res["ROB"]
5959
return res
@@ -97,7 +97,7 @@ function assemble_rules(;
9797
integrator = setup_integrator()
9898
optimizer = setup_optimizer()
9999
ability_estimator = ability_estimator_aliases[method](; integrator, optimizer)
100-
posterior_ability_estimator = PriorAbilityEstimator()
100+
posterior_ability_estimator = PosteriorAbilityEstimator()
101101
raw_next_item = next_item_aliases[criterion](ability_estimator, integrator, optimizer; posterior_ability_estimator=posterior_ability_estimator)
102102
next_item = FixedFirstItemNextItemRule(start_item, raw_next_item)
103103
CatRules(;
@@ -108,4 +108,4 @@ function assemble_rules(;
108108
)
109109
end
110110

111-
end
111+
end

src/Compat/MirtCAT.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ using ComputerAdaptiveTesting.Aggregators: SafeLikelihoodAbilityEstimator,
55
DistributionAbilityEstimator,
66
ModeAbilityEstimator,
77
MeanAbilityEstimator,
8-
PriorAbilityEstimator,
8+
PosteriorAbilityEstimator,
99
AbilityEstimator,
1010
distribution_estimator
1111
using ComputerAdaptiveTesting.TerminationConditions: RunForeverTerminationCondition
@@ -71,9 +71,9 @@ to randomly select items, and 'seq' for selecting items sequentially
7171
=#
7272

7373
const ability_estimator_aliases = Dict(
74-
"MAP" => (; optimizer, ncomp, kwargs...) -> ModeAbilityEstimator(PriorAbilityEstimator(; ncomp=ncomp), optimizer),
74+
"MAP" => (; optimizer, ncomp, kwargs...) -> ModeAbilityEstimator(PosteriorAbilityEstimator(; ncomp=ncomp), optimizer),
7575
"ML" => (; optimizer, ncomp, kwargs...) -> ModeAbilityEstimator(SafeLikelihoodAbilityEstimator(; ncomp=ncomp), optimizer),
76-
"EAP" => (; integrator, ncomp, kwargs...) -> MeanAbilityEstimator(PriorAbilityEstimator(; ncomp=ncomp), integrator),
76+
"EAP" => (; integrator, ncomp, kwargs...) -> MeanAbilityEstimator(PosteriorAbilityEstimator(; ncomp=ncomp), integrator),
7777
# "WLE" for weighted likelihood estimation
7878
# "EAPsum" for the expected a-posteriori for each sum score
7979
)
@@ -143,7 +143,7 @@ function assemble_rules(;
143143
integrator = setup_integrator(lo, hi, pts)
144144
optimizer = setup_optimizer(-theta_lim, theta_lim)
145145
ability_estimator = ability_estimator_aliases[method](; integrator, optimizer, ncomp)
146-
posterior_ability_estimator = PriorAbilityEstimator(; ncomp)
146+
posterior_ability_estimator = PosteriorAbilityEstimator(; ncomp)
147147
raw_next_item = next_item_aliases[criteria](ability_estimator, posterior_ability_estimator, integrator, optimizer)
148148
next_item = FixedFirstItemNextItemRule(start_item, raw_next_item)
149149
CatRules(;
@@ -153,4 +153,4 @@ function assemble_rules(;
153153
)
154154
end
155155

156-
end
156+
end

src/aggregators/Aggregators.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export AbilityEstimator, TrackedResponses
4242
export AbilityTracker, NullAbilityTracker, PointAbilityTracker, GriddedAbilityTracker
4343
export ClosedFormNormalAbilityTracker, track!
4444
export response_expectation, expectation, distribution_estimator
45-
export PointAbilityEstimator, PriorAbilityEstimator
45+
export PointAbilityEstimator, PosteriorAbilityEstimator
4646
export SafeLikelihoodAbilityEstimator, LikelihoodAbilityEstimator
4747
export ModeAbilityEstimator, MeanAbilityEstimator
4848
export Speculator, replace_speculation!, normdenom, maybe_tracked_ability_estimate

src/aggregators/ability_estimator.jl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,19 @@ function pdf(::LikelihoodAbilityEstimator,
2626
AbilityLikelihood(tracked_responses)
2727
end
2828

29-
struct PriorAbilityEstimator{PriorT <: Distribution} <: DistributionAbilityEstimator
29+
struct PosteriorAbilityEstimator{PriorT <: Distribution} <: DistributionAbilityEstimator
3030
prior::PriorT
3131
end
3232

33-
function PriorAbilityEstimator(; ncomp = 0)
33+
function PosteriorAbilityEstimator(; ncomp = 0)
3434
if ncomp == 0
35-
return PriorAbilityEstimator(std_normal)
35+
return PosteriorAbilityEstimator(std_normal)
3636
else
37-
return PriorAbilityEstimator(std_mv_normal(ncomp))
37+
return PosteriorAbilityEstimator(std_mv_normal(ncomp))
3838
end
3939
end
4040

41-
function pdf(est::PriorAbilityEstimator,
41+
function pdf(est::PosteriorAbilityEstimator,
4242
tracked_responses::TrackedResponses)
4343
IntegralCoeffs.PriorApply(IntegralCoeffs.Prior(est.prior),
4444
AbilityLikelihood(tracked_responses))
@@ -75,7 +75,7 @@ end
7575
function SafeLikelihoodAbilityEstimator(args...; kwargs...)
7676
GuardedAbilityEstimator(
7777
LikelihoodAbilityEstimator(),
78-
PriorAbilityEstimator(args...),
78+
PosteriorAbilityEstimator(args...),
7979
multiple_response_types_guard
8080
)
8181
end
@@ -289,7 +289,7 @@ function (est::MeanAbilityEstimator{AbilityEstimatorT, RiemannEnumerationIntegra
289289
tracked_responses)
290290
end
291291

292-
function maybe_apply_prior(f::F, est::PriorAbilityEstimator) where {F}
292+
function maybe_apply_prior(f::F, est::PosteriorAbilityEstimator) where {F}
293293
IntegralCoeffs.PriorApply(IntegralCoeffs.Prior(est.prior), f)
294294
end
295295

src/aggregators/ability_trackers/closed_form_normal.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ mutable struct ClosedFormNormalAbilityTracker <: AbilityTracker
22
cur_ability::VarNormal
33
end
44

5-
function ClosedFormNormalAbilityTracker(prior_ability_estimator::PriorAbilityEstimator)
5+
function ClosedFormNormalAbilityTracker(prior_ability_estimator::PosteriorAbilityEstimator)
66
@warn "ClosedFormNormalAbilityTracker is based on equations from Liden 1998 / Owen 1975, but these appear to give poor results"
77
prior = prior_ability_estimator.prior
88
if !(prior isa Normal)

0 commit comments

Comments
 (0)