[R-br] Gerar e analizar dados por TRI

Alexandre Serpa serpa.alexandre em gmail.com
Domingo Setembro 8 21:40:01 BRT 2013


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:   serpa.alexandre em gmail.com


Em 8 de setembro de 2013 21:16, Felipe Buchbinder <felbuch em gmail.com>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 <serpa.alexandre em 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 em gmail.com
>>
>>
>> Em 8 de setembro de 2013 15:38, Ivan Bezerra Allaman <
>> ivanalaman em 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 em 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 em 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 em 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130908/95400c5a/attachment.html>


Mais detalhes sobre a lista de discussão R-br