Test and Item Analysis via Shiny

Interactive shiny application for analysis of educational tests and their items.

Test and item analysis via shiny.

GHversion online version cranlogs


ShinyItemAnalysis is an interactive shiny application for analysis of educational tests and their items including

  • exploration of total and standard scores,
  • item and distractor analysis,
  • item analysis via logistic regression models and their extensions,
  • item analysis via IRT models,
  • DIF and DDF detection methods. It also offers some training data sets but you can also upload your own data. Moreover it is also possible to generate reports.

ShinyItemAnalysis is available online and can be also downloaded from CRAN.


# The easiest way to get ShinyItemAnalysis is to install from CRAN:

# Or you can get the newest development version from GitHub:
# install.packages("devtools")


Current version available on CRAN is 1.2.3. Version available online is 1.2.3. The newest development version available on GitHub is 1.2.3.


It's very easy to run ShinyItemAnalysis:

rm(list = ls())

You can also try it online!

Getting help

If you find any bug or just need help with ShinyItemAnalysis you can leave your message as an issue here or directly contact us at [email protected]


This program is free software and you can redistribute it and or modify it under the terms of the GNU GPL 3.


For czech speakers new paper is available online!


    *                                                             *
    *  Changes and Developments in the ShinyItemAnalysis Package  *
    *                                                             *

  • Changes in ShinyItemAnalysis 1.2.3 (2017-08-22) -



o Report's customized options were extended. Reports now include also dynamic description. o Author and dataset name can be now filled and add into reports. o Dataset 'difMedical' was renamed to 'MSAT-B' according to 'difNLR' package. Its description was mildly updated. o Purification options were added into 'Nonlinear IRT Z' and 'DDF' subsections of 'DIF/Fairness' sections. o Purification options was added 'DDF' analysis in 'Reports' section when customized setting is selected.


o Size of plots and font in plots was changed for reports. o Plots in HTML report are now centered. o Wording of reports' default option was updated. o References were updated in 'Reference' section and also in README file. o Wording of Spearman test in 'Validity' section was mildly updated.

  • Changes in ShinyItemAnalysis 1.2.2 (2017-07-26) -


o Design of reports was edited. o Several bugs were fixed: - Bug when creating report for uploaded data was fixed. - Bug when creating report for data without predictive criterion or DIF group was fixed. o ShinyItemAnalysis now uses 'plotly' package!


o Design and options of 'Report' page were updated. o Layout of IRT curves training page was mildly changed. There are now two curves in each plot. Also text area input was added and synchro- nized with sliders. Colour of sliders now correspond to colour of curve.

  • Changes in ShinyItemAnalysis 1.2.1 (2017-07-16) -


o Several bugs were fixed: - Interpretation of regression models was fixed. - Interpretation of text about correlation in Predictive validity was fixed. o ShinyItemAnalysis now used also 'data.table' package. o Data page was divided into two subpages to avoid long rendering of tables. when changing datasets. o Function 'gDiscrim' to calculate generalized discrimination was implemented. o Function 'DDplot' was edited to be able to handle generalized discrimination. Double slider was added into 'Traditional analysis page'. o Traditional analysis table was extended by adding column with generalized discrimination. This is done also in reports. o Some pages has now their own source code files: - 'Summary' - Summary.R - 'Validity'- Validity.R - 'Traditional analysis' - TraditionalAnalysis.R - 'Regression' - Regression.R - 'IRT models' - IRT.R - 'DIF/Fairness' - DIF.IRT


o Last three rows in regression comparison table are now bold. o Reference list was extended. o The subpage 'Distractors' of 'Item analysis' page was mildly edited. o Generalized DD plot was removed from 'Distractor' subpage. It is now available on 'Traditional item analysis' subpage. o Item patterns frequency plot is now made with 'ggplot2' package. o Names of downloaded plots were customized and their resolution was increased and size of text was descreased in some pages: - Summary - Validity - Item analysis - Regression

  • Changes in ShinyItemAnalysis 1.2.0 (2017-06-15) -



