Mas os parâmetros dos itens calculados pelo "grm" não deveriam ser os
mesmos fornecidos no parâmetro "theta" da "rmvordlogis"? Por que a função
"grm" não recupera os parâmetros dos itens usados para gerar as respostas
com a função "rmvordlogis"?
Em 08/09/2013 21:40, "Alexandre Serpa" <[email protected]> escreveu:

> Olá Felipe,
>
> Quando você chama os thetas que você entra representam, nesse caso, o
> parâmetro das pessoas na variável latente que você quer calcular. O 
> "rmvordlogis"
> simula as respostas a um dado item dado theta que você simulou. Quando
> você chama o "grm", ele calcula, então, o parâmetro dos itens de acordo com
> as respostas simuladas.
>
> No seu exemplo, você tem apenas 10 respostas simuladas. É um valor pequeno
> e, por isso, alguns itens não convergiram (rodando o CMR, item 1 e item 5).
> Se você aumentar o número de resposta, você melhora a estimativa dos
> parâmetros dos itens (ex:  x <- rmvordlogis(30,thetas,model =
> "grm",IRT=F)).
>
> Abs
>
> Alexandre Serpa
>
> Psicólogo
> Especialista em Métodos Computacionais Estatísticos
> Mestre em Educação
> Doutorando em Psicologia
> email:   [email protected]
>
>
> Em 8 de setembro de 2013 21:16, Felipe Buchbinder <[email protected]>escreveu:
>
>> 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 <[email protected]>
>>
>>> 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:   [email protected]
>>>
>>>
>>> Em 8 de setembro de 2013 15:38, Ivan Bezerra Allaman <
>>> [email protected]> 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
>>>> [email protected]
>>>> 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
>>> [email protected]
>>> 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
>> [email protected]
>> 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
> [email protected]
> 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
[email protected]
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.

Responder a