conv2P_JPH {lazy.irt} | R Documentation |
重み付き最小2乗法を用いた GPCM への変換
English help file: (conv2P)
conv2P( param, theta=NULL, init=1, paramP=NULL
, method=1, wtype=1, wmean=0, wsd=1, DinP=1
, npoints=21, thmin=-3, thmax=3, printGN=0
, maxiter=500, eps=1e-6, epsg=1e-6, epsx=1e-9
, print=1, plot=0 )
param |
以下の項目タイプを持つ項目の項目パラメタデータフレーム |
theta |
theta の離散値 |
init |
= 1 初期値を |
paramP |
項目パラメタの初期値を含む項目パラメタデータフレームで
|
method |
= 1 icrf を用いて rmse を計算する |
wtype |
= 0 |
wmean |
重みとして用いられる正規分布の平均 |
wsd |
重みとして用いられる正規分布の標準偏差 |
DinP |
= 1 ロジスティク関数に D=1.7 を用いる |
npoints |
theta の離散値の個数 |
thmin |
theta の離散値の最小値 |
thmax |
theta の離散値の最大値 |
printGN |
|
maxiter |
Gauss-Newton 法の繰り返し数 |
eps |
収束判定基準: rmse の改善率の最大値 |
epsg |
収束判定基準: gradient の絶対値の最大値 |
epsx |
収束判定基準: パラメタの変化の絶対値の最大値 |
print |
>= 1 結果の表示 |
plot |
>= 1 グラフの表示 |
method = 1
の場合には、以下の残差の2乗和
sum( w*( vec(icrf(theta)) - vec(icrf_GPCM(theta|PARAM)) )^2 )
が GPCM の項目パラメタ (PARAM) に関して最適化される。
ただし、 icrf(theta)
は入力された項目の icrf,
icrf_GPCM(theta|PARAM)
は GPCM の icrf, そして
w
は特性値の離散点 (theta) にかかる重みである。
( N(wmean,wsd^2)
or 1 ).
method = 2
の場合には、以下の残差の2乗和
sum( w*( vec(info_ic(theta)) - vec(info_ic_GPCM(theta|PARAM)) )^2 )
が GPCM の項目パラメタ (PARAM) に関して最適化される。
ただし info_ic(theta)
は入力された項目の icif,
info_ic_GPCM(theta|PARAM)
は GPCM の icif である。
method = 3
の場合には、以下の残差の2乗和
sum( w*( info_i(theta) - info_i_GPCM(theta|PARAM) )^2 )
が GPCM の項目パラメタ (PARAM) に関して最適化される。
ただし info_i(theta)
は入力された項目の iif,
info_i_GPCM(theta|PARAM)
は GPCM の iif である。
param
に 3PLM の項目が含まれる場合には 2PLM に変換される。
最適化に際しては lazy.mat::GN
を利用した重み付き Gauss-Newton 法が
用いられるが、2次導関数の計算には lazy.mat::JacobianMat
を利用した
数値微分が用いられている。
以下のものからなるリスト
paramNew: GPCM 項目パラメタデータフレーム ( \code{param} に含まれる 2PLM の項目は変換されない) paramG: \code{param} で指定された項目パラメタデータフレーム grad: gradient 行列 wtype, wmean, wsd, method, init rmse_p: icrf を用いた rmse (method=1 の場合にはこれが最適化されている) rmse_irf: irf を用いた rmse rmse_ii: iif を用いた rmse rmse_iic: icrf を用いた rmse (method=2 の場合にはこれが最適化されている) icrfNew, icifNew, iifNew, irfNew (変換後の項目反応関数等) icrfOld, icifOld, iifOld, irfOld (変換前の項目反応関数等)
前川眞一 (2023) 項目反応理論におけるモデル変換. 日本テスト学会誌 19(1) 35-58.
# convert 3PLM and GRM to GPCM items
param <- paramA1[c(2,6,9),]
theta <- seq(-4,4,length=51)
# maxiter for method=2 is too small.
res1 <- conv2P( param, theta, maxiter=20, plot=1, wtype=1, method=1 )
res2 <- conv2P( param, theta, maxiter=2, plot=1, wtype=1, method=2 )
Print(res1$rmse_p, res1$rmse_iic, res1$rmse_ii)
Print(res2$rmse_p, res2$rmse_iic, res2$rmse_ii)