6 Questionário sobre Altura - Antigo
Estes dados referem-se ao questionário sobre Altura com 14 itens.
6.1 Leitura do arquivo
Os dados podem ser obtidos diretamente deo site com os seguinte comandos:
> altura<-read.fwf('http://www.ufpr.br/~aanjos/TRI/dados/altura211.dat',widths=c(3,4,rep(1,14)),header=FALSE)
> colnames(altura)<-c('id','altura',paste('i',1:14,sep="")) # insere nomes
Os dados necessitam ser formatados para que possam ser analisados no R.
id altura i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 i12 i13 i14
1 1 1,81 0 1 0 1 1 1 1 0 1 1 1 0 1 0
2 2 1,64 0 0 0 0 0 0 0 0 1 0 0 0 0 0
3 3 1,80 0 0 1 1 0 0 1 0 1 1 0 1 0 1
4 4 1,78 0 1 1 1 1 0 1 0 1 1 0 1 0 1
5 5 1,66 0 0 0 0 0 0 1 0 1 1 0 0 0 0
6 6 1,67 0 0 0 0 0 0 1 0 1 1 0 0 0 0
6.2 Ajuste do modelo com dois parâmetros
No R o ajuste de modelos com dois parâmetros pode ser realizado com a função ltm().
Deve-se redefinir o argumento constraint para que o parâmetro c seja zero. Nessa opção,
no exemplo const=cbind(1:14,1,0), indica que para os 14 itens (1:14), o parâmetro c (1)
será definido como 0 (0).
> altura.tpm<-tpm(altura[,3:16],const=cbind(1:14,1,0))
> altura.tpm
Call:
tpm(data = altura[, 3:16], constraint = cbind(1:14, 1, 0))
Coefficients:
Gussng Dffclt Dscrmn
i1 0 2.537 0.298
i2 0 1.221 1.156
i3 0 1.223 1.477
i4 0 1.345 0.863
i5 0 1.076 2.196
i6 0 1.124 1.805
i7 0 -0.114 4.150
i8 0 2.636 1.101
i9 0 -0.813 1.131
i10 0 0.035 3.118
i11 0 0.405 1.172
i12 0 0.234 2.395
i13 0 0.808 1.748
i14 0 0.511 2.829
Log.Lik: -1425.466
Para obter os valores de θ basta aplicar a função factor.scores() sobre o objeto
altura.tpm:
> altura.prof<-factor.scores(altura.tpm)
> head(altura.prof$score)
i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 i12 i13 i14 Obs Exp
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 18.170
2 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0.028
3 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0.908
4 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0.080
5 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0.270
6 0 0 0 0 0 0 0 0 1 0 0 0 0 0 14 11.917
z1 se.z1
1 -1.1923057 0.6324131
2 -0.3171599 0.3178183
3 -0.5874984 0.3974938
4 -0.3623446 0.3281457
5 -0.4275997 0.3453524
6 -0.8352894 0.4953336
As curvas características dos itens podem ser obtidas da seguite maneira:
Outras curvas também podem ser obtidas com os seguintes comandos:
6.2.1 Análise pelo pacote irtoys
O modelo com dois parâmetros também pode ser obtido com a função est() do pacote
irtoys:
> altura.par<-est(altura[,3:16], model = "2PL", engine = "ltm", nqp = 20, est.distr = FALSE,
+ logistic = TRUE, nch = 5, a.prior = TRUE, b.prior = FALSE, c.prior = FALSE,
+ bilog.defaults = TRUE, rasch = FALSE, run.name = "alturaR")
o objeto altura.par contém os resultados da função aplicda sobre os dados de
altura.
[,1] [,2] [,3]
i1 0.3023088 2.51864451 0
i2 1.1786203 1.22417286 0
i3 1.4714661 1.24389140 0
i4 0.8919993 1.32955756 0
i5 2.2126637 1.09101933 0
i6 1.8039464 1.14264208 0
i7 4.0909896 -0.10296482 0
i8 1.1080365 2.64225344 0
i9 1.1431516 -0.78759448 0
i10 3.1866217 0.05536344 0
i11 1.1649784 0.42652777 0
i12 2.3735103 0.25586609 0
i13 1.7427149 0.82894898 0
i14 2.8101746 0.53301327 0
Os valores de θ para cada um dos indivíduos pode ser obtido com a função
eap().
> altura.sco<-eap(altura[,3:16],altura.par,qu=normal.qu())
est sem n
[1,] 0.88403653 0.3476463 14
[2,] -0.99531379 0.5210093 14
[3,] 0.72098354 0.3221649 14
[4,] 1.13417926 0.3692381 14
[5,] 0.01571403 0.2818606 14
[6,] 0.01571403 0.2818606 14
6.2.2 Comparação com resultados do BILOG
Se você utilizou o software BILOG obter os parâmetros dos itens, observe que não são
estimados exatamente os mesmos valores.
Para os dados de altura, comparamos os valores estimados do parâmetro it a pelo
software R utilizando o pacote ltm e o software BILOG.
> a.bilog<-c(0.48201,1.13942,1.41464,0.89937,1.99707,1.70118,3.23086,1.08399,1.11542,2.72446,1.15224,2.14837,1.65720,2.53808)
> a.r<-altura.tpm$coef[,3];a.r
i1 i2 i3 i4 i5 i6
0.2978269 1.1556397 1.4769008 0.8628302 2.1961594 1.8050581
i7 i8 i9 i10 i11 i12
4.1497827 1.1013725 1.1311536 3.1179914 1.1715320 2.3952802
i13 i14
1.7481013 2.8288379