Interactive shiny application for analysis of educational tests and their items.
Test and item analysis via shiny
It offers some training data sets but you can also upload your own data. Moreover it is also possible to generate reports.
# The easiest way to get ShinyItemAnalysis is to install from CRAN: install.packages("ShinyItemAnalysis") # Or you can get the newest development version from GitHub: # install.packages("devtools") devtools::install_github("patriciamar/ShinyItemAnalysis")
It's very easy to run
library(ShinyItemAnalysis) rm(list = ls()) startShinyItemAnalysis()
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]. We warmly encourage you to provide your feedback using Google form.
This program is free software and you can redistribute it and or modify it under the terms of the GNU GPL 3.
*************************************************************** * * * Changes and Developments in the ShinyItemAnalysis Package * * * ***************************************************************
** This is CRAN version, it includes version 1.2.9.-1.-3. **
Besides, following updates are included:
MINOR UPDATES o Reference to a new paper on ShinyItemAnalysis in The R journal was added.
BUG FIXING o Histograms for total scores now handle cut-scores out of range of observed values o Bug in reports when using delta plot with purification was fixed. o Cut-scores for histograms are properly displayed in reports. o Year in reports was updated.
MAJOR UPDATES o Sections About, References and Settings are displayed only with icon and are right-aligned. o Margins and padding were updated. o t-test was added for comparison of total scores between groups into DIF section and into reports. o Histograms for total scores are now displayed in plotly mode.
MINOR UPDATES o Some math mode was fixed in IRT section. o Some typos were fixed. o Selected R code was updated in DIF/Total scores. o Animate function for sliders was slowed down.
BUG FIXING o Generalized ULI index is now correctly displayed in traditional item analysis table in reports. o Item names are now correctly displayed in reports. o Item names are now correctly displayed in DDF section. o Function plotDIFLogistic() now handles user-specified matching criterion.
MINOR UPDATES o Legend of DDplot was modified.
MINOR UPDATES o Wording in PDF/HTML reports was edited.
BUG FIXING o IRT/Training/Dichotomous models - plots are correctly plotted. o Download buttons in IRT/4PL works now.
MAJOR UPDATES o TIF were converted into plotly. o Section Validity/FA is not accessible for now.
MINOR UPDATES o Selected R code for IRT/Bock's model was updated. o Wording in IRT models was updated. o Wording in Reports was updated. o Legend for plots of IRT models was modified in Reports. o Ability estimates summary table is now round in Reports. o Some typos were fixed in Reports. o Colours of IRT summary plots correspond to model for Items.
MAJOR UPDATES o IRT section of shiny app was updated and now provides new and more shiny figures in plotly o PDF and HTML reports were updated and now allow - different types of correlation in corrplots - different types of discrimination indices in DDplots - summary table for ability estimates in IRT section
BUG FIXING o Dendrogram is now correctly rendered.
MAJOR UPDATES o Function ItemAnalysis() was added. o IRT section now allows download of ability estimates
MINOR UPDATES o Help pages for functions were updated.
BUG FIXING o Key for ordinal data for binarization is now correctly used. Values greater or equal to value of the key are set to 1. o When NULL data is uploaded, default dataset GMAT is in use.
MAJOR UPDATES o Scree plot was moved into the new tab 'Factor analysis'. o Dendrogram was added into 'Correlation structure' tab. o Option for global cut-score for ordinal data was added. o R package ggdendro is now used. o Removal of items with only 0s or 1s now works. o Removal of observation with NA group now works.
MINOR UPDATES o Text in Data section was updated. o List of references was updated. o Selected R code in 'Correlation structure' tab was updated.
BUG FIXING o Bug in IRT models/Training/Dichotomous models text of theta in plotly was fixed.
MAJOR UPDATES o Reorganization of data upload and renaming data variables. test_answers() -> nominal() correct_answers() -> binary() scored_test() -> total_score() test_key() -> key() DIF_groups() -> group() criterion_variable -> criterion()
And creating new variables: ordinal() - ordinal data maximal() - maximal values for ordinal data minimal() - minimal values for ordinal data z_score() - standardized total score, no need to use scale(total_score()) in each function
MINOR UPDATES o Updating text in Data section. o Editing boxes for data upload in Data section.
BUG FIXING o Bug in Regression/Nonlinear 4P IRT Z (rounding in interpretation) was fixed. o Bug in IRT models/Training/Dichotomous models text of theta in plotly was fixed. o Bug in IRT models/Training in plotly a ModeBar was fixed.
MAJOR UPDATES o Data upload now allows also ordinal data, min/max values can be specified. o Validity/Correlation structure now allows selection between Pearson/Spearman/Polychoric correlation, Polychoric is default for binary data o DDplot now allows also ordinal items and offers different types of discrimination indices to be displayed o Download of tables (as .csv files) is now provided for standard scores, correlation matrix, traditional item analysis, and for parameter estimates in IRT models.
MINOR UPDATES o Data upload now better points to "Upload data" button. o Precision was re-set for IRT models/Training tab. Now = 0.1.
MAJOR UPDATES o gDiscrim() function has been extended to calculate Upper-Lower Index (ULI) also for ordinal items
BUG FIXING o Bug in IRT dichotomous models comparison is fixed. (Reported by Jean-Luc Kop) o Bug in IRT dichotomous models (3PL and 4PL) was fixed. Tables of parameters are rendered even in case that EM cycles terminated without convergence. In such a case SD of parameters are set to NA. o Bug in plotDIFLogistic() function was fixed. Function now returns also item.name argument. o Bug in plotDIFirt() function was fixed. Function now returns also item.name argument.
MAJOR UPDATES o Global setting for figure downloads was created. This can be changed in Setting section.
** This is CRAN version, it includes version 1.2.7.-1.-7. **
MAJOR UPDATES o Section Reliability was added. - Split-half methods including also Revelle's beta were added - Cronbach's alpha method with CI was moved to section Reliability. - Spearman-Brown formula was added. o New function ggWrightMap replaced wrightMap from WrightMap package. o Section IRT models - Selected R code for Rasch and 1PL models was updated.
MINOR UPDATES o Reference list was updated.
MAJOR UPDATES o Section DIF/Fairness - Subsection Logistic IRT Z is deprecated. - Subsection Nonlinear IRT Z is now called Generalized logistic. - Subsection Generalized logistic includes now wide range of models and different specification of DIF type. - Subsection SIBTEST was added, including SIBTEST method and Crossing-SIBTEST method.
MINOR UPDATES o Reference list was updated.
MINOR UPDATES o Some wording was updated. o Selected R code was updated. o Function theme_shiny is deprecated. New function theme_app() was created and applied for all graphics, including R functions in package.
MINOR UPDATES o Paddings were adjusted. o Acknowledgments were updated.
BUG FIXING o Crashing of the app when upload no data was fixed.
MAJOR UPDATES o Data page - Design of data page was changed. - User can now specify encoding of missing values. - Basic summary was added.
MAJOR UPDATES o Phone version - collapsible menu closes when clicked
BUG FIXING o Plotly files in IRT training section are now displayed with mode bar due a bug in plotly package.
MINOR UPDATES o Some typos were fixed. o Link to google form for feedback was added into About section. o New R icon was added into footer.
** This is CRAN version, it includes version 1.2.6.-1.-12. **
MINOR UPDATES o Mirror at Charles University is no longer in use.
MAJOR UPDATES o Function 'DDplot()' - Limits for y-axis were adjusted when negative values of discrimination are detected. - Warning for negative discrimination values were added. o Reports - Some unused parts of reports were excluded.
MAJOR UPDATES o UI - Some parts were splitted from main ui.R file o IRT - Exercises in IRT training were extended. o Data - Bug in data upload was fixed. Now length of criterion variable is correctly checked.
MAJOR UPDATES o Packages - shinyBS is now required. o Data - HCI dataset was added into package. - Description of dataMedical was improved. - Description of training datasets was improved. o About - Page was improved. o IRT - Helps for interactive exercises were added.
MINOR UPDATES o Typos were fixed.
MAJOR UPDATES o IRT - Expected item scores were removed from IRT training NRM. - Interactive exercises were added into IRT training - dichotomous models.
MAJOR UPDATES o Data - Graded data od Medical data set was added. - In all dataMedical data sets the criterion variable was renamed to StudySuccess. o IRT - Expected item scores were added into polytomous models in IRT training. - Selected R code was updated in IRT training.
MINOR UPDATES o IRT section - Colors of sliders and curves in IRT training section were adjusted.
MAJOR UPDATES o Regression - NLR 4P model was added into model comparison.
MINOR UPDATES o README file was updated. Typos were fixed. o Design of figures was unified. o Download button options were unified. o Selected R code syntax was improved in some sections (IRT only partionally, DIF not). o Selected R code was improved for first 4 sections. o Some wording was improved.
o IRT section
- Wording for IRT training was added and improved.
o Selected R code syntax was improved in some sections. This can be
txt <- gsub("\n", "
", txt) txt <- gsub(" ", " ", txt) txt where txt is R code in "". o theme_shiny was created as a default theme for all figures. Now it is used only partionally.
MINOR UPDATES o README file was updated. Typos were fixed. Links were added. Hexbin was added. o References were updated.
MAJOR UPDATES o IRT section - Selected R code was added into polytomous models. - Equations were added into polytomous models. - Download buttons were added into polytomous models. - 4PL model was added. - 4PL model was added into model comparison. - Sliders in IRT training are now colored with respect to line colors. o Regression section - Section is newly organized. - NLR 4P model was added. o Reports - 4PL IRT model was added as an option. - IRT equation is generated based on selected model only. o Unnecessary files were deleted. Some cleaning of files was done.
MINOR UPDATES o IRT section - Selected R code in model comparison was updated. Typos were fixed. o Regression section - Interpretation of NLR 3P model was extended. - Syntax for NLR 3P model was improved.
MAJOR UPDATES o IRT section - IRT section is newly organized. - IRT training section was expanded by polytomous models. GRM, GPCM and NRM were added. - Syntax for IRT training was improved.
MINOR UPDATES o IRT section - Sliders steps are now 0.01 in dichotomous models.
MINOR UPDATES o Numeric inputs were removed from IRT training section. o Selected R code was extended in IRT training section by item information function plot. o References were updated. o Mirror web link was updated.
BUG FIXING o Reports with DDF but none DDF item are now correctly generated.
MINOR UPDATES o Hexbin - was added into footer. - is now as shortcut icon. o Paddings - in large devices was adjusted. - in small devices was adjusted. o Unnecessary files were deleted. o Reports - Some wording in reports was improved. - PDF report text is fully justified. - Subsections characteristic curves is not visible when none DIF or DDF item is present. - Some typos were fixed. - Some parameters were renamed. The unneecessary ones were removed.
o UI for DIF/Fairness section was updated. o References were added into About page. o New design of reports is now available. Design of PDF reports was updated. o Wording in report was improved. o DIF/Fairness section in report was improved. o New hexbin for ShinyItemAnalysis was created and added into reports. o Sample code in DIF/Fairness IRT Lord and IRT Raju was extended to 1PL, 2PL and 3PL models. o Bugs fixing - Wording in regression plots was fixed. - Examples in DIF/Fairness IRT Lord and IRT Raju were fixed. - Function 'plotDIFirt()' now can be also used for only one item.
o Reference list was updated. o CITATION file was modified. o In Summary page the description for summary table was added. The sample code was updated. o Wording in summary statistics in Summary section was improved. o Description of Session info section in reports was added.
o Correlation plots now offer reordering by hierarchical clustering. Several linkage methods are offered. This is also included in reports. o Confirmation of data upload was added. Also warnings and errors are displayed in case that something went wrong when uploading. o In IRT training - parameter theta (latent ability) is now included - the interpretation for characteristic curves is provided - horizontal and vertical lines for specified theta were added into plot for characteristic curves - selected R code was added. o In multinomial regression bug when only two choices in data are present was fixed.
o Link for Adela's website was added. o Columns for BIC and its adjusted version were swapped in table for IRT models comparison. Text above table was also updated. o In IRT section dpi of downloaded plots was set to 300. o In IRT training downloaded plots also include legend with parameters. o In all IRT models table with parameters includes all parameters a, b, c, d. o In IRT training equations were moved above interpretation.
o Reports were mildly updated. o Resolution of figures in reports was increased (now 300ppi) o Dependencies were updated. o Some typos fixed. o Legends of plots were unified and placed in better way for - 'NLR IRT Z' - 'DDF' - function 'plotDIFlogistic()' o Bug in item names for 'DDF' subsection of 'Fairness/DIF' section was fixed.
*** THIS IS A CRAN VERSION ***
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.
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.
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
*** THIS IS A CRAN VERSION ***
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').
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.
*** THIS IS A CRAN VERSION ***
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.
*** THIS IS A CRAN VERSION ***
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.