Professores,

Obrigado pela ajuda. Modifiquei o meu CMR para o seguinte:

library(ltm)
thetas <- lapply(1:5, function(u) c(seq(-1, 1, len = 2), 1.2))
x <- rmvordlogis(10,thetas,model = "grm",IRT=F)
grm(x)

Porém, o grm não recupera os parâmetros -1, 1 e 1.2 para os itens. Ao invés disso, ele encontrou:

Call:
grm(data = x)

Coefficients:
        Extrmt1  Extrmt2  Dscrmn
Item 1   -0.457    0.525   4.973
Item 2   -0.250    0.363   2.051
Item 3   -0.500    0.314   2.589
Item 4   -0.346    0.600   0.961
Item 5   -0.161   -8.819  -0.251

Log.Lik: -46.384

E, de vez em quando, ele retorna a seguinte mensagem:

Warning messages:
1: glm.fit: algorithm did not converge 
2: glm.fit: fitted probabilities numerically 0 or 1 occurred 
3: glm.fit: algorithm did not converge 
4: glm.fit: fitted probabilities numerically 0 or 1 occurred 
5: glm.fit: algorithm did not converge 
6: glm.fit: fitted probabilities numerically 0 or 1 occurred


Estes resultados são de se esperar? Por que o grm parece não recuperar os parâmetros originais?

Mais uma vez, obrigado,

Felipe


2013/9/8 Alexandre Serpa <serpa.alexandre@gmail.com>
Felipe,

Na linha de comando  "x <- rmvordlogis(10,thetas,model = "grm")" você deve adicionar IRT=F.

Você pode eliminar o modelo na geração dos dados randômicos "(model="grm")" e especificar a parametrização ao chamar o comando "grm".

Desse modo, vai funcionar "x<-rmvordlogis(10,thetas)".

Abs


Alexandre Serpa

Psicólogo
Especialista em Métodos Computacionais Estatísticos
Mestre em Educação
Doutorando em Psicologia
email:   serpa.alexandre@gmail.com


Em 8 de setembro de 2013 15:38, Ivan Bezerra Allaman <ivanalaman@yahoo.com.br> escreveu:
A mensagem de erro é extremamente óbvia!!! e o seu exemplo não é reproduzível pois faltou colocar "library(ltm)".

O problema está na especificação do argumento "model"!!! Ao abrir a função tem-se:

probs <- if (model == "grm") {
            gammas <- lapply(thetas, function(x) {
                nx <- length(x)
                if (IRT)
                  cbind(plogis(x[nx] * (z - matrix(x[-nx], n,
                    nx - 1, TRUE))), 1)
                else cbind(plogis(matrix(x[-nx], n, nx - 1, TRUE) -
                  x[nx] * z), 1)
            })
            lapply(gammas, function(x) {
                nc <- ncol(x)
                cbind(x[, 1], x[, 2:nc] - x[, 1:(nc - 1)])
            })
        }

Aqui, este objeto é calculado de modo que contém valores negativos em suas listas. Logo, e claramente, a função "sample" irá acusar erro, uma vez que,

X <- matrix(0, n, p)
        for (j in 1:p) {
            for (i in 1:n) X[i, j] <- sample(ncatg[j], 1, prob = probs[[j]][i,
                ])
        }

Este objeto "probs" é justamente usado no argumento "prob" da função "sample" e como sabemos, não existe probabilidade negativa segundo os axiomas de Kolmogorov.

Detectei o erro, porém não posso lhe dar a solução pois TRI não é algo que entendo!!

(s,f,p)
Allaman




_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.


_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.