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
0julia
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_completetrue