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" <[EMAIL PROTECTED]> To: "Dimitris Rizopoulos" <[EMAIL PROTECTED]> Cc: <r-help@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 ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.