AnaliseTRI-2PL

Author

Silvio Aparecido da Silva

Modelo da TRI 2PL

A dimensão de interesse é a mobilidade da liberdade social das mulheres. As mulheres foram questionadas se conseguiam realizar sozinhas as seguintes atividades (1 = sim, 0 = não):

  • Item 1 - Ir a qualquer parte da vila/cidade.

  • Item 2 - Sair da vila/cidade.

  • Item 3 - Conversar com um homem desconhecido.

  • Item 4 - Ir ao cinema/a um espetáculo cultural.

  • Item 5 - Ir às compras.

  • Item 6 - Ir a uma cooperativa/clube de mães/outro clube.

  • Item 7 - Participar de uma reunião política.

  • Item 8 Ir a um centro de saúde/hospital.

Fonte: Pesquisa de Fertilidade de Bangladesh de 1989 (Huq e Cleland, 1990).

Dados de exemplo pacote LTM

  1. Abrindo dados
library(ltm)
Carregando pacotes exigidos: MASS
Carregando pacotes exigidos: msm
Carregando pacotes exigidos: polycor
dados<-Mobility
apply(dados,2,table)
  Item 1 Item 2 Item 3 Item 4 Item 5 Item 6 Item 7 Item 8
0   1700   5794   2096   5365   7859   7506   7997   7713
1   6745   2651   6349   3080    586    939    448    732
descript(dados)

Descriptive statistics for the 'dados' data-set

Sample:
 8 items and 8445 sample units; 0 missing values

Proportions for each level of response:
            0      1   logit
Item 1 0.2013 0.7987  1.3782
Item 2 0.6861 0.3139 -0.7819
Item 3 0.2482 0.7518  1.1083
Item 4 0.6353 0.3647 -0.5550
Item 5 0.9306 0.0694 -2.5961
Item 6 0.8888 0.1112 -2.0786
Item 7 0.9470 0.0530 -2.8820
Item 8 0.9133 0.0867 -2.3549


Frequencies of total scores:
       0    1    2    3    4   5   6   7   8
Freq 829 1617 2369 1533 1126 389 193 143 246


Point Biserial correlation with Total Score:
       Included Excluded
Item 1   0.5379   0.3504
Item 2   0.6971   0.5227
Item 3   0.5485   0.3465
Item 4   0.7310   0.5623
Item 5   0.6225   0.5240
Item 6   0.6528   0.5340
Item 7   0.6058   0.5177
Item 8   0.6236   0.5132


Cronbach's alpha:
                  value
All Items        0.7605
Excluding Item 1 0.7561
Excluding Item 2 0.7241
Excluding Item 3 0.7597
Excluding Item 4 0.7155
Excluding Item 5 0.7318
Excluding Item 6 0.7246
Excluding Item 7 0.7361
Excluding Item 8 0.7304


Pairwise Associations:
   Item i Item j p.value
1       1      7  <2e-16
2       1      5  <2e-16
3       1      8  <2e-16
4       3      7  <2e-16
5       3      5  <2e-16
6       3      8  <2e-16
7       1      6  <2e-16
8       3      6  <2e-16
9       2      3  <2e-16
10      2      7  <2e-16
  1. Verificando o número de fatores por meio da análise fatorial
library(psych)

Anexando pacote: 'psych'
O seguinte objeto é mascarado por 'package:ltm':

    factor.scores
O seguinte objeto é mascarado por 'package:polycor':

    polyserial
matriz_tetra <- tetrachoric(dados, correct = TRUE)
fa.parallel(matriz_tetra$rho, n.obs = nrow(dados))

Parallel analysis suggests that the number of factors =  4  and the number of components =  1 

Analisando com TRI 2PL

Analise com o pacote mirt

library(mirt)
Carregando pacotes exigidos: stats4
Carregando pacotes exigidos: lattice

Anexando pacote: 'mirt'
O seguinte objeto é mascarado por 'package:ltm':

    Science
ajuste<-mirt(dados,1, '2PL',SE=TRUE)
summary(ajuste)
          F1    h2
Item 1 0.778 0.605
Item 2 0.772 0.597
Item 3 0.663 0.440
Item 4 0.871 0.758
Item 5 0.923 0.852
Item 6 0.884 0.781
Item 7 0.966 0.933
Item 8 0.874 0.765

        SE.F1
Item 1 0.0133
Item 2 0.0102
Item 3 0.0141
Item 4 0.0087
Item 5 0.0072
Item 6 0.0083
Item 7 0.0057
Item 8 0.0088

SS loadings:  5.73 
Proportion Var:  0.716 

Factor correlations: 

   F1
F1  1

Tabela de coeficiente simples

coef(ajuste, IRTpars = TRUE, simplify=TRUE)
$items
           a      b g u
Item 1 2.106 -1.084 0 1
Item 2 2.070  0.629 0 1
Item 3 1.508 -1.025 0 1
Item 4 3.013  0.400 0 1
Item 5 4.082  1.611 0 1
Item 6 3.215  1.385 0 1
Item 7 6.352  1.677 0 1
Item 8 3.069  1.568 0 1

$means
F1 
 0 

$cov
   F1
F1  1

Tabela mostrando os erros padrões

