1PL MLE计算机自适应测试中作答后能力估计迭代计算问询
作为CAT领域的开发者,我非常理解你遇到的这个痛点——很多文档只讲最终能力估计,却很少给出逐题迭代的具体计算示例。既然你第一题的结果正确,那问题大概率出在第二题及之后的累积计算逻辑上,下面我会结合1P IRT(Rasch模型)和修正牛顿-拉夫逊法,一步步拆解i>1时的能力更新步骤,再帮你排查常见错误。
核心公式回顾(修正牛顿-拉夫逊法)
对于1P IRT,我们用以下公式逐题更新能力值θ:
θ_new = θ_old + [U(θ_old) / I(θ_old)]
其中:
θ_old:上一次(第i-1题后)的能力估计值U(θ_old):所有已答题的得分函数(一阶导数),反映当前能力与作答结果的偏差I(θ_old):所有已答题的Fisher信息函数,反映当前能力估计的精度
1P IRT基础公式(先确认参数化方式)
首先要确保你用的1P IRT项目特征曲线(ICC)和行业一致,常见的参数化形式是:
P(θ, b_j) = 1 / (1 + e^(b_j - θ))
b_j:第j题的难度参数P(θ, b_j):能力为θ的考生答对第j题的概率
注意:有些教材会写成
e^(θ - b_j),这会导致符号完全相反,是最常见的错误根源之一!你第一题结果正确,说明你的参数化是对的,但第二题要保持一致。
逐题迭代步骤(以第2题为例,i=2)
假设你已经完成第1题作答,得到θ₁=-0.8333(和你的正确结果一致),现在处理第2题:
步骤1:整理已答题的全部数据
你需要把第1题+第2题的信息都纳入计算,不能只算当前题:
- 第1题:难度
b₁、作答结果x₁(1=答对,0=答错) - 第2题:难度
b₂、作答结果x₂
步骤2:计算得分函数U(θ₁)
得分函数是所有已答题的「实际得分 - 期望得分」之和:
U(θ₁) = Σ [x_j - P(θ₁, b_j)] (j从1到2)
具体计算:
- 对第1题,代入θ₁=-0.8333和b₁,计算
P(θ₁, b₁) - 对第2题,同样代入θ₁=-0.8333和b₂,计算
P(θ₁, b₂) - 用每道题的实际得分x_j减去对应概率,再求和得到U(θ₁)
步骤3:计算Fisher信息I(θ₁)
Fisher信息是所有已答题的「P(θ)*(1-P(θ))」之和,反映每道题对能力估计的贡献:
I(θ₁) = Σ [P(θ₁, b_j) * (1 - P(θ₁, b_j))] (j从1到2)
同样需要把第1题和第2题的结果都加进去,不能只算第2题的信息!
步骤4:更新得到θ₂
代入修正牛顿-拉夫逊公式:
θ₂ = θ₁ + U(θ₁) / I(θ₁)
具体示例计算(对应你的第一题结果)
假设你的第1题参数是:b₁=ln(6)≈1.7918,作答结果x₁=0(答错),所以θ₁=-0.8333是正确的。现在加入第2题:b₂=0,作答结果x₂=1(答对),一步步算:
计算P值:
- P₁ = 1/(1+e^(1.7918 - (-0.8333))) = 1/(1+e^2.6251) ≈ 0.0678
- P₂ = 1/(1+e^(0 - (-0.8333))) = 1/(1+e^0.8333) ≈ 0.3030
计算得分函数U:
- U = (0 - 0.0678) + (1 - 0.3030) = 0.6292
计算Fisher信息I:
- I = (0.06780.9322) + (0.30300.6970) ≈ 0.0632 + 0.2112 = 0.2744
更新θ₂:
- θ₂ = -0.8333 + (0.6292/0.2744) ≈ 1.4597
常见错误排查(你第二题偏差大的可能原因)
- 只计算当前题的U和I,忽略之前的题目:这是最容易犯的错误!修正牛顿-拉夫逊需要累积所有已答题的信息,而不是只针对当前题计算。
- 公式符号错误:比如把ICC写成
e^(θ - b_j),会导致U的符号反转,结果完全偏离。 - 谷歌表格函数使用错误:比如
EXP()函数的参数搞反(写成EXP(θ - b)而不是EXP(b - θ)),或者求和时漏加前一题的数据。 - 修正牛顿-拉夫逊的步长误用:有些简化版本会用固定信息(比如初始信息),但标准的修正牛顿必须用累积的Fisher信息。
总结
每次作答新题目后,能力更新的核心是把所有已答题的信息都纳入U和I的计算,而不是只处理当前题。你可以对照上面的步骤,检查谷歌表格里的公式是否漏加了前一题的求和项,或者符号是否正确。
内容的提问来源于stack exchange,提问作者Rich Davis

