anovaBF(formula, data, whichRandom = NULL, whichModels = "withmain",
iterations = 10000, progress = options()$BFprogress,
rscaleFixed = "medium", rscaleRandom = "nuisance", multicore = FALSE,
method = "auto", noSample = FALSE, callback = function(...)
as.integer(0))TRUE, show progress with a text
progress barTRUE use multiple cores
through the doMC package. Unavailable on Windows.nWayAOV for details.TRUE, do not sample, instead
returning NA.BFBayesFactor, containing the
computed model comparisonsThe ANOVA model for a vector of observations $y$ is
$$y = \mu + X_1 \theta_1 + \ldots + X_p\theta_p
+\epsilon,$$ where $\theta_1,\ldots,\theta_p$ are
vectors of main-effect and interaction effects,
$X_1,\ldots,X_p$ are corresponding design matrices, and
$\epsilon$ is a vector of zero-centered noise terms
with variance $\sigma^2$. Zellner and Siow (1980)
inspired g-priors are placed on effects, but with a
separate g-prior parameter for each covariate:
$$\theta_1~N(0,g_1\sigma^2), \ldots, \theta_p~N(0,g_p
\sigma^2).$$ A Jeffries prior is placed on $\mu$ and
$\sigma^2$. Independent scaled inverse-chi-square
priors with one degree of freedom are placed on
$g_1,\ldots,g_p$. The square-root of the scale for g's
corresponding to fixed and random effects is given by
rscaleFixed and rscaleRandom, respectively.
When a factor is treated as random, there are as many main effect terms in the vector $\theta$ as levels. When a factor is treated as fixed, the sums-to-zero linear constraint is enforced by centering the corresponding design matrix, and there is one fewer main effect terms as levels. The Cornfield-Tukey model of interactions is assumed. Details are provided in Rouder et al. (2012)
Bayes factors are computed by integrating the likelihood
with respect to the priors on parameters. The integration
of all parameters except $g_1,\ldots,g_p$ may be
expressed in closed-form; the integration of
$g_1,\ldots,g_p$ is performed through Monte Carlo
sampling, and iterations is the number of iterations
used to estimate the Bayes factor.
anovaBF computes Bayes factors for either all
submodels or select submodels missing a single main effect
or covariate, depending on the argument whichModels.
If no random factors are specified, the null model assumed
by anovaBF is the grand-mean only model. If random
factors are specified, the null model is the model with an
additive model on all random factors, plus a grand mean.
Thus, anovaBF does not currently test random
factors. Testing random factors is possible with
lmBF.
The argument whichModels controls which models are
tested. Possible values are 'all', 'withmain', 'top', and
'bottom'. Setting whichModels to 'all' will test all
models that can be created by including or not including a
main effect or interaction. 'top' will test all models that
can be created by removing or leaving in a main effect or
interaction term from the full model. 'bottom' creates
models by adding single factors or interactions to the null
model. 'withmain' will test all models, with the constraint
that if an interaction is included, the corresponding main
effects are also included.
For the rscaleFixed and rscaleRandom
arguments, several named values are recognized: "medium",
"wide", and "ultrawide", corresponding to $r$ scale
values of 1/2, $\sqrt{2}/2$, and 1,
respectively. In addition, rscaleRandom can be set
to the "nuisance", which sets $r=1$ (and is thus
equivalent to "ultrawide"). The "nuisance" setting is for
medium-to-large-sized effects assumed to be in the data but
typically not of interest, such as variance due to
participants.
Rouder, J. N., Morey, R. D., Speckman, P. L., Province, J. M., (2012) Default Bayes Factors for ANOVA Designs. Journal of Mathematical Psychology. 56. p. 356-374.
Zellner, A. and Siow, A., (1980) Posterior Odds Ratios for Selected Regression Hypotheses. In Bayesian Statistics: Proceedings of the First Interanational Meeting held in Valencia (Spain). Bernardo, J. M., Lindley, D. V., and Smith A. F. M. (eds), pp. 585-603. University of Valencia.
lmBF, for testing specific models, and
regressionBF for the function similar to
anovaBF for linear regression models.## Classical example, taken from t.test() example
## Student's sleep data
data(sleep)
plot(extra ~ group, data = sleep)
## traditional ANOVA gives a p value of 0.00283
summary(aov(extra ~ group + Error(ID/group), data = sleep))
## Gives a Bayes factor of about 11.6
## in favor of the alternative hypothesis
anovaBF(extra ~ group + ID, data = sleep, whichRandom = "ID",
progress=FALSE)
## Demonstrate top-down testing
data(puzzles)
result = anovaBF(RT ~ shape*color + ID, data = puzzles, whichRandom = "ID",
whichModels = 'top', progress=FALSE)
result
## In orthogonal designs, the top down Bayes factor can be
## interpreted as a test of the omitted effectRun the code above in your browser using DataLab