Treatment of missing values
In PersonParameters.jl missing
values are ignored in estimation of the person ability. Hence, missing
is treated as if the test-taker was never exposed to the item. In classical testing this can arise, for example, due to structural missing values by means of the test design.
By definition missing
data should have no influence on the estimation of the person abilitiy. We can easily verify this property,
julia
using PersonParameters
betas = randn(10)
y = rand([0, 1, missing], 10)
10-element Vector{Union{Missing, Int64}}:
1
missing
1
1
missing
missing
missing
1
0
0
julia
theta_missing = person_parameter(OnePL, y, betas, MLE())
PersonParameter{Float64}(1.5868227027860777, 0.8926715074086364)
julia
nonmissing = @. !ismissing(y)
theta_complete = person_parameter(OnePL, y[nonmissing], betas[nonmissing], MLE())
PersonParameter{Float64}(1.5868227027860777, 0.8926715074086364)
Omitting items with missing
responses leads to the same ability estimate.
julia
theta_missing == theta_complete
true