Hi Xavier,
the reason you observe this feature is that in the 'constraint'
argument you should specify the values under the additive
parameterization, i.e., when in the second column of the matrix
supplied in 'constraint' you specify 2, then you need to provide the
easiness parameters (not the difficulty parameters) in the third
column. Check the Details section of ?tpm() and the following for an
illustration:
library(ltm)
fit <- tpm(LSAT)
cf <- coef(fit)
constr <- rbind(
cbind(1:3, c(1,1,1), cf[1:3, 1]),
cbind(1:3, c(3,3,3), cf[1:3, 3]),
cbind(1:3, c(2,2,2), - cf[1:3, 2] * cf[1:3, 3])
)
fit2 <- tpm(LSAT, constraint = constr)
coef(fit)[1:3, ]
coef(fit2)[1:3, ]
I hope it's more clear now.
Best,
Dimitris
ps, you may find more info regarding ltm as well as sample analyses
files at the R wiki page:
http://wiki.r-project.org/rwiki/doku.php?id=packages:cran:ltm
----
Dimitris Rizopoulos
Biostatistical Centre
School of Public Health
Catholic University of Leuven
Address: Kapucijnenvoer 35, Leuven, Belgium
Tel: +32/(0)16/336899
Fax: +32/(0)16/337015
Web: http://med.kuleuven.be/biostat/
http://www.student.kuleuven.be/~m0390867/dimitris.htm
----- Original Message -----
From: "Xavier G. Ord??ez" <xavier.ordonez at gmail.com>
To: "Dimitris Rizopoulos" <dimitris.rizopoulos at
med.kuleuven.be>
Cc: <r-help at r-project.org>
Sent: Thursday, February 28, 2008 2:28 AM
Subject: problem with the ltm package - 3PL model
Dear Dimitris:
I am working with ltm package. I have been analyzing a data with 3PL
model and I need to do two estimation.
In the first, the 40 items parameters are free, and the second the
estimation of the 1-10 items are fixed, those correspond to the last
10 items
parameters of the first simulation. The remaining items parameters
(11-40) are free.
I have a problem, when I try to fix the ten items parameters in the
second
simulation,the difficult parameters are not fixed. Why?.
I will like to know if you know the problem.
Thank you for your response,
Xavier G. Ordo?ez
An example the process:
> para.est.I <- tpm(Apli.sample.I,IRT.param = TRUE)
> par.est.I <- coef(para.est.I)
Gussng Dffclt Dscrmn
V32 0.009 -2.453 0.747
V33 0.310 0.444 0.694
V34 0.327 0.873 1.036
V35 0.031 -3.067 0.343
V36 0.054 -0.934 1.130
V37 0.001 -1.991 0.582
V38 0.004 -1.686 0.571
V39 0.003 -2.470 0.910
V40 0.207 0.421 1.307
V41 0.114 -0.843 1.024
> fix.c <-
> cbind(rep(1:10),rep(1,10),matrix(as.vector(t(par.est.I[31:40,])[1,])))
> fix.b <-
> cbind(rep(1:10),rep(2,10),matrix(as.vector(t(par.est.I[31:40,])[2,])))
> fix.a <-
> cbind(rep(1:10),rep(3,10),matrix(as.vector(t(par.est.I[31:40,])[3,])))
> fixx <- rbind(fix.c,fix.b,fix.a)
> para.est.II <- tpm(Apli.sample.I,constraint = fixx,IRT.param = TRUE)
Gussng Dffclt Dscrmn
V2 0.009 3.284 0.747
V3 0.310 -0.640 0.694
V4 0.327 -0.843 1.036
V5 0.031 8.942 0.343
V6 0.054 0.827 1.130
V7 0.001 3.421 0.582
V8 0.004 2.953 0.571
V9 0.003 2.714 0.910
V10 0.207 -0.322 1.307
V11 0.114 0.823 1.024
> coef(para.est.II)[1:10,]==coef(para.est.I)[31:40,]
Gussng Dffclt Dscrmn
V2 TRUE FALSE TRUE
V3 TRUE FALSE TRUE
V4 TRUE FALSE TRUE
V5 TRUE FALSE TRUE
V6 TRUE FALSE TRUE
V7 TRUE FALSE TRUE
V8 TRUE FALSE TRUE
V9 TRUE FALSE TRUE
V10 TRUE FALSE TRUE
V11 TRUE FALSE TRUE
Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm