anovaBF(formula, data, whichRandom = NULL,
whichModels = "withmain", iterations = 10000,
progress = TRUE, rscaleFixed = "medium",
rscaleRandom = "nuisance", multicore = FALSE,
method = "auto")TRUE, show progress with a text
progress barTRUE use multiple cores
through the doMC package. Unavailable on Windows.nWayAOV for details.BFBayesFactor, containing the
computed model comparisons The 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