Hierarchical Multinomial Processing Tree Modeling

User-friendly analysis of hierarchical multinomial processing tree (MPT) models that are often used in cognitive psychology. Implements the latent-trait MPT approach (Klauer, 2010) and the beta-MPT approach (Smith & Batchelder, 2010) to model heterogeneity of participants. MPT models are conveniently specified by an .eqn-file as used by other MPT software and data are provided by a .csv-file or directly in R. Models are either fitted by calling JAGS or by an MPT-tailored Gibbs sampler in C++ (only for nonhierarchical and beta MPT models). Provides tests of heterogeneity and MPT-tailored summaries and plotting functions. A detailed documentation is available in Heck, Arnold, & Arnold (2018) .


TreeBUGS 1.4.3 (March 2019)

  • Thinning within C++ samplers [thanks to Marius Barth]
  • New default priors for alpha and beta in betaMPT: "dgamma(1,.1)T(1,)"

TreeBUGS 1.4.2 (January 2019)

  • License updated to GPL-3
  • Standard error for WAIC
  • Hexagon sticker added

TreeBUGS 1.4.1 (December 2018)

  • summarizeMCMC: Batchwise computation of summary statistics to reduce RAM overload
  • WAIC implemented (based on a developmental feature of JAGS)

TreeBUGS 1.3.2 (April 2018)

  • Bugfix: extendMPT() for betaMPT
  • New function to extract MCMC samples: getSamples(...)
  • Possibility to extract MCMC samples for getGroupMeans(...)

TreeBUGS 1.3.1 (February 2018)

  • Improved BayesFactorSlope(): JZS prior (=Cauchy) or g-prior(=normal)
  • Bugfixes due to uncorrelated traitMPT

TreeBUGS 1.3.0 (February 2018)

  • New option for the latent-trait MPT model: Independent Cauchy priors instead of a multivariate Wishart prior for the random-effects covariance matrix.

TreeBUGS 1.2.0 (January 2018)

  • new function BayesFactorSlope() to get Bayes factor for continuous predictors in traitMPT()
  • G^2 in PPP()
  • option to use mu instead of mean in genTraitMPT()
  • Various bugfixes

TreeBUGS 1.1.1 (August 2017)

  • Various bug fixes

TreeBUGS 1.1.0 (April 2017)

  • Functions to compute Bayes factors for simple (nonhierarchical, fixed-effects) MPT models: BayesFactorMPT() and marginalMPT()
  • Registration of C++ routines

TreeBUGS 1.0.3 (January 2017)

  • Bugfix in readEQN: treat numeric parameter labels as constants

TreeBUGS 1.0.3 (January 2017)

  • Bugfix for traitMPT in priorPredictive()
  • Optional arguments (...) for plotting functions

TreeBUGS 1.0.0 (December 2016)

  • New function correlationPosterior() to estimate the posterior for the population correlation (taking into account the number of participants)
  • Second CRAN release

TreeBUGS 0.8.2 (November 2016)

  • New function probitInverse() to get the bivariate transformation of mean and SD in probability space given a normal distribution in probit space
  • Visible function summarizeMCMC() to provide TreeBUGS-specific MCMC summaries
  • priorPredictive() allows to sample group-level parameters

TreeBUGS 0.8.1 (November 2016)

  • Zeros-trick by Smith & Batchelder (2010) for betaMPT() implemented (i.e., by using the argument alpha="zero")
  • Parameter constraints result in the same parameter labels for JAGS and C++ samplers (e.g., "b=a=f" will be labeled "b")

TreeBUGS 0.8.0 (November 2016)

  • New function withinSubjectsEQN() that replicates an MPT model multiple times with different tree, category, and parameter labels for within-subject factorial designs
  • plotFreq() uses boxplots instead of lines by default
  • Posterior-predictive p-values per participant
  • Bugfix: avoid negative "sigma" and reversed "rho" estimates in traitMPT() due to negative scaling parameters "xi"
  • Bugfix: posteriorPredictive() always sampled data for new participant (=> false T1+T2 posterior predictive checks!)

TreeBUGS 0.7.1 (November 2016)

  • New function priorPredictive() to sample data sets from the prior
  • New function plotPrior() to plot prior distributions for group mean, SD, and correlations
  • Posterior predictive samples for new participants
  • Possible to use boxplot in plotFreq()
  • Improved data-generating functions to allow for parameter restrictions
  • Package testing via 'testthat' added