o ShinyItemAnalysis can now handle missing values. Newly there is an option to handle NA values as zeros in scored data. o Bug in WrightMap was fixed. o We have new contributor - Lubomir Stepanek! o New online mirrors were added. o Busy indicator and tooltips were added. o Structure of application was mildy updated. o Datasets 'dataMedical()', 'dataMedicalkey()', 'dataMedicaltest()' were updated. Group variable and criterion variable were added. o The newest versions of some packages are now required ('difNLR v 1.0.2', 'difR v 4.7', 'ggplot2 v 2.2.1', 'mirt v 1.24', 'shiny 1.0.3' and 'shinyjs v 0.9').

  • DIF/Fairness o Option of item purification was added into some DIF detection methods - Delta plot method, Mantel-Haneszel, Logistic regression with total score, Lord's test and Raju's test. o Default option of p-values adjustments in DIF detection methods was set to 'none'. o Bugs in DIF Logistic IRT Z and DIF Nonlinear IRT Z tables of parameters were fixed.
  • IRT models o IRT models are now fitted only by mirt package. o Training plots of item characteristic and information curves were added into IRT models section. o Pearson's correlation coefficient between factor scores and standardized total score was added for Bock's nominal IRT model.
  • Reports o New options for reports were added. By default no IRT models and no graphs of correlation structure are fitted. o Reports are now described in detail. o The settings of reports are now also offered in Report section. o Generation of reports is now done part by part. Once it is finished, the download button is offered. o Message boxs with warning for generation and download of reports were added.
  • Validity analysis: o Validity analysis of predictive outcome is now included on Validity page in Predictive validity section. o Now it is possible to upload predictive outcome. o Dataset 'GMAT' and 'GMATtest' from 'difNLR' package include now criterion variable which can be used in Predictive validity section. o Functions 'DistractorAnalysis()' and 'plotDistractorAnalysis()' were extended by 'matching' argument.
  • Item analysis o Barplot of answer selection proportion was added into Distractor subsection. o Diagram of custom discrimination - new version of DD plot - was added into Distractor subsection.


o CITATION file was added. o Maximum upload size was set to 30MB. o Item names were fixed and unified. o Some typos were fixed. o Readme file was updated. o Reports design was slightly updated. o Code was slightly updated to correspond to new versions of packages difNLR, mirt and ggplot2. o Selected code was updated. o Package dependencies were updated (packages 'knitr' and 'xtable' are now used in report generation). o Minor bug in DIF IRT (Lord and Raju) plots and downloads was fixed. o Designs of footer and navigation bar were updated. o The version for small media was designed. o Weblink for version 1.1.0 was created. o Reference list was expanded and links to online versions of articles were added.

  • Changes in ShinyItemAnalysis 1.1.0 (2016-02-02) -



o New overall appearence using shinythemes package. o New datasets 'dataMedical()', 'dataMedicalkey()', 'dataMedicaltest()' were added into the package. o New dataset is offered in example datasets inside the shiny app. o Bug in Distractor plots for uploaded data was fixed. o Calculation of Success Rate in Standard Scores was fixed. o Differential Distractor Functioning detection method was added. o Syntax of difNLR functions was edited to response to new version of package. o Function plotDIFirt() was updated. o Correlation structure section was added including correlation plot and scree plot. o Pages structure was changed and updated. o IRT models are now fitted by mirt package. o Subsection IRT model selection was added into IRT models section. o Wrigh maps were added for Rasch and 1PL IRT model. o Bug in data upload was fixed. o Subsection regression model selection was added into Regression section.


o Typos were fixed. o Selected R code was updated. o Description of data including uploading own data set was extended. o Description of Standard scores was added. o Lower panel was updated. o Rasch model was added into IRT models section. o Pearson correlation coefficient of factor scores and Z-scores were added for IRT models o Reference list was expanded. o Bug in multinomial regression for scored data was fixed. o Bug in DDF for datasets withou DIF items was fixed. o Selected code was updated.

  • Changes in ShinyItemAnalysis 1.0.0 (2016-11-25) -



o New graphical representation via ggplot2 package o Cronbach's alpha was added o Distractor analysis was extended o More DIF detection methods were added Mantel-Haenszel test, Logistic regression, Lord's and Raju's statistic for IRT models all are now used via difR package o Delta plots were extended: fixed and normal threshold are now allowed o Multiple comparison correction methods were added into DIF detection procedures o More examples of datasets were added from difNLR package o References were added o New functions were added into the package: - 'DDplot()' function for graphical representation of difficulties and discriminations. - 'DistractorAnalysis()' function and its graphical representation 'plotDistractorAnalysis()'. - 'plotDIFirt()' and 'plotDIFLogistic()' functions for plotting characteristic curves based on IRT models and based on logistic regression.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


1.2.7 by Patricia Martinkova, a month ago

Report a bug at https://github.com/patriciamar/ShinyItemAnalysis/issues

Browse source code at https://github.com/cran/ShinyItemAnalysis

Authors: Patricia Martinkova [aut, cre], Adela Drabinova [aut], Ondrej Leder [aut], Jakub Houdek [aut], Lubomir Stepanek [ctb]

Documentation:   PDF Manual  

Task views: Psychometric Models and Methods

GPL-3 license

Imports corrplot, CTT, data.table, deltaPlotR, DT, difNLR, difR, ggplot2, grid, gridExtra, knitr, latticeExtra, ltm, mirt, moments, msm, nnet, plotly, psych, psychometric, reshape2, rmarkdown, shiny, shinyBS, shinyjs, stringr, WrightMap, xtable

See at CRAN