pingouin.bayesfactor_ttest
-
pingouin.
bayesfactor_ttest
(t, nx, ny=None, paired=False, tail='two-sided', r=0.707)[source] Bayes Factor of a T-test.
- Parameters
- tfloat
T-value of the T-test
- nxint
Sample size of first group
- nyint
Sample size of second group (only needed in case of an independent two-sample T-test)
- pairedboolean
Specify whether the two observations are related (i.e. repeated measures) or independent.
- tailstring
Specify whether the test is ‘one-sided’ or ‘two-sided’. Can also be ‘greater’ or ‘less’ to specify the direction of the test.
Warning
One-sided Bayes Factor (BF) are simply obtained by doubling the two-sided BF, which is not exactly the same behavior as R or JASP. Be extra careful when interpretating one-sided BF, and if you can, always double-check your results.
- rfloat
Cauchy scale factor. Smaller values of
r
(e.g. 0.5), may be appropriate when small effect sizes are expected a priori; larger values ofr
are appropriate when large effect sizes are expected (Rouder et al 2009). The default is \(\sqrt{2} / 2 \approx 0.707\).
- Returns
- bffloat
Scaled Jeffrey-Zellner-Siow (JZS) Bayes Factor (BF10). The Bayes Factor quantifies the evidence in favour of the alternative hypothesis.
See also
ttest
T-test
pairwise_ttest
Pairwise T-tests
bayesfactor_pearson
Bayes Factor of a correlation
bayesfactor_binom
Bayes Factor of a binomial test
Notes
Adapted from a Matlab code found at https://github.com/anne-urai/Tools/tree/master/stats/BayesFactors
If you would like to compute the Bayes Factor directly from the raw data instead of from the T-value, use the
pingouin.ttest()
function.The JZS Bayes Factor is approximated using the formula described in ref [1]:
\[\text{BF}_{10} = \frac{\int_{0}^{\infty}(1 + Ngr^2)^{-1/2} (1 + \frac{t^2}{v(1 + Ngr^2)})^{-(v+1) / 2}(2\pi)^{-1/2}g^ {-3/2}e^{-1/2g}}{(1 + \frac{t^2}{v})^{-(v+1) / 2}}\]where \(t\) is the T-value, \(v\) the degrees of freedom, \(N\) the sample size, \(r\) the Cauchy scale factor (= prior on effect size) and \(g\) is is an auxiliary variable that is integrated out numerically.
Results have been validated against JASP and the BayesFactor R package.
References
- 1
Rouder, J.N., Speckman, P.L., Sun, D., Morey, R.D., Iverson, G., 2009. Bayesian t tests for accepting and rejecting the null hypothesis. Psychon. Bull. Rev. 16, 225–237. https://doi.org/10.3758/PBR.16.2.225
Examples
Bayes Factor of an independent two-sample T-test
>>> from pingouin import bayesfactor_ttest >>> bf = bayesfactor_ttest(3.5, 20, 20) >>> print("Bayes Factor: %.3f (two-sample independent)" % bf) Bayes Factor: 26.743 (two-sample independent)
Bayes Factor of a paired two-sample T-test
>>> bf = bayesfactor_ttest(3.5, 20, 20, paired=True) >>> print("Bayes Factor: %.3f (two-sample paired)" % bf) Bayes Factor: 17.185 (two-sample paired)
Bayes Factor of an one-sided one-sample T-test
>>> bf = bayesfactor_ttest(3.5, 20, tail='one-sided') >>> print("Bayes Factor: %.3f (one-sample)" % bf) Bayes Factor: 34.369 (one-sample)
Now specifying the direction of the test
>>> tval = -3.5 >>> bf_greater = bayesfactor_ttest(tval, 20, tail='greater') >>> bf_less = bayesfactor_ttest(tval, 20, tail='less') >>> print("BF10-greater: %.3f | BF10-less: %.3f" % (bf_greater, bf_less)) BF10-greater: 0.029 | BF10-less: 34.369