File tree Expand file tree Collapse file tree 3 files changed +16
-3
lines changed Expand file tree Collapse file tree 3 files changed +16
-3
lines changed Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ function main()
29
29
lh_grid_tracker = GriddedAbilityTracker (lh_ability_est, grid)
30
30
prior_grid_tracker = GriddedAbilityTracker (prior_ability_est, grid)
31
31
closed_normal_tracker = ClosedFormNormalAbilityTracker (prior_ability_est)
32
+ laplace_normal_tracker = LaplaceAbilityTracker (prior_ability_est)
32
33
rules = CatRules (
33
34
MultiAbilityTracker ([
34
35
lh_grid_tracker,
Original file line number Diff line number Diff line change 66
66
include (" ./ability_trackers/grid.jl" )
67
67
include (" ./ability_trackers/point.jl" )
68
68
include (" ./ability_trackers/closed_form_normal.jl" )
69
+ include (" ./ability_trackers/laplace.jl" )
69
70
include (" ./ability_trackers/multi.jl" )
70
71
71
72
"""
Original file line number Diff line number Diff line change 1
- struct LaplaceAbilityTracker <: AbilityTracker
2
- cur_ability:: VarNormal
1
+ struct LaplaceAbilityTracker{AbilityEstimatorT <: DistributionAbilityEstimator } <: AbilityTracker
2
+ ability_estimator:: AbilityEstimatorT
3
+ optimizer:: OneDimOptimOptimizer
4
+ cur_ability:: Union{Normal, Nothing}
3
5
end
4
6
7
+ function LaplaceAbilityTracker (ability_estimator, optimizer)
8
+ @warn " LaplaceAbilityTracker is a work in progress, and will not accelerate anything yet."
9
+ LaplaceAbilityTracker (ability_estimator, optimizer, nothing )
10
+ end
5
11
6
- {AbilityEstimatorT <: PointAbilityEstimator }
12
+ function track! (responses, ability_tracker:: LaplaceAbilityTracker )
13
+ f (x) = pdf (ability_tracker. ability_estimator, responses, x)
14
+ mode = ability_tracker. optimizer (f)
15
+ stddev = - (ForwardDiff. hessian (f, mode) ^ (- 1 ))
16
+ ability_tracker. cur_ability = Normal (mode, stddev)
17
+ end
You can’t perform that action at this time.
0 commit comments