This vignette demonstrates how to use conquestr to integrate ‘ACER ConQuest’ item analysis output into a markdown-based analysis and reporting workflow. In the examples provided we also illustrate how conquestr can support the analyst to visualise and communicate ‘ACER ConQuest’ test and item analysis in a user-friendly way through various functions for producing conditioanlly formatted tables of statistics that are germane to psychometric analysis.
The basic approach involves using conquestr to read in and
process the itanal
objects stored in an ‘ACER ConQuest’
system file. This workflow can be used when an ‘ACER ConQuest’ analysis
is performed outside of the R environment to produce a system file. It
is also easy to extend this workflow to perform end-to-end analysis and
reporting by calling ‘ACER ConQuest’ from with conquestr to
produce the relevant system file (see the function
ConQuestCall
).
To keep this illustration relatively simple, a short test consisting of 12 multiple-choice items is analysed with a unidimensional Rasch model using Marginal Maximum Likelihood estimation.
conquestr has a built in system file that we will use for this example.
The function getCqItanal
will return a list of lists,
each list relating to one generalised item from an ‘ACER ConQuest’
itanal
output. The list for each item contains the
following information: (1) the item name according to the item label,
(2) a table of item category statistics for the item, and (3) the
item-total and item-rest correlations for the item.
Note that you must use matrixout
in your ‘ACER ConQuest’
call to itanal
to ensure that these objects are available
in the system file from your analysis.
# get default sys file
<- ConQuestSys()
myEx1Sys #> no system file provided, loading the example system file instead
# get itanal lists
<- getCqItanal(myEx1Sys)
myEx1Sys_itanal
# show unformatted list objects for first item
print(myEx1Sys_itanal[[1]])
#> $name
#> [1] "item:1 (item one)"
#>
#> $table
#> Category Score Count Percent Pt Bis Ability mean (D1) Ability SD (D1)
#> 1 M 0 6 0.6006006 -0.10716121 -0.9039020 0.9999724
#> 2 a 1 644 64.4644645 0.45520912 0.3807850 0.8253835
#> 3 b 0 23 2.3023023 -0.08463114 -0.4970245 0.8507422
#> 4 c 0 47 4.7047047 -0.19873699 -0.8487301 0.8615217
#> 5 d 0 104 10.4104104 -0.23879800 -0.6663719 0.8353948
#> 6 e 0 175 17.5175175 -0.21543829 -0.5583111 0.8250798
#>
#> $item_rest_total
#> item-total item-rest
#> 0.6059588 0.4552091
Following the item-specific list objects, the last element of the
list returned by getCqItanal
contains summary statistics
for the full set of items. The summary statistics include raw and latent
score distribution statistics and Cronbach’s coefficient \(\alpha\).
So far, we have shown how to access the test and item analysis statistics that are available through the itanal command in ‘ACER ConQuest’ and we have shown these without any formatting. One of the many benefits of integrating ‘ACER ConQuest’ output into a markdown document is to permit automated conditional formatting of item analysis output. In this section we show how this conditional formatting can be set up.
Pre-specifying criteria for conditionally formatting item analysis output is a key step in an automated workflow. Any number of metrics from the item analysis can be specified for conditional formatting. Several of these can be passed to conquestr functions as will be illustrated in the following sections.
# set statistical criteria for conditional formatting
<- 85 # highlight if facility is GREATER than this value
easyFlag <- 15 # highlight if facility is LESS than this value
hardFlag <- 0.2 # highlight if item-rest r is LESS than this value
irestFlag <- 1.2 # highlight if weighted MNSQ is GREATER than this value
underfitFlag <- 0.8 # highlight if weighted MNSQ is LESS than this value
overfitFlag <- 0.0 # highlight if non-key ptBis r is MORE than this value ptBisFlag
The function fmtCqItanal
will return a formated version
of the itanal object that we read in earlier. Presently this function
will apply coloured text to any distractor point biserial correlation
that is larger than 0. The following example shows the output for the
fourth item in the current item analysis.
# return a conditionally formatted item category statistics table for the fourth item
<- fmtCqItanal(myEx1Sys_itanal, ptBisFlag = ptBisFlag, textColHighlight = "red")
myEx1Sys_itanal_f
# print table
4]]$table myEx1Sys_itanal_f[[
Category | Score | Count | Percent | Pt Bis | Ability mean (D1) | Ability SD (D1) |
---|---|---|---|---|---|---|
M | 0 | 3 | 0.30 | -0.07 | -0.50 | 1.69 |
a | 0 | 151 | 15.12 | 0.06 | -0.10 | 0.85 |
b | 0 | 73 | 7.31 | -0.2 | -0.71 | 0.75 |
c | 0 | 224 | 22.42 | -0.32 | -0.57 | 0.85 |
d | 1 | 548 | 54.85 | 0.34 | 0.39 | 0.87 |
# print summary
length(myEx1Sys_itanal_f)]] # the last object is always the summary myEx1Sys_itanal_f[[
Statistic | Value |
---|---|
Percent Missing | 0.09 |
N | 1000.00 |
Mean | 8.43 |
SD | 2.42 |
Variance | 5.84 |
Skew | -0.62 |
Kurtosis | -0.12 |
Standard error of mean | 0.08 |
Standard error of measurement | 1.43 |
Alpha | 0.65 |
This short vignette has illustrated how to access and display itanal output from an ‘ACER ConQuest’ analysis using conquestr. Future vignettes will demonstrate basic and advanced plotting and the production of publication quality item analysis technical reports.