AnaliseTRI-3PL

Modelo da TRI 3PL

Os dados referem-se ao vertibular da UFSM com 15 questões de matemática aplicada a um universo de 15389 vestibulando.

  1. Abrindo dados
dados <- read.csv2("https://raw.githubusercontent.com/Silvioest/teste/refs/heads/master/dadosM.csv")
apply(dados,2,table)
    M1    M2    M3    M4    M5    M6   M7    M8    M9  M10  M11   M12  M13
0 8489 12097 10859 11027 10400 10176 9873 10774 10970 9891 9138 11271 8940
1 6900  3292  4530  4362  4989  5213 5516  4615  4419 5498 6251  4118 6449
    M14   M15
0 11227 10429
1  4162  4960
  1. Análise descritiva
library(ltm)
Carregando pacotes exigidos: MASS
Carregando pacotes exigidos: msm
Carregando pacotes exigidos: polycor
descript(dados)

Descriptive statistics for the 'dados' data-set

Sample:
 15 items and 15389 sample units; 0 missing values

Proportions for each level of response:
         0      1   logit
M1  0.5516 0.4484 -0.2072
M2  0.7861 0.2139 -1.3015
M3  0.7056 0.2944 -0.8743
M4  0.7166 0.2834 -0.9274
M5  0.6758 0.3242 -0.7346
M6  0.6613 0.3387 -0.6689
M7  0.6416 0.3584 -0.5822
M8  0.7001 0.2999 -0.8478
M9  0.7128 0.2872 -0.9093
M10 0.6427 0.3573 -0.5872
M11 0.5938 0.4062 -0.3797
M12 0.7324 0.2676 -1.0069
M13 0.5809 0.4191 -0.3266
M14 0.7295 0.2705 -0.9923
M15 0.6777 0.3223 -0.7432


Frequencies of total scores:
       0    1    2    3    4    5    6   7   8   9  10  11  12  13  14 15
Freq 268 1047 2078 2711 2494 1847 1277 845 669 483 429 402 375 289 143 32


Point Biserial correlation with Total Score:
    Included Excluded
M1    0.5049   0.3720
M2    0.5429   0.4403
M3    0.4426   0.3144
M4    0.4118   0.2819
M5    0.4692   0.3403
M6    0.4967   0.3697
M7    0.5335   0.4100
M8    0.4778   0.3529
M9    0.5399   0.4250
M10   0.5608   0.4416
M11   0.4998   0.3680
M12   0.3540   0.2216
M13   0.2403   0.0848
M14   0.2887   0.1514
M15   0.3753   0.2368


Cronbach's alpha:
               value
All Items     0.7166
Excluding M1  0.6960
Excluding M2  0.6904
Excluding M3  0.7029
Excluding M4  0.7064
Excluding M5  0.6999
Excluding M6  0.6965
Excluding M7  0.6916
Excluding M8  0.6986
Excluding M9  0.6906
Excluding M10 0.6879
Excluding M11 0.6965
Excluding M12 0.7127
Excluding M13 0.7294
Excluding M14 0.7199
Excluding M15 0.7115


Pairwise Associations:
   Item i Item j p.value
1       8     13   0.008
2      11     13   0.003
3       5     13   5e-05
4       4     13   2e-05
5      12     13   5e-06
6       3     13   2e-06
7      13     15   2e-06
8       7     13   9e-07
9       1     13   2e-07
10      6     13   1e-08
  1. Verificando o número de fatores por meio do ScreePlots
library(psych)

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

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

    polyserial
grapc<-fa.parallel(dados,fa="pc",cor='tet')

Parallel analysis suggests that the number of factors =  NA  and the number of components =  2 

Analisando com modelo da TRI 3PL

  1. 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
m1<-mirt(dados,1,'3PL',SE=TRUE,guess = 0.20)

summary(m1)
       F1    h2
M1  0.846 0.716
M2  0.777 0.604
M3  0.507 0.257
M4  0.926 0.857
M5  0.882 0.779
M6  0.877 0.769
M7  0.729 0.531
M8  0.827 0.685
M9  0.821 0.674
M10 0.922 0.850
M11 0.851 0.724
M12 0.579 0.335
M13 0.540 0.291
M14 0.757 0.572
M15 0.466 0.217

     SE.F1
M1  0.0161
M2  0.0169
M3  0.0153
M4  0.0106
M5  0.0121
M6  0.0125
M7  0.0214
M8  0.0176
M9  0.0155
M10 0.0088
M11 0.0150
M12 0.0390
M13 0.0908
M14 0.0440
M15 0.0436

SS loadings:  8.861 
Proportion Var:  0.591 

Factor correlations: 

   F1
F1  1

4.Tabela de coeficiente simples

coef(m1,simplify=TRUE,IRTpars=TRUE)
$items
        a     b     g u
M1  2.701 0.792 0.260 1
M2  2.101 1.208 0.045 1
M3  1.001 1.074 0.006 1
M4  4.172 1.458 0.211 1
M5  3.192 1.224 0.211 1
M6  3.104 1.115 0.205 1
M7  1.812 0.717 0.081 1
M8  2.507 1.229 0.168 1
M9  2.449 1.055 0.113 1
M10 4.050 0.910 0.193 1
M11 2.759 0.913 0.237 1
M12 1.209 1.881 0.149 1
M13 1.091 2.797 0.375 1
M14 1.969 2.175 0.229 1
M15 0.895 1.420 0.095 1

