Re: [R-br] Gerar e analizar dados por TRI

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

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.

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.

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@gmail.com Em 8 de setembro de 2013 21:16, Felipe Buchbinder <felbuch@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@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.
_______________________________________________ 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.

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" <serpa.alexandre@gmail.com> 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: serpa.alexandre@gmail.com
Em 8 de setembro de 2013 21:16, Felipe Buchbinder <felbuch@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@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.
_______________________________________________ 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.

Justamente pq a funcao simula as respostas aos itens condiciomado pelo theta das pessoas, enquanto o grm calcula o parametro dos itens, que nesse modelo corresponde apenas a dificuldade. Em set 9, 2013 5:54 PM, "Felipe Buchbinder" <felbuch@gmail.com>escreveu: 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" <serpa.alexandre@gmail.com> escreveu:
Olá Felipe, > > Quando você chama os thetas que você entra representam, nesse caso, o parâmetro...
_______________________________________________ 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.

Professores, Obrigado pelas respostas e desculpem a minha insistência. Eu acho que não estou entendendo então o que é o parâmetro theta. O manual do pacote ltm (p.55), diz que o theta é "*a list with numeric vector elements, with* *first the threshold parameters and last the discrimination parameter.*" Assim, eu tive a impressão que o theta traz características do item, não do traço latente dos respondentes. O que é o theta, então? mais uma vez, obrigado 2013/9/9 Alexandre Serpa <serpa.alexandre@gmail.com>
Justamente pq a funcao simula as respostas aos itens condiciomado pelo theta das pessoas, enquanto o grm calcula o parametro dos itens, que nesse modelo corresponde apenas a dificuldade.
Em set 9, 2013 5:54 PM, "Felipe Buchbinder" <felbuch@gmail.com>escreveu:
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" <serpa.alexandre@gmail.com> escreveu:
Olá Felipe, > > Quando você chama os thetas que você entra representam, nesse caso, o parâmetro...
_______________________________________________ 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.
participantes (3)
-
Alexandre Serpa
-
Felipe Buchbinder
-
Ivan Bezerra Allaman