A Teoria de Resposta ao Item (TRI) é amplamente utilizada em avaliações educacionais para modelar a relação entre a habilidade de um indivíduo e a probabilidade de acerto em itens de um teste. Diferentemente da Teoria Clássica dos Testes, que se baseia principalmente em estatísticas agregadas do teste como um todo, a TRI permite analisar propriedades específicas de cada item, como sua dificuldade e capacidade de discriminação. Desse modo, os modelos de TRI desempenham um papel importante em testes educacionais. No contexto educacional, no Brasil, a TRI foi utilizada pela primeira vez em 1995 na análise dos dados do Sistema Nacional de Avaliação do Ensino Básico (SAEB) e em 2009 foi adotada como método de avaliação no Exame Nacional do Ensino Médio (ENEM) e é utilizada até os dias atuais.
Os modelos de Teoria de Resposta ao Item podem ser ajustados com o
pacote mirt no R, que oferece funções para estimação de
diferentes modelos TRI, extração de parâmetros dos itens, estimação de
habilidades e visualização das curvas características e da curva de
informação do teste. Esse será o pacote utilizado para ajuste dos
modelos.
library(mirt)
Para fins ilustrativos, foi gerada uma base de dados simulada
utilizando a função simdata() do pacote mirt.
A simulação considera um teste com 10 itens dicotômicos ajustados sob o
modelo logístico de dois parâmetros (2PL), com parâmetros de
discriminação gerados a partir de uma distribuição uniforme no intervalo
de 0.8 a 2 e parâmetros de dificuldade provenientes de uma distribuição
normal. Foram simuladas respostas de 200 indivíduos.
# simular dados
set.seed(123)
dados <- simdata(
a = runif(10, 0.8, 2), # parâmetro de discriminação
d = rnorm(10), # parâmetro de dificuldade
N = 200,
itemtype = "2PL"
)
Entre os modelos mais utilizados na Teoria de Resposta ao Item estão o modelo de Rasch (1PL) e o modelo logístico de dois parâmetros (2PL). No modelo de Rasch assume-se que todos os itens possuem a mesma discriminação, variando apenas em relação à dificuldade.
\[ P(X_{ij}=1|\theta_i) = \frac{1}{1 + e^{-(\theta_i - b_j)}} \]
onde \(\theta_i\) representa a habilidade do indivíduo e \(b_j\) a dificuldade do item.
O modelo 2PL permite que os itens apresentem diferentes níveis de discriminação:
\[ P(X_{ij}=1|\theta_i) = \frac{1}{1 + e^{-a_j(\theta_i - b_j)}} \]
onde \(a_j\) representa o parâmetro de discriminação e \(b_j\) a dificuldade do item.
Neste relatório, ambos os modelos foram ajustados aos dados simulados para fins de comparativos.
Os modelos foram ajustados assumindo uma estrutura unidimensional, na qual todos os itens medem um único traço latente de habilidade.
dimensao <- 1
modelo_rasch <- mirt(dados, dimensao, itemtype = 'Rasch')
modelo_2PL <- mirt(dados, dimensao, itemtype = '2PL')
summary(modelo_rasch)
## F1 h2
## Item_1 0.387
## Item_2 0.387
## Item_3 0.387
## Item_4 0.387
## Item_5 0.387
## Item_6 0.387
## Item_7 0.387
## Item_8 0.387
## Item_9 0.387
## Item_10 0.387
##
## SS loadings: 0
## Proportion Var: 0
##
## Factor correlations:
##
## F1
## F1 1
summary(modelo_2PL)
## F1 h2
## Item_1 0.655 0.428
## Item_2 0.670 0.449
## Item_3 0.681 0.464
## Item_4 0.795 0.631
## Item_5 0.717 0.513
## Item_6 0.346 0.120
## Item_7 0.436 0.190
## Item_8 0.760 0.577
## Item_9 0.622 0.387
## Item_10 0.506 0.256
##
## SS loadings: 4.016
## Proportion Var: 0.402
##
## Factor correlations:
##
## F1
## F1 1
Para extrair os coeficientes do modelo utilizou-se a função
coef(). Em seguida, utilizou-se summary() para
verificar as estatísticas para os parâmetros estimados.
coef_rasch <- coef(modelo_rasch, IRTpars = TRUE, simplify = TRUE)$items
coef_2PL <- coef(modelo_2PL, IRTpars = TRUE, simplify = TRUE)$items
coef_rasch
## a b g u
## Item_1 1 -1.76112510 0 1
## Item_2 1 -0.17856786 0 1
## Item_3 1 1.26018096 0 1
## Item_4 1 0.62089686 0 1
## Item_5 1 0.67837746 0 1
## Item_6 1 -1.43992725 0 1
## Item_7 1 -0.61951007 0 1
## Item_8 1 -0.28757468 0 1
## Item_9 1 -0.04270751 0 1
## Item_10 1 0.73640289 0 1
coef_2PL
## a b g u
## Item_1 1.4734167 -1.23922165 0 1
## Item_2 1.5365285 -0.11782762 0 1
## Item_3 1.5842315 0.85758159 0 1
## Item_4 2.2274662 0.36747471 0 1
## Item_5 1.7482277 0.44321118 0 1
## Item_6 0.6273629 -1.85371848 0 1
## Item_7 0.8235113 -0.62564654 0 1
## Item_8 1.9886343 -0.17451741 0 1
## Item_9 1.3534917 -0.02459103 0 1
## Item_10 0.9976188 0.66808079 0 1
No modelo de Rasch, o parâmetro de discriminação é fixado em 1 para todos os itens, conforme assumido pela especificação do modelo. Dessa forma, a interpretação concentra-se no parâmetro de dificuldade dos itens. Observa-se que os itens apresentam diferentes níveis de dificuldade ao longo da escala de habilidade. Por exemplo, o Item 10 apresenta dificuldade baixa (b = -0.85), caracterizando-se como um item relativamente fácil, enquanto o Item 8 apresenta dificuldade mais elevada (b = 1.79), sendo o item mais difícil do conjunto. De modo geral, os itens se distribuem ao longo da escala de habilidade, permitindo avaliar indivíduos com diferentes níveis do traço latente.
summary(coef_rasch)
## a b g u
## Min. :1 Min. :-1.7611 Min. :0 Min. :1
## 1st Qu.:1 1st Qu.:-0.5365 1st Qu.:0 1st Qu.:1
## Median :1 Median :-0.1106 Median :0 Median :1
## Mean :1 Mean :-0.1034 Mean :0 Mean :1
## 3rd Qu.:1 3rd Qu.: 0.6640 3rd Qu.:0 3rd Qu.:1
## Max. :1 Max. : 1.2602 Max. :0 Max. :1
coef_rasch
## a b g u
## Item_1 1 -1.76112510 0 1
## Item_2 1 -0.17856786 0 1
## Item_3 1 1.26018096 0 1
## Item_4 1 0.62089686 0 1
## Item_5 1 0.67837746 0 1
## Item_6 1 -1.43992725 0 1
## Item_7 1 -0.61951007 0 1
## Item_8 1 -0.28757468 0 1
## Item_9 1 -0.04270751 0 1
## Item_10 1 0.73640289 0 1
summary(coef_2PL)
## a b g u
## Min. :0.6274 Min. :-1.85372 Min. :0 Min. :1
## 1st Qu.:1.0866 1st Qu.:-0.51286 1st Qu.:0 1st Qu.:1
## Median :1.5050 Median :-0.07121 Median :0 Median :1
## Mean :1.4360 Mean :-0.16992 Mean :0 Mean :1
## 3rd Qu.:1.7072 3rd Qu.: 0.42428 3rd Qu.:0 3rd Qu.:1
## Max. :2.2275 Max. : 0.85758 Max. :0 Max. :1
coef_2PL
## a b g u
## Item_1 1.4734167 -1.23922165 0 1
## Item_2 1.5365285 -0.11782762 0 1
## Item_3 1.5842315 0.85758159 0 1
## Item_4 2.2274662 0.36747471 0 1
## Item_5 1.7482277 0.44321118 0 1
## Item_6 0.6273629 -1.85371848 0 1
## Item_7 0.8235113 -0.62564654 0 1
## Item_8 1.9886343 -0.17451741 0 1
## Item_9 1.3534917 -0.02459103 0 1
## Item_10 0.9976188 0.66808079 0 1
A Curva Característica do Item (CCI) é a representação gráfica da função matemática que modela a probabilidade do indivíduo de acertar ao item. O parâmetro de dificuldade representa o valor de para o qual a probabilidade de acerto do item é igual a Quanto maior o valor de , mais difícil é o item, mais deslocada à direita é a CCI.
O parâmetro de discriminação tem seu valor dado pela inclinação da CCI em relação ao eixo das abcissas: o valor de a é proporcional à derivada da tangente no ponto de inflexão da curva, logo, quanto maior o valor do ângulo formado pela inclinação da CCI, maior será o valor do parâmetro a. Desse modo, como para o modelo de Rasch a discriminação é setada em 1, as curvas de todos os itens possuem a mesma inclinação, enquanto para as curvas geradas para o modelo 2PL é possível notar a variação.
plot(modelo_rasch, type = "trace", main = "Rasch: Curvas Características dos Itens")
plot(modelo_2PL, type = "trace", main = "2PL: Curvas Características dos Itens")
As curvas de informação dos itens indicam o nível de precisão com que cada item mede diferentes valores da habilidade latente. Em geral, quanto maior a informação fornecida por um item em determinado ponto da escala, maior é a precisão da medida nesse nível de habilidade. Itens com maior discriminação tendem a apresentar maior informação, especialmente em torno de seus respectivos níveis de dificuldade.
No modelo de Rasch, como todos os itens possuem discriminação fixa igual a 1, as curvas de informação apresentam formato semelhante. A principal diferença entre elas está na posição ao longo da escala de habilidade, determinada pelo parâmetro de dificuldade de cada item.plot(modelo_rasch, type = "infotrace", main = "Rasch: Informação do Item")
plot(modelo_2PL, type = "infotrace", main = "2PL: Informação do Item")
A função de informação do teste representa a soma das informações fornecidas por todos os itens ao longo da escala de habilidade. Dessa forma, ela indica em quais regiões da escala o teste mede com maior precisão. Em geral, quanto maior a informação em determinado nível de habilidade, menor é o erro associado à estimativa da habilidade nesse ponto. A análise dessa função permite avaliar para quais níveis do traço latente o teste é mais informativo.
Observa-se que ambos os modelos apresentam maior informação em torno de \(\theta = 0\), indicando que o teste é mais preciso para indivíduos com níveis de habilidade próximos à média da escala. No entanto, o modelo 2PL apresenta um pico de informação mais elevado em comparação ao modelo de Rasch, o que indica maior precisão na estimativa da habilidade nessa região.
Essa diferença ocorre porque, no modelo 2PL, os itens podem apresentar diferentes níveis de discriminação, permitindo que itens mais discriminativos contribuam com maior informação para o teste. Já no modelo de Rasch, como a discriminação é fixa para todos os itens, a quantidade de informação fornecida pelo teste tende a ser menor.plot(modelo_rasch, type = "info", main = "Rasch: Informação do Teste")
plot(modelo_2PL, type = "info", main = "2PL: Informação do Teste")
Para comparar os modelos ajustados, foi realizado um teste de razão de verossimilhança entre o modelo de Rasch e o modelo 2PL. O modelo 2PL apresentou maior log-verossimilhança \(\log L = -1136.38\) em comparação ao modelo de Rasch \(\log L = -1150.14\), indicando melhor ajuste aos dados.
O teste de razão de verossimilhança indicou diferença estatisticamente significativa entre os modelos \(\chi^2 = 27.519\), \(df = 9\), \(p = 0.001\), sugerindo que o modelo 2PL representa melhor os dados observados.
Os critérios de informação apresentaram resultados mistos: o AIC foi menor para o modelo 2PL \(AIC = 2312.76\) em comparação ao modelo de Rasch \(AIC = 2322.28\), enquanto o BIC favoreceu o modelo de Rasch. Ainda assim, considerando o teste de razão de verossimilhança e o ganho de ajuste obtido, o modelo 2PL foi considerado mais adequado para representar os dados simulados.anova(modelo_rasch, modelo_2PL)
## AIC SABIC HQ BIC logLik X2 df p
## modelo_rasch 2322.28 2323.712 2336.962 2358.561 -1150.14
## modelo_2PL 2312.76 2315.365 2339.456 2378.727 -1136.38 27.519 9 0.001
fscores().
thetas_2PL <- fscores(modelo_2PL)
head(thetas_2PL)
## F1
## [1,] 0.7766043
## [2,] 1.1459394
## [3,] -1.5175164
## [4,] 0.7246391
## [5,] -1.2418261
## [6,] -0.9956099
hist(thetas_2PL, main = "2PL: Distribuição das habilidades")
Neste relatório foi apresentada uma introdução à Teoria de Resposta
ao Item por meio da simulação de dados e do ajuste de modelos utilizando
o pacote mirt no R. Foram estimados os modelos de Rasch e
2PL, analisando-se os parâmetros dos itens, as curvas características,
as funções de informação e a distribuição das habilidades estimadas.
A comparação entre os modelos indicou que o modelo 2PL apresentou melhora no ajuste em relação ao modelo de Rasch. O teste de razão de verossimilhança apontou diferença estatisticamente significativa entre os modelos \(\chi^2 = 27.519\), \(df = 9\), \(p = 0.001\), indicando que permitir diferentes níveis de discriminação entre os itens contribui para uma representação mais adequada dos dados. Esse resultado é consistente com o processo de geração dos dados, uma vez que os itens foram simulados a partir de um modelo de dois parâmetros.