conv2Bnc_JPH {lazy.irt} | R Documentation |
重み付き最小2乗法を用いた 2PNMc への変換
English help file: (conv2Bnc)
conv2Bnc( param, theta=NULL, init=1, paramBnc=NULL, cval=0.2
, method=0, 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 初期値を |
paramBnc |
項目パラメタの初期値を含む項目パラメタデータフレームで
|
cval |
c パラメタの値(定数) |
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(2PNMc(theta|PARAM)) )^2 )
が 2PNMc の項目パラメタ (PARAM) に関して最適化される。
ただし、 icrf(theta)
は入力された項目の icrf,
icrf_2PNMc(theta|PARAM)
は 2PNMc の icrf, そして
w
は特性値の離散点 (theta) にかかる重みである。
( N(wmean,wsd^2)
or 1 ).
method = 2
の場合には、以下の残差の2乗和
sum( w*( vec(info_ic(theta)) - vec(info_ic_2PNMc(theta|PARAM)) )^2 )
が GRM の項目パラメタ (PARAM) に関して最適化される。
ただし info_ic(theta)
は入力された項目の icif,
info_ic_2PNMc(theta|PARAM)
は 2PNMc の icif である。
method = 3
の場合には、以下の残差の2乗和
sum( w*( info_i(theta) - info_i_2PNMc(theta|PARAM) )^2 )
が 2PNMc の項目パラメタ (PARAM) に関して最適化される。
ただし info_i(theta)
は入力された項目の iif,
info_i_2PNMc(theta|PARAM)
は2PNMc の iif である。
最適化に際しては lazy.mat::GN
を利用した重み付き Gauss-Newton 法が
用いられるが、2次導関数の計算には lazy.mat::JacobianMat
を利用した
数値微分が用いられている。
以下のものからなるリスト
paramNew: 2PNMc 項目パラメタデータフレーム paramP: \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 3PNM items to 2PNMc items
res1 <- conv2Bnc( paramA1[c(2,4),], maxiter=20, plot=1, method=1, cval=0.25 )
res2 <- conv2Bnc( paramA1[c(2,4),], maxiter=20, plot=1, method=2, cval=0.25 )
Print(res1$rmse_p, res1$rmse_iic, res1$rmse_ii)
Print(res2$rmse_p, res1$rmse_iic, res1$rmse_ii)