TreeBUGS 0.7.0 (November 2016)

  • Possibility to define models directly in R without requiring EQN files (by providing the EQN equations in a character value)
  • New function transformedParameters() to obtain posterior samples of transformed parameters for a fitted model (both on the group and individual level)
  • Argument "transformedParameters" now accepts a path to a text file with transformations (one per line)
  • New argument "posteriorFile" to save fitted model and posterior MCMC samples in RData-file
  • Better compatibility of betaMPTcpp() results with plotting functions
  • Option to plot median or mean estimates in plotParam()
  • Increased stability of extendMPT()
  • Fixed bug in plotFreq() if input is given by a matrix/data.frame

TreeBUGS 0.6.2 (September 2016)

  • Bugfix: betweenSubjects with different number of chains
  • Added data "arnold2013" by Arnold, Bayen, Kuhlmann, and Vaterrodt (2013)
  • More examples in R help files
  • Convergence plots for simpleMPT

TreeBUGS 0.6.1 (August 2016)

  • First CRAN release
  • Fast C++ Gibbs sampler tailored standard (simple fixed-effects) MPT models (simpleMPT)
  • Adjusted summary functions to account for standard MPT models

TreeBUGS 0.6.0 (August 2016)

  • Fast C++ Gibbs sampler tailored to beta-MPT models (betaMPTcpp)

TreeBUGS 0.5.3 (July 2016)

  • Better weakly-informative priors for continuous predictors on the standardized scale

TreeBUGS 0.5.2 (July 2016)

  • New function betweenSubjectMPT() that computes between-subject comparisons (e.g., differences) of parameters from two fitted hierarchical models
  • Extended plotFit() to fit observed against posterior-predicted covariances
  • Hyperpriors matched by vector names
  • Split vignette into "Intro" and "Extended"

TreeBUGS 0.5.1 (June 2016)

  • Tests for participant/person heterogeneity implemented (Smith & Batchelder, 2008)

TreeBUGS 0.5.0 (June 2016)

  • function fitModel() that fits both trait and beta MPT (avoids duplicated code)
  • correlations of parameters are computed in R, not in JAGS anymore (increase in speed)
  • argument "covStructure" removed (all correlations computed by default)
  • save posterior predictive samples in traitMPT/betaMPT object (i.e., expected/predicted/observed frequencies)
  • to get posterior predictive p-values, use ppp=1000 (previously: M.T1=1000)
  • getParam() and getGroupMean() allow to save results in .csv-file

TreeBUGS 0.4.9 (May 2016)

  • T2 statistic implemented (posterior predictive check of covariance structure)
  • Posterior predictive checks with parallel computation using multiple cores
  • Bug fix for posterior predictive with fixed effects

TreeBUGS 0.4.8 (May 2016)

  • New function posteriorPredictive() to draw samples of individual frequencies from posterior
  • T1 statistic now computed outside of JAGS (more stable, smaller mcmc object, additional argument M.T1 to specifiy the number of posterior samples used)

TreeBUGS 0.4.7 (April 2016)

  • New function plotPriorPost() to compare prior vs. posterior densities
  • Default prior for traitMPT changed to xi="dunif(0,10)" for stability

TreeBUGS 0.4.6 (April 2016)

  • Parameter-specific hyperpriors for betaMPT (alpha and beta) and traitMPT (mu and xi)

TreeBUGS 0.4.5 (March 2016)

  • Special case of a single hierarchical parameter in traitMPT() [Wishart reduces to chi^2]
  • Allow fixed effect MPT parameters (e.g., a single guessing parameter for all participants). Specified in restrictions = list("g=FE")
  • Bayesian p-value in getGroupMeans() to test whether group mean differs from overall mean
  • Estimation of correlations of theta parameters in betaMPT (based on the MCMC samples; no explicit prior)

TreeBUGS 0.4.4 (March 2016)

  • New function extendMPT() to get additional MCMC samples for fitted traitMPT and betaMPT
  • Bug fixes if parameter appear twice in model equation (e.g., u*u)

TreeBUGS 0.4.3 (February 2016)

  • Use own summary function (functions in runjags are slow and unstable)
  • Estimation of DIC requries argument "dic=TRUE" or can be estimated afterwards by: fit$dic <- extract(fit$runjags, "dic")

TreeBUGS 0.4.2 (February 2016)

  • Using the package runjags instead of R2jags (better functionality, e.g., provides progress bar during parallel sampling; max.time for autojags)
  • Making the function summarizeMPT() visible to allow users to recompute nice MPT summaries after changing the mcmc object (e.g., after the exclusion of MCMC samples)