coef(ajuste, IRTpars = TRUE, printSE=T)
$`Item 1`
        a      b  g  u
par 2.106 -1.084  0  1
SE  0.091  0.028 NA NA

$`Item 2`
        a     b  g  u
par 2.070 0.629  0  1
SE  0.068 0.020 NA NA

$`Item 3`
        a      b  g  u
par 1.508 -1.025  0  1
SE  0.057  0.031 NA NA

$`Item 4`
        a     b  g  u
par 3.013 0.400  0  1
SE  0.125 0.017 NA NA

$`Item 5`
        a     b  g  u
par 4.082 1.611  0  1
SE  0.216 0.028 NA NA

$`Item 6`
        a     b  g  u
par 3.215 1.385  0  1
SE  0.139 0.026 NA NA

$`Item 7`
        a     b  g  u
par 6.352 1.677  0  1
SE  0.556 0.027 NA NA

$`Item 8`
        a     b  g  u
par 3.069 1.568  0  1
SE  0.132 0.030 NA NA

$GroupPars
    MEAN_1 COV_11
par      0      1
SE      NA     NA

Compara os tetas estimado com o score total

plot(ajuste)

# Mesmo gráfico anterior com o intervalo de confiança (Demora para rodar)

# plot(ajuste, MI=100)

Curva Caracteristica dos Itens (CCI)

plot(ajuste, type = 'trace')

Curva de informação do teste

plot(ajuste, type = 'info')

Curva de informação do teste com erro padrão

plot(ajuste, type = 'infoSE')

Curva de informação de todos os item

plot(ajuste, type = 'infotrace')

Curva de informação por item

itemplot(ajuste, 1, type = 'info')

Curva caracteristica por itens

itemplot(ajuste, 1, type = 'trace')

itemplot(ajuste, 2, type = 'trace')

Curva caracteristica por item com a curva de informação

itemplot(ajuste, 2, type = 'infotrace') 

itemplot(ajuste, 1, type = 'infotrace')

Calculando os thetas

theta <- fscores(ajuste,as.data.frame=TRUE, full.scores.SE=TRUE)
head(theta)
             F1     SE_F1
[1,]  0.7446037 0.3801577
[2,] -1.4449629 0.6448701
[3,] -1.4449629 0.6448701
[4,] -1.4449629 0.6448701
[5,] -1.4449629 0.6448701
[6,] -1.4449629 0.6448701

Histograma do escore Theta

library(ggplot2)

Anexando pacote: 'ggplot2'
Os seguintes objetos são mascarados por 'package:psych':

    %+%, alpha
ggplot(data = theta, aes(x = theta[,1])) +
     geom_histogram(fill = 'blue',color='black',bins = 7)

Qualidade do ajuste

M2(ajuste)
           M2 df p RMSEA RMSEA_5 RMSEA_95 SRMSR   TLI   CFI
stats 377.922 20 0 0.046   0.042     0.05 0.032 0.983 0.988

1. M2, df e valor p (M2 = 377.922, df = 20, p = 0)

  • O que é: É um teste de qui-quadrado (\(\chi^{2}\)) modificado para dados categóricos.

  • Interpretação: O ideal teórico seria um valor (p > 0,05) (o que indicaria que não há diferença entre o modelo e os dados reais). No entanto, o (M2) é altamente sensível ao tamanho da amostra. Em amostras moderadas ou grandes, o valor (p) quase sempre será zero (p < 0,001), rejeitando a hipótese nula. Por isso, não se guie apenas pelo valor p e foque nos índices abaixo.

2. RMSEA (0.046) e seus intervalos de confiança (0.042 a 0.05)

  • O que é: O Root Mean Square Error of Approximation mede o erro de aproximação do modelo. Ele penaliza modelos muito complexos.

  • Pontos de corte:

    • Menor que (0,05): Excelente ajuste (o seu caso).

    • Entre (0,05) e (0,08): Ajuste adequado/bom.

    • Maior que (0,10): Ajuste ruim.

  • Interpretação: O seu valor de 0,046 demonstra que o resíduo do modelo é muito baixo. O intervalo de confiança de 90% (RMSEA_5 e RMSEA_95) está totalmente abaixo de (0,05), o que dá muita segurança de que o ajuste é ótimo.

3. SRMSR (0.032)

  • O que é: O Standardized Root Mean Square Residual analisa a média das diferenças entre as correlações observadas e as previstas pelo modelo.

  • Pontos de corte: Menor que (0,08) indica um bom ajuste. Menor que (0,05) é considerado excelente.

  • Interpretação: O valor de 0,032 mostra que o erro médio de correlação residual é extremamente pequeno.

### 4. TLI (0.983) e CFI (0.988)

  • O que são: O Tucker-Lewis Index e o Comparative Fit Index são índices de ajuste comparativo. Eles comparam o seu modelo com um modelo “nulo” (onde as variáveis não teriam nenhuma relação entre si).

  • Pontos de corte: Ambos devem ser maiores que (0,90) para um ajuste aceitável, e maiores que (0,95) para um ajuste excelente.

  • Interpretação: Seus valores (0,983 e 0,988) estão confortavelmente acima de (0,95), confirmando a alta qualidade do modelo ajustado.