These methods take result objects from the BayesFactor package to create formatted character strings to report the results in accordance with APA manuscript guidelines.
# S3 method for BFBayesFactor
apa_print(
x,
stat_name = NULL,
est_name = NULL,
subscript = NULL,
escape_subscript = FALSE,
scientific_threshold = NULL,
reciprocal = FALSE,
log = FALSE,
mcmc_error = any(x@bayesFactor$error > 0.05),
iterations = 10000,
standardized = FALSE,
central_tendency = median,
interval = hd_int,
interval_type = "HDI",
bf_r1 = NULL,
bf_1r = NULL,
...
)# S3 method for BFBayesFactorTop
apa_print(x, reciprocal = FALSE, ...)
apa_print()
-methods return a named list of class apa_results
containing the following elements:
One or more character strings giving point estimates, confidence intervals, and confidence level. A single string is returned in a vector; multiple strings are returned as a named list. If no estimate is available the element is NULL
.
One or more character strings giving the test statistic, parameters (e.g., degrees of freedom), and p-value. A single string is returned in a vector; multiple strings are returned as a named list. If no estimate is available the element is NULL
.
One or more character strings comprised `estimate` and `statistic`. A single string is returned in a vector; multiple strings are returned as a named list.
A data.frame
of class apa_results_table
that contains all elements of estimate
and statistics
. This table can be passed to apa_table()
for reporting.
Column names in apa_results_table
are standardized following the broom glossary (e.g., term
, estimate
conf.int
, statistic
, df
, df.residual
, p.value
). Additionally, each column is labelled (e.g., $\hat{\eta}^2_G$
or $t$
) using the tinylabels package and these labels are used as column names when an apa_results_table
is passed to apa_table()
.
Output object. See details.
Character. If NULL
(the default), the name given in x
is used for the test statistic, otherwise the supplied name is used.
See details.
Character. If NULL
(the default), the name given in x
(or a formally correct adaptation) is used for the estimate, otherwise
the supplied name is used. See details.
Character. Index used to specify the model comparison for
the Bayes factors, e.g., "+0"
yields \(BF_{+0}\). If NULL
default to
"10".
Logical. If TRUE
special LaTeX characters, such as
%
or _
, in subscript
are escaped.
Numeric. Named vector of length 2 taking the form
c(min = 1/10, max = 1e6)
. Bayes factors that exceed these thresholds will
be printed in scientific notation.
Logical. If TRUE
the reciprocal of all Bayes factors is
taken before results are formatted. The advantage over specifying
x = t(x)
is that the default (only the default) index specifying the
model comparison is automatically reversed, see subscript
.
Logical. If TRUE
the logarithm of the Bayes factor is reported.
Logical. If TRUE
estimation error of the Bayes factor(s)
is reported.
Numeric. Number of iterations of the MCMC sampler to estimate HDIs from the posterior.
Logical. Whether to return standardized or unstandardized effect size estimates.
Function to calculate central tendency of MCMC samples to obtain a point estimate from the posterior.
Function to calculate an interval estimate of MCMC
samples from the posterior. The returned object must be either a named
vector or matrix with (column) names giving the interval bounds
(e.g., 2.5%
and 97.5%
) or with an attribute conf.level
(e.g., 0.95
).
Character. Used to specify the type of interval in the formatted text.
Numeric. Vector of the same length as x
giving Bayes factors
in favor of an order constraint relative to the unconstrained model
(see details). Must be on log-scale if log = TRUE
.
Numeric. Same as bf_r1
(see details).
Arguments passed on to apa_num.numeric
gt1
Logical. Indicates if the statistic can, in principle, have an
absolute value greater than 1. If FALSE
, leading zeros are
omitted.
zero
Logical. Indicates if the statistic can, in principle, be 0. If
FALSE
, a string of the form < 0.001
is returned instead of 0.
na_string
Character. String to print if any element of x
is NA
.
use_math
Logical. Indicates whether to use $
in the output so that
Inf
or scientific notation is rendered correctly.
add_equals
Logical. Indicates if the output string should be
prepended with an =
.
stat_name
and est_name
are placed in the output string and are
thus passed to pandoc or LaTeX through knitr. To the extent it is
supported by the final document type, you can pass LaTeX-markup to format
the final text (e.g., M_\Delta
yields \(M_\Delta\)).
For models with order constraint, the evidence for the order constraint
relative to the null model can be obtained by multiplying the
Bayes factor \(BF_{r1}\) for the order constraint relative to the
unconstrained model (bf_r1
) with the Bayes factor \(BF_{10}\) for the
unconstrained model relative to the null model,
$$\frac{p(y \mid {\cal M}_r)}{p(y \mid {\cal M}_0)} = \frac{p(y \mid {\cal M}_r)}{p(y \mid {\cal M}_1)} \times \frac{p(y \mid {\cal M}_1)}{p(y \mid {\cal M}_0)}$$.
\(BF_{r1}\) can be calculated from the prior and posterior odds of the
order constraint (e.g., Morey & Wagenmakers, 2014). If bf_r1
(or
bf_1r
) is specified they are multiplied with the corresponding Bayes
factor supplied in x
before the reciprocal is taken and the results are
formatted. Note, that it is not possible to determine whether x
gives
\(BF_{10}\) or \(BF_{01}\) and, hence, bf_r1
and bf_1r
are treated
identically; the different argument names only serve to ensure the
expressiveness of the code. It is the user's responsibility to ensure that
the supplied Bayes factor is correct!
Morey, R. D., & Wagenmakers, E.-J. (2014). Simple relation between Bayesian order-restricted and point-null hypothesis tests. Statistics & Probability Letters, 92, 121--124. doi: tools:::Rd_expr_doi("10.1016/j.spl.2014.05.010")
Other apa_print:
apa_print.aov()
,
apa_print.emmGrid()
,
apa_print.glht()
,
apa_print.htest()
,
apa_print.list()
,
apa_print.lme()
,
apa_print.lm()
,
apa_print.merMod()
,
apa_print()
# ANOVA
# \donttest{
data(sleep, package = "BayesFactor")
bayesian_anova <- BayesFactor::anovaBF(
extra ~ group + ID
, data = sleep
, whichRandom = "ID"
, progress = FALSE
)
# Paired t-test
ttest_paired <- BayesFactor::ttestBF(
x = sleep$extra[sleep$group == 1]
, y = sleep$extra[sleep$group == 2]
, paired = TRUE
)
# Results for paired t-tests are indistinguishable
# from one-sample t-tests. We therefore specify the
# appropriate `est_name` manually.
apa_print(
ttest_paired
, est_name = "M_D"
, iterations = 1000
)
apa_print(
ttest_paired
, iterations = 1000
, interval = function(x) quantile(x, probs = c(0.025, 0.975))
, interval_type = "CrI"
)
# }
Run the code above in your browser using DataLab