# Development Tasks

This TODO list is here for mostly historical reasons. But for the addition of a model here and there for a specific research project, we are no longer actively expanding the package. We continue to welcome contributed functions, and may return to development down the road.

## Hard TODOs

- Develop coda4, an updated version of the coda library that uses S4 classes. This would generalize the mcmc object to allow it to carry other things to allow for, among other things, prior and posterior prediction. Some of the computation that is intensive should be written in C++. This should replicate and then extend the current version of coda. We should talk to Martyn Plummer about this before moving forward. --- Andrew D. Martin 2005/03/08 17:33
- Add the ability to do posterior and prior predictive simulation and checks. This should be part of the coda4 project. We might want to write some standard checks, and ability to sample from either. --- Andrew D. Martin 2005/03/09 13:25
- Allow users to define their own prior densities for various models. This is already implemented in MCMClogit() and could be extended to many additional models. --- Kevin M. Quinn 2005/02/19 22:14
- Compute log-marginal likelihoods for most models, and provide methods to perform Bayes factors. For regular models we could easily include both a Laplace appproximation and Chib's (1995) method or Chib and Jeliazkov's (2000) method. We probably don't want to do this for models like the IRT models and factor analysis models. This is operative currently in MCMCregress(). --- Andrew D. Martin 2006/01/26 13:09
- Facilities for prior elicitation. --- Kevin M. Quinn 2005/02/19 22:14
- Check on operation of MCMCmetrop1R with snow. --KQ 22:45, 19 June 2006 (CDT)

## Medium TODOs

- SUR model. --- Andrew D. Martin 2005/01/11 11:39
- Linear regression with t errors. --- Andrew D. Martin 2006/01/26 15:15
- Multivariate probit. --- Andrew D. Martin 2006/01/26 15:15
- Multiple rater model. --- Andrew D. Martin 2006/01/26 15:15
- Structural models models a la Caroll et. al. (1995). --- Andrew D. Martin 2006/01/26 15:15
- Negative binomial regression. --- Andrew D. Martin 2006/01/26 15:15
- Zero-inflated Poisson regression. --- Andrew D. Martin 2006/01/26 15:15
- Heckman selection model. --- Andrew D. Martin 2006/01/26 15:15
- Heckman probit model. --- Andrew D. Martin 2006/01/26 15:15
- Time series regression with ARMA(p,q) errors. --- Andrew D. Martin 2006/01/26 15:15
- Dynamic linear models (DLMs). --- Andrew D. Martin 2006/01/26 15:15
- Aitchison's additive logistic normal model. --- Andrew D. Martin 2006/01/26 15:15
- Additive logistic student-t model of Katz and King. --- Andrew D. Martin 2006/01/26 15:15
- Logistic regression with single random effect (and/or mixed effects). --- Andrew D. Martin] 2005/04/12 16:37
- Teaching model; normal with unknown variance (normal and inverse gamma prior). --- Andrew D. Martin] 2005/04/12 16:37
- Teaching model; j-component mixture of normals (with Dirichlet prior). --- Andrew D. Martin] 2005/04/12 16:37
- Linear regression, logit, and probit with single random effect. --- Andrew D. Martin] 2005/04/12 16:37
- SUR with multivariate-t errors. --- Andrew D. Martin 2005/03/09 13:23
- Fix ordinal data models to better handle cases when some levels have no data. --- Andrew D. Martin 2005/02/17 19:02
- Build MCMCmetrop2.R. Same idea as MCMCmetrop1R except that there will be two parameter blocks. --- Kevin M. Quinn 2005/02/19 22:14
- Put slice sampler functions in MCMCfcds.cc and allow users to choose slice sampling as an estimation option for all the GLMs. MCMCmnl is the blueprint. --- Kevin M. Quinn 2005/02/19 22:14
- Integrate the native R random uniform generators into Scythe so that MCMCpack users can make use of these generators for the sampling. This will also make it easy to allow MCMCpack users to call the Scythe non-uniform random number generators via some wrapper functions. --- Kevin M. Quinn 2005/02/19 22:21
- Add vignettes and more realistic examples. --- Kevin M. Quinn 2005/02/19 22:25
- We need to go back over the MCMCpack developer specification and make sure that it is still accurate given the current version of MCMCpack. --- Kevin M. Quinn 2005/02/21 21:35
- Profile all MCMCpack code and optimize for speed. --- Andrew D. Martin 2005/03/09 13:29
- Stress test all MCMCpack model fitting functions. --- Andrew D. Martin 2005/03/09 13:29
- Validate all model-fitting functions using the approach described here: [1]. --- Andrew D. Martin 2005/04/15 10:28
- Get the cross-compiler working with the entire Scythe library. Currently some functions are missing in the cross-compiler, which means that MCMCpack does not contain the latest version of Scythe. --- Andrew D. Martin 2005/03/09 13:51
- Look carefully at bayesm package, listing model overlap, comparing speed, accuracy, etc. --- Andrew D. Martin 2005/04/16 15:21
- Make IRT and maybe factor analysis models more efficient for large datasets. Currently very slow and take up an enormous amount of memory. --- Kevin M. Quinn 2005/04/13 21:16
- Allow for hyperparameter prior (ie Gamma or Half-Cauchy dist) on the prior variance of the regression coefficients. ADM 2005/08/21
- Try including Neal's ordered overrelaxation method where appropriate and easy to implement. --KQ 08:08, 7 April 2006 (CDT)

## Easy TODOs

- Add informative error messages when people use ill-conditioned model matrices. --- Andrew D. Martin 2005/07/14 12:35
- The deletion of equality constrained parameters at the end of the sampling for the various measurement models could be made much more efficient by using apply() to get the variances rather than forming the full variance-covariance matrix. --- Kevin M. Quinn 2005/06/09 11:00
- Allow user to pass their own Hessian function or variance-covariance matrix for the proposal distribution in MCMCmetrop1R. In general, allow users more control over what optim() does and also give them the option to completely bypass the initial call to optim(). --- Kevin M. Quinn 2005/06/09 11:00
- Fix the Senate data so there are no duplicate names in the member variable. Modify all examples accordingly. --- Andrew D. Martin 2006/01/26 13:48
- For all models that use M-H, fix error messages such that it is clear why the underlying glm() or polr() command is called even if starting values are passed. --- Andrew D. Martin 2006/03/15 9:42
- fix all the if-then statements that check for logicals that throw a warning when a vector is passed. --KQ 10:53, 9 November 2006 (CST)