R: Function for Bayesian analysis of one- and two-sample designs

ttestBF {BayesFactor} | R Documentation

## Function for Bayesian analysis of one- and two-sample designs

### Description

This function computes Bayes factors, or samples from the posterior, for one- and two-sample designs.

### Usage

    ttestBF(x = NULL, y = NULL, formula = NULL, mu = 0,
      nullInterval = NULL, paired = FALSE, data = NULL, rscale = "medium",
      posterior = FALSE, callback = function(...) as.integer(0), ...)

### Arguments

`x` | a vector of observations for the first (or only) group
`y` | a vector of observations for the second group (or condition, for paired)
`formula` | for independent-group designs, a (optional) formula describing the model
`mu` | for one-sample and paired designs, the null value of the mean (or mean difference)
`nullInterval` | optional vector of length 2 containing lower and upper bounds of an interval hypothesis to test, in standardized units
`paired` | if `TRUE`, observations are paired
`data` | for use with `formula`, a data frame containing all the data
`rscale` | prior scale. A number of preset values can be given as strings; see Details.
`posterior` | if `TRUE`, return samples from the posterior instead of Bayes factor
`callback` | callback function for third-party interfaces
`...` | further arguments to be passed to or from methods.

### Details

The Bayes factor provided by `ttestBF` tests the null hypothesis that the mean (or mean difference) of a normal population is mu0 (argument `mu`). Specifically, the Bayes factor compares two hypotheses: that the standardized effect size is 0, or that the standardized effect size is not 0. For one-sample tests, the standardized effect size is (mu-mu0)/sigma; for two sample tests, the standardized effect size is (mu2-mu1)/sigma.

A noninformative Jeffreys prior is placed on the variance of the normal population, while a Cauchy prior is placed on the standardized effect size. The `rscale` argument controls the scale of the prior distribution, with `rscale=1` yielding a standard Cauchy prior. See the references below for more details.

For the `rscale` argument, several named values are recognized: "medium", "wide", and "ultrawide". These correspond to r scale values of sqrt(2)/2, 1, and sqrt(2) respectively.

The Bayes factor is computed via Gaussian quadrature.

### Value

If `posterior` is `FALSE`, an object of class `BFBayesFactor` containing the computed model comparisons is returned. If `nullInterval` is defined, then two Bayes factors will be computed: The Bayes factor for the interval against the null hypothesis that the standardized effect is 0, and the corresponding Bayes factor for the compliment of the interval.

If `posterior` is `TRUE`, an object of class `BFmcmc`, containing MCMC samples from the posterior is returned.

### Note

The default priors have changed from 1 to √{2}/2. The factor of √{2} is to be consistent with Morey et al. (2011) and Rouder et al. (2012), and the factor of 1/2 in both is to better scale the expected effect sizes; the previous scaling put more weight on larger effect sizes. To obtain the same Bayes factors as Rouder et al. (2009), change the prior scale to 1.

### Author(s)

Richard D. Morey (richarddmorey@gmail.com)

### References

Morey, R. D., Rouder, J. N., Pratte, M. S., & Speckman, P. L. (2011). Using MCMC chain outputs to efficiently estimate Bayes factors. Journal of Mathematical Psychology, 55, 368-378

Morey, R. D. \& Rouder, J. N. (2011). Bayes Factor Approaches for Testing Interval Null Hypotheses. Psychological Methods, 16, 406-419

Rouder, J. N., Speckman, P. L., Sun, D., Morey, R. D., & Iverson, G. (2009). Bayesian t-tests for accepting and rejecting the null hypothesis. Psychonomic Bulletin & Review, 16, 225-237

Perception and Cognition Lab (University of Missouri): Bayes factor calculators. http://pcl.missouri.edu/bayesfactor

### See Also

`integrate`, `t.test`

### Examples

    ## Sleep data from t test example
    data(sleep)
    plot(extra ~ group, data = sleep)

    ## paired t test
    ttestBF(x = sleep$extra[sleep$group==1], y = sleep$extra[sleep$group==2], paired=TRUE)

    ## Sample from the corresponding posterior distribution
    samples = ttestBF(x = sleep$extra[sleep$group==1],
               y = sleep$extra[sleep$group==2], paired=TRUE,
               posterior = TRUE, iterations = 1000)
    plot(samples[,"mu"])

[Package BayesFactor version 0.9.12-4.2 Index]