5 Simulação de respostas no R
5.1 Simulação utilizando o pacote irtoys
Primeiro Carregue o pacote irtoys:
Em seguida, gere os valores dos parâmetros de interesse. Considere, por exemplo 18
itens:
> set.seed(2345) #
> a<-runif(18,.2,3)
> b<-seq(-2,2,length=18)
> set.seed(321)
> #c<-runif(18,.10,.25) ou
> c<-rep(.33,18)
> pa<-cbind(a,b,c);pa
a b c
[1,] 0.5268817 -2.0000000 0.33
[2,] 0.7460703 -1.7647059 0.33
[3,] 2.1840811 -1.5294118 0.33
[4,] 0.2964729 -1.2941176 0.33
[5,] 1.5303363 -1.0588235 0.33
[6,] 1.0236516 -0.8235294 0.33
[7,] 1.8930629 -0.5882353 0.33
[8,] 2.4077543 -0.3529412 0.33
[9,] 1.3403296 -0.1176471 0.33
[10,] 2.1934367 0.1176471 0.33
[11,] 0.6460858 0.3529412 0.33
[12,] 1.1592440 0.5882353 0.33
[13,] 0.4269729 0.8235294 0.33
[14,] 0.6198062 1.0588235 0.33
[15,] 1.3493747 1.2941176 0.33
[16,] 1.1250785 1.5294118 0.33
[17,] 1.9192593 1.7647059 0.33
[18,] 1.4157916 2.0000000 0.33
Simule :
> set.seed(1236)
> pf<-rnorm(100)
Simule o padrão de resposta em função dos parâmetros e da habilidade:
> dados.sim<-sim(ip=pa,x=pf)
Obtenha as estimativas de um modelo com 3 parâmetros,:
> require(ltm)
> dados.tpm<-tpm(dados.sim,constraint = cbind(1:18, 1, 0.33))
> coef(dados.tpm)
Gussng Dffclt Dscrmn
Item 1 0.33 -1.61927398 0.6234960
Item 2 0.33 -2.09516792 0.6396838
Item 3 0.33 -2.30928419 1.6131551
Item 4 0.33 -0.29932386 0.8661321
Item 5 0.33 -1.35493738 1.5896167
Item 6 0.33 -3.15976690 0.4083628
Item 7 0.33 -0.94611590 1.1435501
Item 8 0.33 -0.80065098 2.1353497
Item 9 0.33 0.24145882 1.9554742
Item 10 0.33 -0.22772459 3.1784585
Item 11 0.33 0.06480098 0.4083328
Item 12 0.33 0.48424558 4.2162147
Item 13 0.33 0.80956878 0.8410591
Item 14 0.33 1.80068781 0.5857634
Item 15 0.33 1.33313218 0.9144555
Item 16 0.33 0.89631520 2.5332931
Item 17 0.33 1.56788678 1.8118367
Item 18 0.33 2.28620915 1.0794860
5.2 Simulação utilizando o pacote ltm
No pacote ltm existe a função rmvlogis() para simulação de padrões de resposta
dicotômicos ou politômicos para modelos da TRI.
Para simular dados considerando o modelo de Rasch utilize a seguinte sintaxe,
considerando 5 itens e 10 respondentes:
> rmvlogis(10,cbind(seq(-2,2,1),1))
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 0 0 1
[2,] 1 0 0 0 0
[3,] 0 1 0 1 1
[4,] 1 0 1 0 0
[5,] 1 1 1 1 0
[6,] 0 0 1 1 0
[7,] 1 0 0 1 0
[8,] 1 0 1 0 0
[9,] 1 1 0 0 0
[10,] 1 0 1 0 0
Veja a estrutura de cbind:
[,1] [,2]
[1,] -2 1
[2,] -1 1
[3,] 0 1
[4,] 1 1
[5,] 2 1
Para simular um padrão considerando um modelo de resposta gradual:
> thetas <- lapply(1:5, function(u) c(seq(-1, 1, len = 2), 1.2))
> rmvordlogis(10, thetas)
[,1] [,2] [,3] [,4] [,5]
[1,] 3 3 3 1 2
[2,] 2 2 3 2 2
[3,] 1 1 1 1 1
[4,] 3 3 3 2 3
[5,] 3 2 3 3 3
[6,] 2 1 2 1 2
[7,] 2 2 2 2 2
[8,] 2 1 2 2 2
[9,] 2 1 1 1 2
[10,] 3 3 2 3 2