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)

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

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

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

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

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

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

- 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

- Various bug fixes

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

- Bugfix in readEQN: treat numeric parameter labels as constants

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

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

- 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

- 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")

- 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!)

- 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

- 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

- 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

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

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

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

- 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"

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

- 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

- 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

- 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)

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

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

- 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)

- 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)

- 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")

- 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)

- 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)

- 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

- 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

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

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

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

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

- 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

- 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

- 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)

- 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()