Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

IRTモデルの仮定

標準的なIRTモデルの仮定

  1. 一次元性 :能力は1次元で表せる

  2. 局所独立性θ\thetaで条件づけた下での項目間の独立性。尤度関数の構築のために仮定。

一次元性

2PLMのように1次元の能力パラメータθ\thetaをもつモデルは、能力が1次元で表せることを仮定している。
データがこのモデルに合っているかどうかを確かめる必要がある

検証方法

スクリープロットを描き、第1主成分が突出して高ければ一次元性を満たすと判断する。厳密な判断基準はない。

Source
# ------------------------------
# サンプルデータの生成
# ------------------------------
import numpy as np
import pandas as pd

np.random.seed(42)

n_persons = 100
n_items = 10

# 能力θと項目困難度bを設定
theta = np.random.normal(0, 1, n_persons)
b = np.random.normal(0, 0.2, n_items)
a = np.random.normal(0, 0.1, n_items)

# 2PLMで応答を生成
prob = 1 / (1 + np.exp(- a * (theta[:, None] - b)))
responses = np.random.binomial(1, prob)

df = pd.DataFrame(responses, columns=[f"item_{i+1}" for i in range(n_items)])
# print(df.head())

# ------------------------------
# スクリープロット
# ------------------------------
import numpy as np
from ordinalcorr import hetcor

cor_matrix = hetcor(df)
eigenvalues, _ = np.linalg.eig(cor_matrix)
eigenvalues = np.sort(eigenvalues)[::-1]

import matplotlib.pyplot as plt
plt.figure(figsize=(4, 2))
plt.plot(range(1, len(eigenvalues) + 1), eigenvalues, 'o-', linewidth=2)
plt.title("Scree Plot")
plt.xlabel("Component Number")
plt.ylabel("Eigenvalue")
plt.xticks(range(1, len(eigenvalues) + 1))
plt.grid(True)
plt.show()
<Figure size 400x200 with 1 Axes>

局所独立性(local independence)

局所独立性(local independence) の定義は「能力θ\thetaの値を固定したもとで、各項目の反応uju_jは独立」というもの。

局所独立性が仮定される理由は2つある

  1. θ\thetaが反応傾向の変動要因だから

  2. 尤度関数が作りやすいから

1. θ\thetaが反応傾向の変動要因だから

IRTモデルでは、各項目への反応傾向(正答率)uju_{j}が変化する要因はθ\thetaであると仮定して項目反応曲線をモデリングしている。

θ\thetaが各項目の反応uju_jに影響しているため、θ\thetaが反応同士uj,ulu_j, u_lの疑似相関corr(uj,ul)corr(u_j, u_l)を起こす第3の変数(交絡因子)になっている状態。しかしθ\thetaの値を固定する(統制する)と、この疑似相関は消えるはず。

もしθ\theta以外にuju_jに影響を与える共通の要因(θ\theta以外の交絡因子)があるなら、局所独立性が満たされない。ということ。

Loading...

2. 尤度関数が作りやすいから

尤度関数(≒反応パターンの同時分布)を各項目の積

L(T,θU)=i=1Ij=1JPj(θiT)uij{1Pj(θiT)}1uij\begin{aligned} L(\mathbf{T}, \boldsymbol{\theta} \mid \mathbf{U}) &=\prod_{i=1}^I \prod_{j=1}^J P_j(\theta_i \mid \mathbf{T})^{u_{i j}} \cdot \{ 1 - P_j(\theta_i \mid \mathbf{T}) \} ^{1-u_{i j}} \end{aligned}

とするために、θ\thetaで条件づけた下での項目間の独立性を仮定している。 (なおT\mathbf{T}は項目パラメータ、uiju_{i j}は二値の反応、U\mathbf{U}は反応パターン行列、Pj(θiT)P_j(\theta_i \mid \mathbf{T})はICC)

局所独立性の正確な検証は難しいが、Q3Q_3統計量が参考によく用いられる。

Q3Q_3統計量は

  • θ\thetaによって項目間の相関関係が十分に説明されているとすれば、その影響を除去した残差得点同士の相関は0に近くなるはず

  • θ\theta以外に項目間に相関をもたらす要因がある場合はθ\thetaの影響を除いてもなお相関が残る

という考え方をとっている。

目安としては、「Q3>0.20Q_3 > 0.20の項目ペアは局所独立性の侵害を疑う必要がある」とされるが0.20も絶対の閾値ではない。

局所依存性があるとどうなるのか?

局所依存性を考慮した場合に比べて項目母数の推定誤差が増加(登藤直弥. 2012. 項目反応間の局所依存性が項目母数の推定に与える影響