$means
F1 
 0 

$cov
   F1
F1  1
  1. Tabela mostrando os erros padrões
coef(m1, IRTpars = TRUE, printSE=T)
$M1
        a     b     g  u
par 2.701 0.792 0.260  1
SE  0.181 0.032 0.012 NA

$M2
        a     b     g  u
par 2.101 1.208 0.045  1
SE  0.115 0.024 0.008 NA

$M3
        a     b     g  u
par 1.001 1.074 0.006  1
SE  0.041 0.042 0.012 NA

$M4
        a     b     g  u
par 4.172 1.458 0.211  1
SE  0.335 0.022 0.004 NA

$M5
        a     b     g  u
par 3.192 1.224 0.211  1
SE  0.198 0.022 0.006 NA

$M6
        a     b     g  u
par 3.104 1.115 0.205  1
SE  0.191 0.022 0.007 NA

$M7
        a     b     g  u
par 1.812 0.717 0.081  1
SE  0.114 0.045 0.020 NA

$M8
        a     b     g  u
par 2.507 1.229 0.168  1
SE  0.169 0.025 0.008 NA

$M9
        a     b     g  u
par 2.449 1.055 0.113  1
SE  0.142 0.024 0.009 NA

$M10
        a    b     g  u
par 4.050 0.91 0.193  1
SE  0.258 0.02 0.006 NA

$M11
        a     b     g  u
par 2.759 0.913 0.237  1
SE  0.176 0.028 0.009 NA

$M12
        a     b     g  u
par 1.209 1.881 0.149  1
SE  0.123 0.054 0.015 NA

$M13
        a     b     g  u
par 1.091 2.797 0.375  1
SE  0.259 0.225 0.014 NA

$M14
        a     b     g  u
par 1.969 2.175 0.229  1
SE  0.268 0.070 0.007 NA

$M15
        a     b     g  u
par 0.895 1.420 0.095  1
SE  0.107 0.099 0.037 NA

$GroupPars
    MEAN_1 COV_11
par      0      1
SE      NA     NA
  1. Gráfico compara os tetas estimados com o escores totais
plot(m1)

  1. Curva Caracteristica dos Itens (CCI)
plot(m1,type="trace")

  1. Curva de informação do teste
plot(m1, type = 'info')

  1. Curva de informação do teste com erro padrão
plot(m1, type = 'infoSE')

  1. Curva de informação de todos os item
plot(m1, type = 'infotrace')

  1. Curva de informação por item
itemplot(m1, 1, type = 'info')

  1. Curva característica por itens
itemplot(m1, 1, type = 'trace')

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

  1. Curva característica por item com a curva de informação
itemplot(m1, 2, type = 'infotrace') 

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

  1. Calculando os thetas
theta <- fscores(m1,as.data.frame=TRUE, full.scores.SE=TRUE)
head(theta)
               F1     SE_F1
[1,] -0.658553072 0.6555264
[2,] -0.004559792 0.5506159
[3,] -0.358770565 0.6052740
[4,]  0.099978966 0.5398232
[5,] -0.522592896 0.7691941
[6,] -0.522069389 0.6748193
  1. 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 = 8)

  1. Juntando bases com o escore
dados2<-cbind(dados,theta)
head(dados2)
  M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 M13 M14 M15           F1     SE_F1
1  0  0  0  1  0  0  0  0  0   0   0   0   0   0   1 -0.658553072 0.6555264
2  0  1  1  0  0  0  0  0  1   0   0   0   0   0   0 -0.004559792 0.5506159
3  1  0  1  0  0  0  0  0  0   0   0   0   0   0   0 -0.358770565 0.6052740
4  0  0  1  0  1  0  1  1  0   0   0   0   1   1   0  0.099978966 0.5398232
5  1  0  0  1  0  0  0  0  1   0   0   0   0   1   0 -0.522592896 0.7691941
6  0  0  0  1  0  0  1  0  0   0   0   0   0   0   0 -0.522069389 0.6748193
  1. Mudando a escala theta (0,1) para escala(50,10)
dados2$escore<-10*theta[,1]+50
head(dados2)
  M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12 M13 M14 M15           F1     SE_F1
1  0  0  0  1  0  0  0  0  0   0   0   0   0   0   1 -0.658553072 0.6555264
2  0  1  1  0  0  0  0  0  1   0   0   0   0   0   0 -0.004559792 0.5506159
3  1  0  1  0  0  0  0  0  0   0   0   0   0   0   0 -0.358770565 0.6052740
4  0  0  1  0  1  0  1  1  0   0   0   0   1   1   0  0.099978966 0.5398232
5  1  0  0  1  0  0  0  0  1   0   0   0   0   1   0 -0.522592896 0.7691941
6  0  0  0  1  0  0  1  0  0   0   0   0   0   0   0 -0.522069389 0.6748193
    escore
1 43.41447
2 49.95440
3 46.41229
4 50.99979
5 44.77407
6 44.77931
  1. Histograma do escore escala (50,10)
ggplot(data = dados2, aes(x = escore)) +
  geom_histogram(fill = 'blue',color='black',bins = 8)

  1. Avaliação da qualidade do ajuste
M2(m1)
           M2 df p RMSEA RMSEA_5 RMSEA_95 SRMSR   TLI   CFI
stats 233.408 75 0 0.012    0.01    0.013 0.012 0.995 0.996