| est_thetaphi {lazy.girt} | R Documentation |
Estimation of Theta and Phi
est_thetaphi(Uc = NULL, U = NULL, param = NULL, method = "EAP", thetaphi = NULL, npoint = NULL, theta = NULL, npointth = 21, thmin = -3, thmax = 3, phi = NULL, npointph = 5, phmin = 0, phmax = 5, thd = NULL, thdist = "NORMAL", thmean = 0, thstd = 1, phd = NULL, phdist = "GBETA", paramab = c(1, 3), print = 0, plot = 0)
Uc |
The compressed item response data. |
U |
The uncompressed item response data. |
param |
The parameter data frame. |
method |
= "EAP", "MAP" or "ML" or combinations of these. |
thetaphi |
Discrete theta-phi grid values. |
npointth |
# of discrete points for theta. |
thmin |
Minimum value of discrete thata value. |
thmax |
Maximum value of discrete thata value. |
npointph |
# of discrete points for phi. |
phmin |
Minimum value of discrete phi value. |
phmax |
Maximum value of discrete phi value. |
thdist |
theta distribution "NORMAL" or "UNIFORM" |
thmean |
The prior mean of normal theta distribution. |
phdist |
phi distribution "GBETA" |
paramab |
The prior param for the phi distribution. |
print |
= 1 to print the result. |
thphd |
pdf of theta-phi normalized to sum to unity. |
thsd |
The prior standard deviation of normal theta distribution. |
The core part of EAP is as follows:
ULP=U eULP=exp(ULP)*matrix(1,nrow(ULP)) H=eULP/rowSums(eULP) thphhat=H
where logP is the log of irf, U is the un-compressed
item response, and thphd is the normalized prior theta-phi pdf.
The second line calculates product over (jk) of P_ijk(theta)^U_ijk
times the prior pdf of theta-phi, which is proportional to the post dist.
The third line normalizes the above to obtain the proper post dist.
The fourth line calculates the posterior mean.
A list of
thphhat Estimated theta valuesr
thetaphi Theta-phi grid values used
thphd Theta-phi disrtibution for EAP
method
npoints # of grid points
# all possible item response patterns of a five item test
param=param_EQS5
Uc=Uc_5
paramab=c(1,2)
resthph=est_thetaphi( Uc=Uc, param=param, print=1, plot=1
, method=c("MAP","ML"), npointth=11
, phmin=0, phmax=3, paramab=paramab, npointph=11 )
# 30 binary items
param=paramBr
# one obs per 500 random theta-phi
resg <- gendata_gIRT( 1, param, thdist="NORMAL", phdist="GBETA", compress=1
, npoint=500, phmin=0, phmax=2, paramab=c(1,4) )
Uc1=as.data.frame( resg$U )
thetaphi_ORG1=resg$thetaphi
# item parameter estimation
res1=guIRT( Uc=Uc1, ncat=param$ncat, type=param$type
, npointth=21, npointph=5, phmin=0, phmax=2
, paramab=c(1,4), print=2 )
Print( cor( thetaphi_ORG1,res1$EAP ),
cor( param[,c("p1","p2")], res1$param[,c("p1","p2")] ) )
plot( res1$EAP[,1], res1$EAP[,2])
dummy=freqdist1( res1$EAP[,1], npoints=101, plot=1 )
dummy=freqdist1( res1$EAP[,2], npoints=101, plot=1 )
# estimate theta and phi
resthph=est_thetaphi( Uc=Uc1, param=res1$param, print=1,
, method="EAP", npointth=11
, phmin=0, phmax=3, paramab=c(1,2), npointph=11 )
plot( resthph$thphhat )
Print( cor( thetaphi_ORG1, resthph$thphhat ) )