After entirely too long, I am happy to announce the beta release of
boolean3, an R package for modeling causal complexity. The package can be downloaded at the following links:
(Please let me know if you have any trouble installing the Windows version. I didn’t have a Windows system handy when I built the package.)
Braumoeller, Bear F. (2003) 'Causal Complexity and the Study of Politics'. Political Analysis 11(3): 209-233.
Additional theoretical content can be found at the Boolean Statistics homepage. Braumoeller and Carson have a 2011 paper titled “Political Irrelevance, Democracy, and the Limits of Militarized Conflict” in the Journal of Conflict Resolution that provides a useful example of the approach.
Summarizing from the
boolean3 documentation and package description:
boolean3provides a means of estimating partial-observability binary response models following boolean logic.
boolean3was developed by Jason W. Morgan under the direction of Bear Braumoeller with support from The Ohio State University's College of Social and Behavioral Sciences. The package represents a significant re-write of the original boolean implementation developed by Bear Braumoeller, Ben Goodrich, and Jacob Kline.
As is typically the case with “significant re-writes”,
boolean3 breaks compatibility with previous versions (which can still be downloaded and installed from CRAN). Some of the many changes and enhancements include:
- Removed dependence on Zelig.
- Changed the method of specifying the model to me more consistent with the style of other R packages.
- Improved performance. Many models can be estimated in 1/10th the time, or better, when compared to the original
- Added support for the optimizing methods available in the optimx package. This includes the ability to apply box constraints, which can be useful in maximizing boolean likelihoods.
- Added multiprocessor/cluster support for bootstrapping using the snow package.
- Genetic optimization using rgenoud also provides support for clustering with
- Plotting of predicted probabilities and likelihood profiles is now done with lattice.
Some things that are still missing from the package:
- Documentation is still thin. There is enough in the help pages to get people started using the package, but more is needed.
- Skewed logit (scobit) is not yet implemented. Most of the code has been written, but there are a few complications yet to be worked out.
If you are a current user of
boolean, we’d love for you to try out
boolean3. While a lot of bug-squashing has been done, there has been fairly little “real-world” testing. Bug reports and suggestions for changes and enhancements would be quite welcome, and can be emailed to Bear Braumoeller, me, or posted below in the comments. I will continue to post updates to the package as they are available.