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.

  > head(altura)

    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

  > class(altura)

  [1] "data.frame"

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:



Figura 11: Curva característica dos itens sobre altura.
  > plot(altura.tpm,item=1:14,sub='Altura antigo',legend=F)
PIC

Outras curvas também podem ser obtidas com os seguintes comandos:



Figura 12: Curva característica dos itens sobre altura.
  > par(mfrow=c(2,2))
  > plot(altura.tpm,items=1:5)
  > plot(altura.tpm,type="IIC",items=1:5)
  > plot(altura.tpm,type="IIC",items=0)
  > par(mfrow=c(1,1))
PIC

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.

  > altura.par

           [,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())

  > head(altura.sco)

               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


Figura 13: Associação entre valores estimados do parâmetro a no R e no BILOG.
  > plot(a.r,a.bilog)
PIC