Coder Social home page Coder Social logo

gadenbuie / mctestanalysis Goto Github PK

View Code? Open in Web Editor NEW
7.0 5.0 2.0 278 KB

๐Ÿ“š Apps and reports for multiple-choice test analysis in R with Shiny

Home Page: https://gadenbuie.github.io/mctestanalysis/

License: GNU General Public License v3.0

R 53.70% TeX 1.10% CSS 45.20%
r shiny shiny-apps rmarkdown multiple-choice-tests classical-test-theory item-response-theory item-analysis

mctestanalysis's Introduction

MC Test Analysis

This R package provides a nice set of interfaces via Shiny for the analysis and review of multiple choice tests. View full package documentation at https://gadenbuie.github.io/mctestanalysis/.

Try Online

You can try out the Shiny web interface online at https://gadenbuie.shinyapps.io/mctestanalysis/, which demonstrates the test results explorer interface but cannot produce the PDF or HTML reports. For the complete features, you can install the package and use the interface locally (without have to upload your data) by following the instructions below.

Table of contents

Required Software

You need to download and install the latest version of the following software. If you already have recent versions of R, RStudio and LaTeX (optional) installed, you can skip ahead to the section on installing the MCTestAnalysis library.

R

Using the MCTestAnalysis package does not require any R programming. If you are interested in learning to program in R, RStudio have collated some excellent resources for Learning R Programming on their webpage.

To install:

  • http://cran.r-project.org

  • Click the "Download R for ..." link for your OS (Linux, Mac, Windows)

  • Click the link for the base distribution. This package was built and tested on R 3.3.2, although both this package and R may have been updated.

RStudio

RStudio is an IDE (an application that supports the development and use of a language) for R. The MCTestAnalysis package is best used from within RStudio, but the user only needs to be able to find the Console window to run the few commands described below.

For a quick introduction and reference for the RStudio IDE, RStudio publishes an up-to-date RStudio cheatsheet. The RStudio Essentials Webinar Series is also a good place to start learning about the RStudio IDE.

To install:

LaTeX

LaTeX is required in order to create PDF reports. The package will fall back on HTML reports if pdflatex is not installed. The HTML version of the report works well on screens but does not print nicely.

If you'd like to output the report as well-behaved, nicely-printing PDF, a LaTeX distribution is required.

To install:

  • Windows (MiKTeX)

  • Mac OS X (MacTeX)

  • Ubuntu (texlive)

    • Install texlive via the package manager or on the command line with sudo apt-get install texlive-core.
    • Also install fonts and extra things with sudo apt-get install texlive-fonts-recommended texlive-latex-recommended.
    • Or alternatively install the full texlive package with sudo apt-get install texlive-latex-extra.

Installation

Mac/Linux

On Mac OS X or Unix-based systems, install this package by running the following commands inside RStudio or the R command line:

install.packages("devtools")
devtools::install_github("gadenbuie/mctestanalysis")

Windows

On Windows, the current version of devtools doesn't correctly install all package dependencies, so they need to be installed manually before installing the MCTestAnalysis package.

Copy and paste the following command into the RStudio console or the R command line to install the MCTestAnalysis package dependencies.

install.packages(c("devtools", "dplyr", "ggplot2", "shiny", "miniUI",
                   "ltm", "psych", "psychometric", "reshape2", "tibble",
                   "DT", "rmarkdown", "backports", "pander", "gridExtra",
                   "survival"))

Then run the following to complete the installation of the MCTestAnalysis package.

devtools::install_github("gadenbuie/mctestanalysis")

Usage

Open RStudio or R on the command line or GUI and run the following commands:

library(MCTestAnalysis)

# Launch test exploration interface
explore()

# Create a test analysis report
report()

When running explore() a browser window will open with the MC Test Analysis exploration application. The report() function will launch a window within RStudio to guide the user through the creation of a PDF report.

Data format

This package requires both an Answer Key and a table of student responses. An example of each table is provided, in the preferred format, in the inst/extdata folder of this repo, or from links on the "Import" tab of the explore() or report() interfaces.

A detailed overview of the required data format is available at http://www.eng.usf.edu/~kaw/MCTestAnalysis/MCTestAnalysis_input.pdf. Additional example test results and answer key CSV files are also available.

mctestanalysis's People

Contributors

gadenbuie avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

mctestanalysis's Issues

Desktop version

Same problem of no pdf report

utput_format(out_fmt) :
pdflatex not found, defaulting to HTML output.
Install MiKTeX (Windows), MacTeX (Mac), or texlive (Linux) for PDF support.
Warning in matrix(unlist(drop.item), ncol = 10, byrow = TRUE) :
data length [16] is not a sub-multiple or multiple of the number of columns [10]
Warning in matrix(unlist(drop.item), ncol = 10, byrow = TRUE) :
data length [16] is not a sub-multiple or multiple of the number of columns [10]
Warning: Removed 2 rows containing missing values (geom_bar).
Quitting from lines 132-133 (mct-report.Rmd)

Add support for letter test options

The options for loading data target users who are using numbers to indicate options, rather than letters.

Using letters seems like a reasonable use case and should be supported:

  • Sort options in plots, etc. alphabetically
  • Allow user to pick a letter or enter a character for the "blank" or "missing" indicator

Individual ICC plots missing

When ICC curves are reported individually rather than groups, printed PDF is missing plots for item numbers >18.

Quitting from lines 397-442 (mct-report.Rmd)

The report generation is quitting due to figure margins being too large. In Explore mode, I'm not having issue seeing any of the figures, and the figures are populating in folders in my directory. This has been an issue for item banks that have exactly 59 or 60 items, but never for banks that are smaller or even much larger (e.g., 200 items). It is happening only for one subdomain of my exam - when I run the entire exam, there is no issue with the report, but when I submit only the 60 items from one domain, the report does not generate. There are 6 exams with identical numbers of items, and the same issue appears with the same subdomain with each exam (always the one with 59 or 60 items).

Error is "Quitting from lines 397-442 (mct-report.Rmd)"

Concept group alpha estimate unclear

When MCTest estimates alpha for a concept group as part of an overall exam, the value is much lower than when I submit just the concept group to an analysis. Is the overall test alpha somehow informing the value for the subgroup?

Also, could there be an option for handling missing data? As is, missing values are imputed as 0 (incorrect) which requires filtering before submitting the data for analysis. Without listwise deletion prior to analysis, large number of missing values (for, say, practice tests) result in heavily-biased parameter estimates

Create example test data that "works" everywhere in Repo

The current example test and answer data provided in extdata with the package is referenced in several places and is used to provide an example of the test and answer key formats.

But the data was not designed to be used within the MCTestAnalysis functions. It's a fairly straight-foward use case and expectation that the data would work as an example in places like explore(), so better example data should be produced to be used throughout.

Report upgrades and tweaks

  • Add summarizeCTT(mctd, 'item') to the report
  • Remove titles from Discrimination Index plots already in y-axis
  • Item text for overall vs question plots
  • Add table and reference for Versatile criteria
  • Add ICC curves for all questions as well as concepts (as a choice in report())
  • Add text for Tetrachoric plot
  • Spelling error in Scree plot section: *analyst
  • Move distractor analysis to subtopic of Classic Test Theory
  • Change "Factor Analysis" to "Introductory Factor Analysis"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.