ordinal_reg_JPH {lazy.irt} | R Documentation |
度数分布 (R,x)
が与えたれたときに R
を x
へ回帰する
English help file: (ordinal_reg)
ordinal_reg( R, x, type="P", param=NULL
, maxiter=100, eps=1e-8, epsd=1e-5, smallP=0, DinP=1
, minp1=1e-2, maxabsparam=20, print=1 )
R |
lenght(x) x カテゴリ数の基準変数、ただし |
x |
1次元の連続量の説明変数ベクトル |
type |
項目タイプで "B", "B3", "G", "P", "PN", "N" |
param |
項目パラメタデータフレームの初期値 |
maxiter |
繰り返し数の上限 |
eps |
対数尤度の増加率を用いた収束判定基準 |
epsd |
パラメタの変化の絶対値差を用いた収束判定基準 |
smallP |
確率の最小値 |
DinP |
= 0 ロジスティク関数で D=1.7 を用いない。 |
minp1 |
type != "N" の場合の p1 の最小値 |
maxabsparam |
パラメタの最大値 |
print |
= 0 結果を出力しない。 |
R,x
を説明変数ベクトルの各値ごとの基準変数の各カテゴリの度数分布と
する。ただし、R
は n x ncat
の行列である。
この関数は以下の対数尤度関数を最大とするようなパラメタ p1,p2.,,,
を
求める。
llh = \sum_{i=1}^{n} \sum_{k=1}^{ncat} R[i,k] log( P_k(x[i] | param)
ただし、P_k(x[i] | param)
は type
の指定で決まる項目反応関数
であり、 param
はそのパラメタ p1,p2.,,,
である。
たとえば type="B"
の場合はロジスティク回帰に、
type="P"
の場合は多項ロジット回帰に相当する。
また、 type="B3"
の場合には p3=c
パラメタをロジット変化した
y=logit(c)
がパラメタとして用いられるが、その場合
d \; llh / d; y = d \; llh / d \; c \times c(1-c)
,
また d \; logistic(y) / d \; y = c(1-c)
である。
以下の要素からなるリスト
param 推定された項目パラメタデータフレーム llh 最大化された対数尤度 P \code{x] における確率} x 説明変数ベクトル R 基準変数 g 対数尤度の1次微分 maxag 1次微分の絶対値の最大値
# binary data
set.seed(1701)
theta=seq(-4,4,length.out=51)
resg=gendataIRT( 500, paramS1[1,], theta=theta, thdist="NORMAL", thd=NULL
, thmean=0, thstd=1, compress=0 )
testdata=as.matrix( resg$U )
# 3PLM
res=ordinal_reg( testdata, theta, type="B3", param=NULL, print=1 )
# 2PLM
res=ordinal_reg( testdata, theta, type="B", param=NULL, print=1 )
res=ordinal_reg( testdata, theta, type="P", param=NULL, print=1 )
# 2PLM with nonzero c parameter
initp=paramS1[2,]; initp$type="B"
res=ordinal_reg( testdata, theta, type="B", param=initp, print=1 )
# polytomous data
set.seed(1701)
theta=seq(-4,4,length.out=51)
resg=gendataIRT( 500, paramS1[3,], theta=theta, thdist="NORMAL", thd=NULL
, thmean=0, thstd=1, compress=0 )
testdata=as.matrix( resg$U )
# graded response model
res=ordinal_reg( testdata, theta, type="G", param=NULL, print=1 )
# partial credit model
res=ordinal_reg( testdata, theta, type="P", param=NULL, print=1 )
res=ordinal_reg( testdata, theta, type="PN", param=NULL, print=1 )
# @keywords internal