knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) library(magrittr)
Para carregar o pacote basta utilizar o comando:
library(avaliaR)
Para a preparação dos dados precisamos conhecer a estrutura da prova. As funcionalidades atuais permitem que, por exemplo, os cadernos tenham tamanhos distintos. Ou seja, não necessariamente o caderno 1 tem que ter a mesma quantidade e os mesmos tipos de itens do que o caderno 2. Em algumas avaliações, como por exemplo no PISA, os cadernos possuem quantidade de itens diferentes.
Para fins de ilustração, vamos considerar uma avaliação que segue um planejamento em blocos de tal forma que temos 3 blocos independente de itens cada qual com 12 itens. Então, nesse processo avaliativo temos, ao todo, 36 itens. Esses blocos são distribuídos em 3 cadernos seguindo a seguinte disposição:
cadernos <- data.frame("Sequêncial" = 1:3, "Caderno" = LETTERS[1:3], "Parte 1" = paste0('Bloco: ', c(1,2,3)), "Parte 2" = paste0('Bloco: ', c(2,3,1)), "Parte 3" = paste0('Bloco: ', c(3,1,2))) knitr::kable(cadernos, align = c('c', 'c', 'c', 'c', 'c'), caption = 'Distribuição dos Blocos nos Cadernos de Prova')
Essa é uma avaliação em que todos os cadernos possuem exatamente a mesma quantidade de itens. Assim, a disposição dos itens pelos cadernos de provas fica como se segue:
itens <- matrix(c(1:36, c(13:36,1:12), c(25:36,1:24)), byrow = T, nrow = 3) %>% data.frame %>% set_colnames(x = . , value = paste0('P', 1:36)) itens <- cbind.data.frame("Seq." = 1:3, "Cad." = LETTERS[1:3], itens, stringsAsFactors = FALSE) knitr::kable(itens, align = 'c', caption = 'Distribuição dos itens nos Cadernos de Prova')
Antes de iniciarmos os procedimentos de análises devemos, primeiramente,
informar como se dá a distribuição de itens nos cadernos de prova. Para
isso, iremos utilizar a função gera_itens_caderno
. Esta função
permite a entrada de cadernos de tamanho diferentes. Cada caderno deve
ser um vetor com o sequencial dos itens que o compõem.
itcaderno <- gera_itens_caderno(1:36, c(13:36,1:12), c(25:36,1:24)) itcaderno
A partir da criação do objeto itcaderno
através da função gera_itens_caderno
podemos dar sequência na criação da estrutura da prova propriamente dita. Vamos
utilizar o objeto gabpar05P
que contem informações sobre o item como
it (sequencial único do item), o bloco (bl), a ordem no bloco (ob),
código do item (codigo), gabarito (gab), sequencial do item no BilogMg (itemblg),
nome do item no BilogMg (nomeblg) e, parâmetros estimados do item (a, b, c).
O objeto gabpar05P
é referente à uma prova de Língua Portuguesa.
data("gabpar05P")
knitr::kable(gabpar05P[1:10,], row.names = F, digits = 5, align = c('c', 'c', 'c', 'l', 'c', 'r', 'l', 'r', 'r', 'r'), caption = 'Informação dos itens 10 primeiros itens da prova')
A função estrutura_prova
faz uso de alguns argumentos, todos obrigatórios.
A seguir, uma descrição de cada um dos parâmetros usados na função.
itens_caderno
deve ser o objeto resultante da função gera_itens_caderno
.coditem
vetor de caracteres com os códigos dos itens.respostas
lista das possíveis respostas em cada um dos itens. Para uma questão
de múltipla escolha com cinco alternativas e com possibilidade de resposta inválida ('*'),
e em branco ('.'), o elemento da lista deveria ser: c(LETTER[1:5],'*','.')
.tipo_item
um vetor onde cada elemento deve indicar o tipo de item 'dicotomico'
ou
'politomico'
. O tamanho desse vetor deve ser a quantidade de itens da prova.pontuacao
lista com a pontuação que deve ser dada para cada item. Essa pontuação
será utilizada para o cálculo do escore de cada participante. c(0, 1)
ou c(1,0)
. A ordem não importa.respostas
e todos os elementos para o item em respostas
devem possuir
pontuação. Por exemplo, para uma situação em que A e B são a pontuação máxima (2),
C (1) e D(0). Se elemento da lista de respostas
desse item for
c('A', 'B', 'C', 'D')
, então, o elemento de pontuacao
para esse mesmo item
será: c(2, 2, 1, 0)
. A ordem nesse caso importa então se fosse:
c('D', 'C', 'B', 'A')
entao deveria ser c(0, 1, 2, 2)
.gabarito
vetor do tamanho da quantidade de itens onde para cada item dicotômico
deve existir um gabarito definido. No caso de item politômico, o elemento do vetor
deve ser definido como NA
.nit
número de itens na prova. Usado para checar a consistência das informações
anteriormente fornecidas.Assim, para o caso da prova de Língua Portuguesa de 36 itens a função
estrutura_prova
deve ser utilizada como apresentado:
str_prova <- estrutura_prova( itens_caderno = itcaderno, coditem = gabpar05P$codigo, respostas = rep(list(c(LETTERS[1:5], '*', ' ')), 36), tipo_item = rep('dicotomico', 36), pontuacao = rep(list(c(0,1)), 36), gabarito = gabpar05P$gab, nit = 36)
O resultado é um objeto da classe estrutura_prova
que tem seu próprio método
de impressão.
print(str_prova, len = 1)
O objeto str_prova
gerado é, na realidade, uma lista com dois
elementos itens_caderno
e info_item
que é uma lista com nit = 36
itens. Dentro de info_item
temos uma lista com os elementos:
coditem
vetor com 1 posição contendo o código do item tipo_item
vetor com 1 posição contendo o tipo de item ('dicotomico'
ou 'politomico'
)gabarito
data.frame contendo o número de linhas igual ao vetor de respostas possíveis e as
colunas de pontuação e codificação.posicao
data.frame com as colunas cad
e pos
. O número de linhas igual à
quantidade de cadernos em que o item aparece. cad
identifica o sequencial do caderno
e pos
a posição do item no caderno de provas.str_prova$info_item$it001
Para o cálculo dos escores dos participantes, utilizaremos a função escore
.
Agora, precisaremos dos dados das respostas dos alunos. Junto ao pacote existe
um objeto quest_dados
este é um objeto com contem resposta à prova e questionário,
bem como proficiências e informações sócio-econômicas de alunos em
avaliações de Língua Portuguesa, Matemática, Ciências da Natureza e Ciências
Humanas.
data("quest_dados") dados05P <- quest_dados[!is.na(quest_dados$cad_por), c('codesc', 'turma', 'id', 'cad_por', 'rsp_por', 'profi_por')]
dados05P %>% head %>% knitr::kable(, digits = 1, row.names = F, caption = 'Primeiras 5 linhas do conjunto de dados')
A função escore
necessida dos parâmetros:
respostas
vetor de caracteres com as respostas dos alunos em cada um dos itens da prova.
caderno
vetor com o número do caderno que o aluno respondeu
estrutura_prova
objeto resultante da função estrutura_prova
.
nao_apres
caracter de tamanho 1 que contém o código para o item não apresentado, ex.: '9'
.
escore05P <- avaliaR::escore(respostas = dados05P$rsp_por, caderno = dados05P$cad_por, estrutura_prova = str_prova, nao_apres = '9')
escore05P %>% head %>% knitr::kable(, digits = 1, row.names = F, caption = 'Primeiras 5 linhas do escore')
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.