TreeBUGS 0.4.1 (February 2016)

  • new argument "T1group" to compute T1 statistic separately for a grouping factor (e.g., experimental condition; can be one of the predictors in traitMPT)
  • changed name of parameter estimate plotting function to "plotParam()"
  • new generic plotting function plot() for betaMPT and traitMPT (a convenient wrapper for the convergence plots in coda)

TreeBUGS 0.4.0 (February 2016)

  • Possible to sample correlations AND predictors in traitMPT (using covStructure vs. predStructure)
  • Defaults for traitMPT: No predictors ; correlations for all covariates that are not included in predStructure
  • Changed argument name "covType" to "predType" (since it is only relevant for predStructure in traitMPT)
  • New argument corProbit to specify whether to compute correlations for probability- or probit-scaled MPT parameters
  • Allow to round to specific number of digits, e.g.: summary(fittedModel, round=6)
  • New function getParam() to conveniently extract posterior estimates (e.g., posterior mean, median, sd)
  • New function getGroupMeans() to get group estimates in traitMPT with discrete predictors (for single factors or combinations)
  • Updated vignette

TreeBUGS 0.3.5 (February 2016)

  • Back to comma-separated data format for 'data.csv' and 'covData.csv'
  • Less informative Cauchy prior as default for continuous predictors in traitMPT
  • Additional argument IVprec in traitMPT to specify hyperprior for precision of continuous slope paramters
  • Data-generating function genMPT using general matrices of individual parameters
  • Parameter labels for output in fittedModel$mcmc$BUGSoutput

TreeBUGS 0.3.4 (February 2016)

  • Support for WinBUGS and OpenBUGS removed
  • New function plotFreq to plot individual and mean raw frequencies per tree

TreeBUGS 0.3.3 (February 2016)

  • autojags fixed
  • BCI and R^hat included in individual statistics
  • Better checks for input arguments for betaMPT, traitMPT

TreeBUGS 0.3.2 (January 2016)

  • csv-format for "data" and "covData": semicolon (;) instead of comma (,) to separate cells
  • Printing of summary output to "parEstFile" improved

TreeBUGS 0.3.1 (January 2016)

  • New function plotDistribution() to plot histograms of individual mean estimates

TreeBUGS 0.3.0 (January 2016)

  • Discrete factors as covariates in traitMPT with fixed and random effects (see argument: covType)
  • Improved covariate handling: irrelevant columns are neglected
  • Goodness of fit plots for mean frequencies (plotFit)
  • Removed default values for arguments that were NULL previously
  • Updated vignette
  • Various Bugfixes

TreeBUGS 0.2.3 (January 2016)

  • Predictors can be included in traitMPT (same arguments covData and covStructure as in betaMPT)
  • Nice summary for covariates in betaMPT and predictors in traitMPT
  • Checked and fixed data generation and fitting for latent trait and beta MPT model
  • Remaining issue: SD of parameters in betaMPT not precisely estimated
  • Informative error message if N=0 in a tree for a person
  • Updated vignette

TreeBUGS 0.2.2 (December 2015)

  • Covariates can be included in betaMPT (see arguments covData and covStructure)
  • Data generation for latent trait MPT model: genTraitMPT()
  • Example model files (2HTM and 2HTSM) in library path: /TreeBUGS/MPTmodels/
  • Examples for readEQN and data generation (genBetaMPT, genTraitMPT)

TreeBUGS 0.2.0 (December 2015)

  • Implementation of Beta-MPT and latent-trait MPT model: betaMPT() ; traitMPT()
  • Sample and summarize transformed parameters (e.g., "deltaD=d1-d2")
  • Posterior predictive checks (T1 statistic for group and individual data)
  • Basic summary and plotting functionality
  • Functions to generate data according to the Beta-MPT: genBetaMPT()
  • Package vignette with examples: vignette("TreeBUGS")
  • Checking EQN file for consistency (identifiability etc.): readEQN()

Reference manual

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


1.4.7 by Daniel W. Heck, a year ago


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

Authors: Daniel W. Heck [aut, cre] , Nina R. Arnold [aut, dtc] , Denis Arnold [aut] , Alexander Ly [ctb] , Marius Barth [ctb]

Documentation:   PDF Manual  

Task views: Psychometric Models and Methods

GPL-3 license

Imports Rcpp, runjags, stats, graphics, utils, grDevices, coda, parallel, rjags, MASS, hypergeo, logspline

Suggests knitr, rmarkdown, testthat, R.rsp

Linking to Rcpp, RcppArmadillo

System requirements: JAGS (http://mcmc-jags.sourceforge.net)

Imported by MPTmultiverse.

See at CRAN