Package {BayesPower}


Title: Sample Size and Power Calculation for Bayesian Testing with Bayes Factor
Version: 1.0.5
Description: The goal of 'BayesPower' is to provide tools for Bayesian sample size determination and power analysis across a range of common hypothesis testing scenarios using Bayes factors. The main function, BayesPower_BayesFactor(), launches an interactive 'shiny' application for performing these analyses. The application also provides command-line code for reproducibility. Details of the methods are described in the tutorial by Wong, Pawel, and Tendeiro (2025) <doi:10.31234/osf.io/pgdac_v3>.
BugReports: https://github.com/tkWong3004/BayesPower/issues
License: GPL (≥ 3)
Encoding: UTF-8
Imports: rlang, shiny, gsl, Rcpp, ExtDist, ggplot2, patchwork, rmarkdown, glue, hypergeo, rootSolve, shinyWidgets, grDevices, tidyr, scales, httpuv, utils
LinkingTo: Rcpp, BH
Suggests: testthat (≥ 3.0.0)
Config/testthat/edition: 3
Config/roxygen2/version: 8.0.0
NeedsCompilation: yes
Packaged: 2026-06-29 12:01:19 UTC; u971096
Author: Tsz Keung Wong [aut, cre], Samuel Pawel [aut], Jorge Tendeiro [aut]
Maintainer: Tsz Keung Wong <t.k.wong3004@gmail.com>
Repository: CRAN
Date/Publication: 2026-06-29 12:30:02 UTC

Bayes Factor for a Bayesian One-Proportion Test

Description

Calculate the Bayes factor (BF10) for a one-proportion test, either against a point null or an interval null hypothesis.

Usage

BF10.bin.test(
  n,
  x,
  h0,
  alternative,
  ROPE = NULL,
  prior_analysis,
  alpha,
  beta,
  scale
)

Arguments

n

Numeric integer. Sample size (positive integer scalar).

x

Numeric integer. Observed number of successes (non-negative integer scalar, must be \ge 0 and \le n ).

h0

Numeric scalar. Null proportion value (numeric scalar between 0.1 and 0.9).

alternative

Character. The direction of the alternative hypothesis : two-sided ("two.sided" ), right-sided ("greater"), or left-sided ("less").

ROPE

Optional numeric vector or scalar. Specifies the region of practical equivalence relative to the point null value of h0. Thus, ROPE defines the interval of values considered practically equivalent to the null value by h0 + ROPE.

For alternative = "two.sided", argument ROPE must be a numeric vector of length 2 with two distinct finite values such that the first element is negative and the second element is positive (i.e., ROPE[1] < 0 < ROPE[2]). The resulting region of practical equivalence is [h0 + ROPE[1], h0 + ROPE[2]]. Example: If h0 = 0.5, alternative = "two.sided", ROPE = c(-0.2, 0.2), then the region of practical equivalence is [0.3, 0.7].

For alternative = "greater", argument ROPE must be a numeric scalar > 0, the interval null extends from h0 to h0 + ROPE. Example: If h0 = 0.5, alternative = "greater", ROPE = 0.2, then the region of practical equivalence is [0.5, 0.7].

For alternative = "less", argument ROPE must be a numeric scalar < 0, the interval null extends from h0 + ROPE to h0. Example: If h0 = 0.5, alternative = "less", ROPE = -0.2, then the region of practical equivalence is [0.3, 0.5].

prior_analysis

Character. The analysis prior under the alternative hypothesis: "beta" or "Moment" (normal-moment prior).

alpha

Numeric scalar. Alpha parameter of the analysis beta prior under the alternative hypothesis (required if prior_analysis = "beta").

beta

Numeric scalar. Beta parameter of the analysis beta prior under the alternative hypothesis (required if prior_analysis = "beta").

scale

Numeric scalar. Scale parameter for the analysis prior (required if prior_analysis = "Moment").

Value

An object of class BFvalue containing:

Examples

BF10.bin.test(
 n = 52,
 x = 42,
 h0 = 0.5,
 alternative = "greater",
 prior_analysis = "beta",
 alpha = 1,
 beta = 1)


Bayes Factor for a Bayesian Correlation Test

Description

Calculate the Bayes factor (BF10) for a correlation coefficient, either against a point null or an interval null hypothesis. Supports default beta ("d_beta"), stretched beta ("beta"), and normal-moment ("Moment") priors for the alternative hypothesis.

Usage

BF10.cor(
  r,
  n,
  h0,
  alternative,
  ROPE = NULL,
  prior_analysis,
  k,
  alpha,
  beta,
  scale
)

Arguments

r

Numeric scalar. Observed correlation coefficient. Must be a numeric scalar between -1 and 1.

n

Numeric integer. Sample size. Must be a numeric scalar greater than 3.

h0

Numeric scalar. Null value of the correlation. Must be a numeric scalar between -0.8 and 0.8.

alternative

Character. The direction of the alternative hypothesis : two-sided ("two.sided" ), right-sided ("greater"), or left-sided ("less").

ROPE

Optional numeric vector or scalar. Specifies the region of practical equivalence relative to the point null value of h0. Thus, ROPE defines the interval of values considered practically equivalent to the null value by h0 + ROPE.

For alternative = "two.sided", argument ROPE must be a numeric vector of length 2 with two distinct finite values such that the first element is negative and the second element is positive (i.e., ROPE[1] < 0 < ROPE[2]). The resulting region of practical equivalence is [h0 + ROPE[1], h0 + ROPE[2]]. Example: If h0 = 0.1, alternative = "two.sided", ROPE = c(-0.2, 0.2), then the region of practical equivalence is [-0.1, 0.3].

For alternative = "greater", argument ROPE must be a numeric scalar > 0, the interval null extends from h0 to h0 + ROPE. Example: If h0 = 0.1, alternative = "greater", ROPE = 0.2, then the region of practical equivalence is [0.1, 0.3].

For alternative = "less", argument ROPE must be a numeric scalar < 0, the interval null extends from h0 + ROPE to h0. Example: If h0 = 0.1, alternative = "less", ROPE = -0.2, then the region of practical equivalence is [-0.1, 0.1].

prior_analysis

Character. The analysis prior under the alternative hypothesis: default beta ("d_beta"), beta ("beta"), or normal-moment ("Moment").

k

Numeric scalar. Shape parameter for the analysis default beta prior under the alternative hypothesis given \alpha = \beta = \frac{1}{\kappa} (required if prior_analysis = "d_beta").

alpha

Numeric scalar. Alpha parameter of the analysis beta prior under the alternative hypothesis (required if prior_analysis = "beta").

beta

Numeric scalar. Beta parameter of the analysis beta prior under the alternative hypothesis (required if prior_analysis = "beta").

scale

Numeric scalar. Scale parameter for the analysis prior (required if prior_analysis = "Moment").

Value

A list with class BFvalue containing:

Examples

BF10.cor(
  r = 0.393,
  n = 46,
  h0 = 0,
  alternative = "two.sided",
  prior_analysis = "d_beta",
  k = 1)

Bayes Factor for a Bayesian F-Test

Description

Calculate the Bayes factor (BF10) for an F-test, comparing a full model to a reduced model under either an effect-size prior or a moment prior. Optionally, an interval null hypothesis can be specified.

Usage

BF10.f.test(fval, df1, df2, ROPE = NULL, prior_analysis, rscale, f_m, dff)

Arguments

fval

Numeric scalar. Observed F statistic (must be \ge 0).

df1

Numeric scalar. Numerator degrees of freedom (must be > 0).

df2

Numeric scalar. Denominator degrees of freedom (must be > 0).

ROPE

Optional numeric scalar. Specifies the upper bound of the region of practical equivalence, whose lower bound is fixed at zero. Thus, ROPE defines the interval of values considered practically equivalent to the null value. If provided, it must be positive.

For example, if ROPE = 0.2, then the region of practical equivalence is [0, 0.2].

prior_analysis

Character. The analysis prior under the alternative hypothesis: "effectsize" or "Moment".

rscale

Numeric scalar. Scale parameter for the effect-size analysis prior under the alternative hypothesis (required if prior_analysis = "effectsize").

f_m

Numeric scalar. Cohen's f location parameter for the analysis prior under the alternative hypothesis.

dff

Numeric scalar. Degrees of freedom for the analysis prior under the alternative hypothesis. For the Moment prior, this must be \ge 3.

Value

A list of class BFvalue containing:

Examples

BF10.f.test(
  fval = 4.5,
  df1 = 2,
  df2 = 12,
  dff = 12,
  prior_analysis = "effectsize",
  rscale = 0.707,
  f_m = 0.1)


Bayes Factor for Comparing Two Proportions

Description

Compute the Bayes factor (BF10) for a Bayesian test of two proportions.

Usage

BF10.props(N1, x1, N2, x2, a0, b0, a1, b1, a2, b2)

Arguments

N1

Positive numeric integer. Sample size for group 1 (must be > 0).

x1

Non-negative numeric integer. Number of successes observed in group 1 (must be \ge 0 and \le N_1 ).

N2

Positive numeric integer. Sample size for group 2 (must be > 0).

x2

Non-negative numeric integer. Number of successes observed in group 2 (must be \ge 0 and \le N_2).

a0

Positive numeric scalar. Alpha parameter of the Beta analysis prior under the null hypothesis.

b0

Positive numeric scalar. Beta parameter of the Beta analysis prior under the null hypothesis.

a1

Positive numeric scalar. Alpha parameter of the Beta analysis prior for group 1 under the alternative hypothesis.

b1

Positive numeric scalar. Beta parameter of the Beta analysis prior for group 1 under the alternative hypothesis.

a2

Positive numeric scalar. Alpha parameter of the Beta analysis prior for group 2 under the alternative hypothesis.

b2

Positive numeric scalar. Beta parameter of the Beta analysis prior for group 2 under the alternative hypothesis.

Value

A list of class BFvalue containing:

Examples

BF10.props(
N1 = 493,
x1 = 155,
N2 = 488,
x2 = 150,
a0 = 1,
b0 = 1,
a1 = 1,
b1 = 1,
a2 = 1,
b2 = 1)

Bayes Factor for a One-Sample Bayesian t-Test

Description

Calculate the Bayes factor (BF10) for a one-sample t-test, comparing an observed t-value against either a point null hypothesis or an interval null hypothesis.

Usage

BF10.ttest.OneSample(
  tval,
  df,
  alternative,
  ROPE = NULL,
  prior_analysis,
  location,
  scale,
  dff
)

Arguments

tval

Numeric scalar. Observed t-value from the one-sample t-test.

df

Numeric scalar. Degrees of freedom of the t-test (must be \ge 1).

alternative

Character. The direction of the alternative hypothesis : two-sided ("two.sided" ), right-sided ("greater"), or left-sided ("less").

ROPE

Optional numeric vector or scalar. Specifies the region of practical equivalence relative to the point null value of zero. Thus, ROPE defines the interval of values considered practically equivalent to the null value.

For alternative = "two.sided", argument ROPE must be a numeric vector of length 2 with two distinct finite values such that the first element is negative and the second element is positive (i.e., ROPE[1] < 0 < ROPE[2]). Example: If alternative = "two.sided" and ROPE = c(-0.2, 0.2), then the region of practical equivalence is [-0.2, 0.2].

For alternative = "greater", argument ROPE must be a numeric scalar > 0. Example: If alternative = "greater" and ROPE = 0.2, then the region of practical equivalence is [0, 0.2].

For alternative = "less", argument ROPE must be a numeric scalar < 0.Example: If alternative = "less" and ROPE = -0.2, then the region of practical equivalence is [-0.2, 0].

prior_analysis

Character. The analysis prior under the alternative hypothesis: "Normal" (normal distribution), "Moment" (normal-moment prior), or "t-distribution" (t-distribution).

location

Numeric scalar. Location parameter for the analysis prior under the alternative hypothesis.

scale

Numeric scalar. Scale parameter for the analysis prior under the alternative hypothesis (must be > 0).

dff

Numeric scalar. Degrees of freedom for the t-distribution prior under the alternative hypothesis (required if prior_analysis = "t-distribution"; must be > 0).

Value

A list of class BFvalue containing:

Examples

BF10.ttest.OneSample(
tval = 2,
df = 50,
alternative = "two.sided",
prior_analysis = "t-distribution",
location = 0,
scale = 0.707,
dff = 1)



Bayes Factor for a Two-Sample Bayesian t-Test

Description

Calculate the Bayes factor (BF10) for a two-sample independent t-test with equal variances. Supports both point-null and interval-null hypotheses.

Usage

BF10.ttest.TwoSample(
  tval,
  N1,
  N2,
  alternative,
  ROPE = NULL,
  prior_analysis,
  location,
  scale,
  dff
)

Arguments

tval

Numeric scalar. Observed t-value from the two-sample t-test.

N1

Numeric integer. Sample size of group 1 (must be > 2).

N2

Numeric integer. Sample size of group 2 (must be > 2).

alternative

Character. The direction of the alternative hypothesis : two-sided ("two.sided" ), right-sided ("greater"), or left-sided ("less").

ROPE

Optional numeric vector or scalar. Specifies the region of practical equivalence relative to the point null value of zero. Thus, ROPE defines the interval of values considered practically equivalent to the null value.

For alternative = "two.sided", argument ROPE must be a numeric vector of length 2 with two distinct finite values such that the first element is negative and the second element is positive (i.e., ROPE[1] < 0 < ROPE[2]). Example: If alternative = "two.sided" and ROPE = c(-0.2, 0.2), then the region of practical equivalence is [-0.2, 0.2].

For alternative = "greater", argument ROPE must be a numeric scalar > 0. Example: If alternative = "greater" and ROPE = 0.2, then the region of practical equivalence is [0, 0.2].

For alternative = "less", argument ROPE must be a numeric scalar < 0.Example: If alternative = "less" and ROPE = -0.2, then the region of practical equivalence is [-0.2, 0].

prior_analysis

Character. Analysis prior under the alternative hypothesis: "Normal", "Moment" (normal-moment prior), or "t-distribution".

location

Numeric scalar. Location parameter of the analysis prior under the alternative hypothesis.

scale

Numeric scalar > 0. Scale parameter of the analysis prior under the alternative hypothesis.

dff

Numeric scalar. Degrees of freedom for the analysis prior under the alternative hypothesis (required if prior_analysis = "t-distribution"; ignored otherwise).

Value

A list of class BFvalue containing:

Examples

BF10.ttest.TwoSample(
 tval = -1.148,
 N1 = 53,
 N2 = 48,
 alternative = "two.sided",
 ROPE = c(-0.36,0.36),
 prior_analysis = "t-distribution",
 location = 0,
 scale = 0.707,
 dff = 1)


Sample Size Determination for the Bayesian One-Proportion Test

Description

Perform sample size determination or power calculation of compelling and misleading evidence for a Bayesian test of a single proportion. Can handle both point-null and interval-null hypothesis, and allows specifying analysis and design priors.

Usage

BFpower.bin(
  threshold,
  type_rate = "positive",
  true_rate,
  false_rate,
  N = NULL,
  h0,
  alternative,
  ROPE = NULL,
  prior_analysis,
  alpha,
  beta,
  scale,
  prior_design = NULL,
  alpha_d,
  beta_d,
  location_d,
  scale_d
)

Arguments

threshold

Numeric scalar. Threshold for compelling evidence (must be \ge 1).

type_rate

Character. Either "positive" (controls true/false positive rates) or "negative" (controls true/false negative rates).

true_rate

Numeric scalar. Target true positive or negative rate (between 0.6 and 0.999) for sample size determination.

false_rate

Numeric scalar. Target false positive or false negative rate (between 0.001 and 0.1) for sample size determination.

N

Numeric integer. Sample size for power calculation. If NULL, sample size determination is performed.

h0

Numeric scalar. Null proportion value (numeric scalar between 0.1 and 0.9).

alternative

Character. The direction of the alternative hypothesis : two-sided ("two.sided" ), right-sided ("greater"), or left-sided ("less").

ROPE

Optional numeric vector or scalar. Specifies the region of practical equivalence relative to the point null value of h0. Thus, ROPE defines the interval of values considered practically equivalent to the null value by h0 + ROPE.

For alternative = "two.sided", argument ROPE must be a numeric vector of length 2 with two distinct finite values such that the first element is negative and the second element is positive (i.e., ROPE[1] < 0 < ROPE[2]). The resulting region of practical equivalence is [h0 + ROPE[1], h0 + ROPE[2]]. Example: If h0 = 0.5, alternative = "two.sided", ROPE = c(-0.2, 0.2), then the region of practical equivalence is [0.3, 0.7].

For alternative = "greater", argument ROPE must be a numeric scalar > 0, the interval null extends from h0 to h0 + ROPE. Example: If h0 = 0.5, alternative = "greater", ROPE = 0.2, then the region of practical equivalence is [0.5, 0.7].

For alternative = "less", argument ROPE must be a numeric scalar < 0, the interval null extends from h0 + ROPE to h0. Example: If h0 = 0.5, alternative = "less", ROPE = -0.2, then the region of practical equivalence is [0.3, 0.5].

prior_analysis

Character. The analysis prior under the alternative hypothesis: "beta" or "Moment" (normal-moment prior).

alpha

Numeric scalar. Alpha parameter of the analysis beta prior under the alternative hypothesis (required if prior_analysis = "beta").

beta

Numeric scalar. Beta parameter of the analysis beta prior under the alternative hypothesis (required if prior_analysis = "beta").

scale

Numeric scalar. Scale parameter of the analysis prior under the alternative hypothesis (required if prior_analysis = "Moment").

prior_design

Character. Design prior under the alternative hypothesis: "beta", "Moment"(normal-moment prior), or "Point".

alpha_d

Numeric scalar. Alpha parameter of the design beta prior under the alternative hypothesis (required if prior_design = "beta").

beta_d

Numeric scalar. Beta Parameter of the design beta prior under the alternative hypothesis (required if prior_design = "beta").

location_d

Numeric scalar. Location parameter for the design prior under the alternative hypothesis. Required for prior_design = "Moment" and prior_design = "Point". For "Moment", it must satisfy 0 < location_d < 1. For "Point", it represents the true proportion and must satisfy direction-specific constraints: for alternative = "greater", h0 < location_d < 1; for alternative = "less", 0 < location_d < h0; and for alternative = "two.sided", 0 < location_d < 1 and location_d != h0.

scale_d

Numeric scalar. Scale parameter of the design prior under the alternative hypothesis (required if prior_design = "Moment").

Details

Sample Size Determination Mode (when N = NULL):

If no sample size is provided, the function calculates the minimum sample size needed to achieve the desired configuration below. The user must provide:

The function iteratively finds the smallest sample size for which the probability of obtaining compelling evidence (i.e., true positive/negative rate) meets or exceeds true_rate, while the probability of misleading evidence (i.e., false positive/negative rate) does not exceed false_rate.

Fixed-sample Analysis Mode (when N is supplied):

If a positive integer sample size N is provided, the function computes the probabilities of obtaining compelling or misleading evidence for that fixed sample size. In this mode, type_rate, true_rate, and false_rate are ignored; only the Bayes factor threshold threshold is used.

Direction of the Alternative Hypothesis:

The argument alternative specifies the direction of the test and can be set to "two.sided", "greater", or "less".

Interval Null Hypothesis:

The interval null hypothesis can be specified using the argument ROPE, which defines a region of practical equivalence around the null value of h0. Thus, ROPE defines the interval of values considered practically equivalent to the null value by h0 + ROPE.

The required form of ROPE depends on the direction of alternative:

If ROPE = NULL, a point-null hypothesis is assumed.

Analysis Priors:

The user must specify the analysis prior under the alternative hypothesis using prior_analysis:

Design Priors (optional):

The design prior under the alternative hypothesis can optionally be specified using prior_design:

If prior_design is NULL, the analysis prior is used as the design prior.

Value

A list of class BFpower containing:

If sample size determination fails, the function returns NaN and prints a message.

Examples

BFpower.bin(
  alternative = "greater",
  threshold = 3,
  true_rate = 0.8,
  false_rate = 0.05,
  h0 = 0.5,
  prior_analysis = "beta",
  alpha = 1,
  beta = 1)


Sample Size Determination for the Bayesian Correlation Test

Description

Perform sample size determination or power calculation of compelling and misleading evidence for a Bayesian correlation test. Can handle both point-null and interval-null hypothesis, and allows specifying analysis and design priors.

Usage

BFpower.cor(
  threshold,
  type_rate = "positive",
  true_rate,
  false_rate,
  N = NULL,
  h0,
  alternative,
  ROPE = NULL,
  prior_analysis,
  k,
  alpha,
  beta,
  scale,
  prior_design = NULL,
  k_d,
  alpha_d,
  beta_d,
  location_d,
  scale_d
)

Arguments

threshold

Numeric scalar. Threshold for compelling evidence (must be \ge 1).

type_rate

Character. Either "positive" (controls true/false positive rates) or "negative" (controls true/false negative rates).

true_rate

Numeric scalar. Target true positive or negative rate (between 0.6 and 0.999) for sample size determination.

false_rate

Numeric scalar. Target false positive or false negative rate (between 0.001 and 0.1) for sample size determination.

N

Numeric integer. Sample size for power calculation. If NULL, sample size determination is performed.

h0

Numeric scalar. Null value of the correlation. Must be a numeric scalar between -0.8 and 0.8.

alternative

Character. The direction of the alternative hypothesis : two-sided ("two.sided" ), right-sided ("greater"), or left-sided ("less").

ROPE

Optional numeric vector or scalar. Specifies the region of practical equivalence relative to the point null value of h0. Thus, ROPE defines the interval of values considered practically equivalent to the null value by h0 + ROPE.

For alternative = "two.sided", argument ROPE must be a numeric vector of length 2 with two distinct finite values such that the first element is negative and the second element is positive (i.e., ROPE[1] < 0 < ROPE[2]). The resulting region of practical equivalence is [h0 + ROPE[1], h0 + ROPE[2]]. Example: If h0 = 0.1, alternative = "two.sided", ROPE = c(-0.2, 0.2), then the region of practical equivalence is [-0.1, 0.3].

For alternative = "greater", argument ROPE must be a numeric scalar > 0, the interval null extends from h0 to h0 + ROPE. Example: If h0 = 0.1, alternative = "greater", ROPE = 0.2, then the region of practical equivalence is [0.1, 0.3].

For alternative = "less", argument ROPE must be a numeric scalar < 0, the interval null extends from h0 + ROPE to h0. Example: If h0 = 0.1, alternative = "less", ROPE = -0.2, then the region of practical equivalence is [-0.1, 0.1].

prior_analysis

Character. The analysis prior under the alternative hypothesis: default beta ("d_beta"), beta ("beta"), or normal-moment prior ("Moment").

k

Numeric scalar. Shape parameter of the analysis default beta prior under the alternative hypothesis given \alpha = \beta = \frac{1}{\kappa} (required if prior_analysis = "d_beta").

alpha

Numeric scalar. Alpha parameter of the analysis beta prior under the alternative hypothesis (required if prior_analysis = "beta").

beta

Numeric scalar. Beta parameter of the analysis beta prior under the alternative hypothesis (required if prior_analysis = "beta").

scale

Numeric scalar. Scale parameter of the analysis prior under the alternative hypothesis (required if prior_analysis = "Moment").

prior_design

Character. Design prior under the alternative hypothesis: default beta ("d_beta"), beta ("beta"), normal-moment prior ("Moment"), or point ("Point").

k_d

Numeric scalar. Shape parameter of the design default beta prior under the alternative hypothesis given \alpha = \beta = \frac{1}{\kappa} (required if prior_design = "d_beta").

alpha_d

Numeric scalar. Alpha parameter of the design beta prior under the alternative hypothesis("beta").

beta_d

Numeric scalar. Beta Parameter of the design beta prior under the alternative hypothesis("beta").

location_d

Numeric scalar. Location parameter of the design prior under the alternative hypothesis. Required for prior_design = "Moment" and prior_design = "Point". For "Moment", it must satisfy -1 < location_d < 1. For "Point", it represents the true correlation and must satisfy direction-specific constraints: for alternative = "greater", h0 < location_d < 1; for alternative = "less", -1 < location_d < h0; and for alternative = "two.sided", -1 < location_d < 1 and location_d != h0.

scale_d

Numeric scalar. Scale parameter of the design normal-moment prior ("Moment") under the alternative hypothesis.

Details

Sample Size Determination Mode (when N = NULL):

If no sample size is provided, the function calculates the minimum sample size needed to achieve the desired configuration below. The user must provide:

The function iteratively finds the smallest sample size for which the probability of obtaining compelling evidence (i.e., true positive/negative rate) meets or exceeds true_rate, while the probability of misleading evidence (i.e., false positive/negative rate) does not exceed false_rate.

Fixed-sample Analysis Mode (when N is supplied):

If a positive integer sample size N is provided, the function computes the probabilities of obtaining compelling or misleading evidence for that fixed sample size. In this mode, the arguments type_rate, true_rate, and false_rate are ignored; only the Bayes factor threshold threshold is used.

Direction of the Alternative Hypothesis:

The argument alternative specifies the direction of the test and can be set to "two.sided", "greater", or "less".

Interval Null Hypothesis:

The interval null hypothesis can be specified using the argument ROPE, which defines a region of practical equivalence around the null value of h0. Thus, ROPE defines the interval of values considered practically equivalent to the null value by h0 + ROPE.

The required form of ROPE depends on the direction of alternative:

If ROPE = NULL, a point-null hypothesis is assumed.

Analysis Priors:

The user must specify the analysis prior under the alternative hypothesis using prior_analysis:

Design Priors (optional):

The design prior under the alternative hypothesis can optionally be specified using prior_design:

If prior_design is NULL, the analysis prior is used as the design prior.

Value

A list of class BFpower containing:

Examples

BFpower.cor(
   threshold = 3,
   true_rate = 0.8,
   false_rate = 0.05,
   h0 = 0,
   alternative = "greater",
   prior_analysis = "d_beta",
   k = 1,
   prior_design = "Point",
   location_d = 0.3)


Sample Size Determination for the Bayesian F-Test

Description

Perform sample size determination or power calculation of compelling and misleading evidence for a Bayesian F-test comparing a full model to a nested reduced model. Can handle both point-null and interval-null hypothesis, and allows specifying analysis and design priors.

Usage

BFpower.f.test(
  threshold,
  type_rate = "positive",
  true_rate,
  false_rate,
  N = NULL,
  p,
  k,
  ROPE = NULL,
  prior_analysis,
  rscale,
  f_m,
  dff,
  prior_design = NULL,
  rscale_d,
  f_m_d,
  dff_d
)

Arguments

threshold

Numeric scalar. Threshold for compelling evidence (must be \ge 1).

type_rate

Character. Either "positive" (control true/false positive rates) or "negative" (control true/false negative rates).

true_rate

Numeric scalar. Target true positive or negative rate (between 0.6 and 0.999) for sample size determination.

false_rate

Numeric scalar. Target false positive or false negative rate (between 0.001 and 0.1) for sample size determination.

N

Optional integer. Sample size for power calculation. If NULL, sample size determination is performed. If N of at least k + 1 is supplied, power calculation for a fixed sample size is performed.

p

Numeric integer. Number of predictors in the reduced model.

k

Numeric integer. Number of predictors in the full model (must satisfy k > p).

ROPE

Optional numeric scalar. Specifies the upper bound of the region of practical equivalence, whose lower bound is fixed at zero. Thus, ROPE defines the interval of values considered practically equivalent to the null value. If provided, it must be positive.

For example, if ROPE = 0.2, then the region of practical equivalence is [0, 0.2].

prior_analysis

Character. The analysis prior model under the alternative hypothesis: "effectsize" or "Moment".

rscale

Numeric scalar. Scale parameter for the effect-size analysis prior under the alternative hypothesis (required if prior_analysis = "effectsize").

f_m

Numeric scalar. Cohen's f location parameter for the analysis prior under the alternative hypothesis.

dff

Numeric scalar. Degrees of freedom for the analysis prior under the alternative hypothesis. For the Moment prior, this must be \ge 3.

prior_design

Character. Design prior model under the alternative hypothesis: "effectsize", "Moment", or "Point".

rscale_d

Numeric scalar. Scale parameter for the effect-size design prior under the alternative hypothesis (required if prior_design = "effectsize").

f_m_d

Numeric scalar. Cohen's f location parameter for the design prior under the alternative hypothesis.

dff_d

Numeric scalar. Degrees of freedom for the design prior under the alternative hypothesis. For the Moment prior, this must be \ge 3.

Details

Sample Size Determination Mode (when N = NULL):

If no sample size is provided, the function calculates the minimum sample size needed to achieve the desired configuration below. The user must provide:

The function iteratively finds the smallest sample size for which the probability of obtaining compelling evidence (i.e., true positive/negative rate) meets or exceeds true_rate, while the probability of misleading evidence (i.e., false positive/negative rate) does not exceed false_rate.

Fixed-sample Analysis Mode (when N is supplied):

If a positive integer sample size N is provided, the function computes the probabilities of obtaining compelling or misleading evidence for that fixed sample size. In this mode, type_rate, true_rate, and false_rate are ignored; only the Bayes factor threshold threshold is used. The supplied N must satisfy N >= k + 1.

Interval Null Hypothesis:

The interval null hypothesis can be specified using the argument ROPE, which defines the upper bound of the region of practical equivalence, whose lower bound is fixed at zero. Thus, ROPE defines the interval of values considered practically equivalent to the null value. If provided, it must be positive.

Example: If ROPE = 0.2, then the effective null interval is [0, 0.2].

If ROPE = NULL, a point-null hypothesis is assumed.

Analysis Priors:

The user must specify the analysis prior under the alternative hypothesis using prior_analysis:

Design Priors (optional):

The design prior under the alternative hypothesis can optionally be specified using prior_design:

If prior_design is NULL, the analysis prior is used as the design prior.

Value

A list of class BFpower containing:

If sample size determination fails, the function returns NaN and prints a message.

Examples

BFpower.f.test(
 threshold = 3,
 true_rate = 0.8,
 false_rate = 0.05,
 p = 3,
 k = 4,
 prior_analysis = "effectsize",
 rscale = 0.18,
 f_m = 0.1,
 dff = 3,
 prior_design = "Point",
 f_m_d = 0.1)


Sample Size Determination for the Bayesian Test of Two Proportions

Description

Perform sample size determination or power calculation of compelling and misleading evidence for a Bayesian test of two proportions. Under the null hypothesis, \theta_1 = \theta_2 and it is assigned a shared analysis beta prior. Under the alternative hypothesis, \theta_1 and \theta_2 are treated as distinct parameters and are assigned independent beta analysis priors. The function supports the specification of beta and point design priors.

Usage

BFpower.props(
  threshold,
  type_rate = "positive",
  true_rate,
  N1 = NULL,
  N2 = NULL,
  a0,
  b0,
  a1,
  b1,
  a2,
  b2,
  prior_design_1 = "same",
  a1d,
  b1d,
  dp1,
  prior_design_2 = "same",
  a2d,
  b2d,
  dp2
)

Arguments

threshold

Numeric scalar. Threshold of compelling evidence (must be \ge 1).

type_rate

Character. Choose "positive" to control true positive rate or "negative" to control true negative rate.

true_rate

Numeric scalar. Target true positive rate (between 0.6 and 0.999) for sample size determination.

N1

Optional positive integer. Sample size for group 1 for power calculation. Must be supplied together with N2; if both are NULL, sample size determination is performed.

N2

Optional positive integer. Sample size for group 2 for power calculation. Must be supplied together with N1; if both are NULL, sample size determination is performed.

a0

Positive numeric scalar. Alpha parameter of the Beta analysis prior under the null hypothesis.

b0

Positive numeric scalar. Beta parameter of the Beta analysis prior under the null hypothesis.

a1

Positive numeric scalar. Alpha parameter of the Beta analysis prior for group 1 under the alternative hypothesis.

b1

Positive numeric scalar. Beta parameter of the Beta analysis prior for group 1 under the alternative hypothesis.

a2

Positive numeric scalar. Alpha parameter of the Beta analysis prior for group 2 under the alternative hypothesis.

b2

Positive numeric scalar. Beta parameter of the Beta analysis prior for group 2 under the alternative hypothesis.

prior_design_1

Character. The design prior of group 1: "beta", "Point", or "same" (if "same", the design prior is identical to the analysis prior).

a1d

Positive numeric scalar. Alpha parameter of the design prior for group 1 (required if prior_design_1 = "beta").

b1d

Positive numeric scalar. Beta parameter of the design prior for group 1 (required if prior_design_1 = "beta").

dp1

Numeric scalar. True proportion for group 1 in the design prior (required if prior_design_1 = "Point").

prior_design_2

Character. The design prior of group 2: "beta", "Point", or "same" (if "same", the design prior is identical to the analysis prior).

a2d

Positive numeric scalar. Alpha parameter of the design prior for group 2 (required if prior_design_2 = "beta").

b2d

Positive numeric scalar. Beta parameter of the design prior for group 2 (required if prior_design_2 = "beta").

dp2

Numeric scalar. True proportion for group 2 in the design prior (required if prior_design_2 = "Point").

Details

Sample Size Determination Mode (when N1 = NULL and N2 = NULL):

If no sample sizes are provided for the two groups, the function calculates the minimum sample sizes needed to achieve the desired configuration. The user must provide:

The function iteratively finds the smallest sample sizes for which the probability of obtaining compelling evidence (i.e., true positive/negative rate) meets or exceeds true_rate.

Fixed-sample Analysis Mode (when N1 and N2 are supplied):

If positive integer sample sizes N1 and N2 are provided, the function computes the probabilities of obtaining compelling or misleading evidence for these fixed sample sizes. In this mode, type_rate and true_rate are ignored; only the Bayes factor threshold threshold is used.

Analysis Priors:

The user must specify the analysis priors under the null and alternative hypotheses:

Design Priors (optional):

Design priors for the alternative hypothesis can optionally be specified:

Value

A list of class BFpower containing:

Examples

BFpower.props(
threshold = 3,
true_rate = 0.8,
a0 = 1,
b0 = 1,
a1 = 156,
b1 = 339,
a2 = 151,
b2 = 339)


Sample Size Determination for the One-Sample Bayesian t-Test

Description

Perform sample size determination or power calculation of compelling and misleading evidence for a one-sample Bayesian t-test. Can handle both point-null and interval-null hypothesis, and allows specifying analysis and design priors.

Usage

BFpower.ttest.OneSample(
  threshold,
  type_rate = "positive",
  true_rate,
  false_rate,
  N = NULL,
  alternative,
  ROPE = NULL,
  prior_analysis,
  location,
  scale,
  dff,
  prior_design = NULL,
  location_d,
  scale_d,
  dff_d
)

Arguments

threshold

Numeric scalar. Threshold of compelling evidence (must be \ge 1).

type_rate

Character. Either "positive" (controls true/false positive rates) or "negative" (controls true/false negative rates).

true_rate

Numeric scalar. Target true positive or negative rate (between 0.6 and 0.999) for sample size determination.

false_rate

Numeric scalar. Target false positive or false negative rate (between 0.001 and 0.1) for sample size determination.

N

Numeric integer. Sample size for power calculation. If NULL, sample size determination is performed.

alternative

Character. The direction of the alternative hypothesis : two-sided ("two.sided" ), right-sided ("greater"), or left-sided ("less").

ROPE

Optional numeric vector or scalar. Specifies the region of practical equivalence relative to the point null value of zero. Thus, ROPE defines the interval of values considered practically equivalent to the null value.

For alternative = "two.sided", argument ROPE must be a numeric vector of length 2 with two distinct finite values such that the first element is negative and the second element is positive (i.e., ROPE[1] < 0 < ROPE[2]). Example: If alternative = "two.sided" and ROPE = c(-0.2, 0.2), then the region of practical equivalence is [-0.2, 0.2].

For alternative = "greater", argument ROPE must be a numeric scalar > 0. Example: If alternative = "greater" and ROPE = 0.2, then the region of practical equivalence is [0, 0.2].

For alternative = "less", argument ROPE must be a numeric scalar < 0.Example: If alternative = "less" and ROPE = -0.2, then the region of practical equivalence is [-0.2, 0].

prior_analysis

Character. The analysis prior under the alternative hypothesis: "Normal", "Moment" (normal-moment prior), or "t-distribution".

location

Numeric scalar. Location parameter for the analysis prior under the alternative hypothesis.

scale

Numeric scalar. Scale parameter for the analysis prior under the alternative hypothesis (must be > 0).

dff

Numeric scalar. Degrees of freedom for the analysis prior under the alternative hypothesis (required if prior_analysis = "t-distribution").

prior_design

Optional Character. The design prior under the alternative hypothesis: "Normal", "Moment" (normal-moment prior), "t-distribution", or "Point".

location_d

Numeric scalar. Location parameter for the design prior under the alternative hypothesis.

scale_d

Numeric scalar. Scale parameter for the design prior under the alternative hypothesis. Required if prior_design is "Normal", "Moment", or "t-distribution"; must be > 0. Not used when prior_design = "Point".

dff_d

Numeric scalar. Degrees of freedom for the design prior under the alternative hypothesis (required if prior_design = "t-distribution").

Details

Sample Size Determination Mode (when N = NULL):

If no sample size is provided, the function calculates the minimum sample size needed to achieve the desired configuration below. The user must provide:

The function iteratively finds the smallest sample size for which the probability of obtaining compelling evidence (i.e., true positive/negative rate) meets or exceeds true_rate, while the probability of misleading evidence (i.e., false positive/negative rate) does not exceed false_rate.

Fixed-sample Analysis Mode (when N is supplied):

If a positive integer sample size N is provided, the function computes the probabilities of obtaining compelling or misleading evidence for that fixed sample size. In this mode, the arguments type_rate, true_rate, and false_rate are ignored; only the Bayes factor threshold threshold is used.

Direction of the Alternative Hypothesis:

The argument alternative specifies the direction of the test and can be set to "two.sided", "greater", or "less".

Interval Null Hypothesis:

The interval null hypothesis can be specified using the argument ROPE, which defines a region of practical equivalence around the null value of 0.

The required form of ROPE depends on the direction of alternative:

If ROPE = NULL, a point-null hypothesis is assumed.

Analysis Priors:

The user must specify the analysis prior under the alternative hypothesis using prior_analysis:

Design Priors (optional):

The design prior under the alternative hypothesis can optionally be specified using prior_design:

If prior_design is NULL, the analysis prior is used as the design prior.

Value

An object of class BFpower containing:

Examples

BFpower.ttest.OneSample(
 threshold = 3,
 true_rate = 0.8,
 false_rate = 0.05,
 alternative = "two.sided",
 prior_analysis = "t-distribution",
 location = 0,
 scale = 0.707,
 dff = 1
)

Sample Size Determination for the Two-Sample Bayesian t-Test

Description

Perform sample size determination or power calculation of compelling and misleading evidence for a two-sample Bayesian t-test with equal variances. Can handle both point-null and interval-null hypothesis, and allows specifying analysis and design priors.

Usage

BFpower.ttest.TwoSample(
  threshold,
  type_rate = "positive",
  true_rate,
  false_rate,
  N1 = NULL,
  N2 = NULL,
  r = NULL,
  alternative,
  ROPE = NULL,
  prior_analysis,
  location,
  scale,
  dff,
  prior_design = NULL,
  location_d,
  scale_d,
  dff_d
)

Arguments

threshold

Numeric scalar. Threshold for compelling evidence (must be \ge 1).

type_rate

Character. either "positive" or "negative"; determines whether to control true/false positive or true/false negative rates .

true_rate

Numeric scalar. Target true positive or negative rate .

false_rate

Numeric scalar. Target false positive or false negative rate (between 0.001 and 0.1) for sample size determination.

N1

Positive numeric integer. Sample size for group 1 for power calculation, used if r = NULL (must be \ge 2).

N2

Positive numeric integer. Sample size for group 2 for power calculation, used if r = NULL (must be \ge 2).

r

Optional numeric scalar. Ratio of sample size N2 / N1 for sample size determination (used if N1 and N2 are NULL).

alternative

Character. The direction of the alternative hypothesis : two-sided ("two.sided" ), right-sided ("greater"), or left-sided ("less").

ROPE

Optional numeric vector or scalar. Specifies the region of practical equivalence relative to the point null value of zero. Thus, ROPE defines the interval of values considered practically equivalent to the null value.

For alternative = "two.sided", argument ROPE must be a numeric vector of length 2 with two distinct finite values such that the first element is negative and the second element is positive (i.e., ROPE[1] < 0 < ROPE[2]). Example: If alternative = "two.sided" and ROPE = c(-0.2, 0.2), then the region of practical equivalence is [-0.2, 0.2].

For alternative = "greater", argument ROPE must be a numeric scalar > 0. Example: If alternative = "greater" and ROPE = 0.2, then the region of practical equivalence is [0, 0.2].

For alternative = "less", argument ROPE must be a numeric scalar < 0.Example: If alternative = "less" and ROPE = -0.2, then the region of practical equivalence is [-0.2, 0].

prior_analysis

Character. The analysis prior under the alternative hypothesis: "Normal", "Moment" (normal-moment prior), or "t-distribution".

location

Numeric scalar. Location parameter for the analysis prior under the alternative hypothesis.

scale

Numeric scalar > 0. Scale parameter for the analysis prior under the alternative hypothesis.

dff

Numeric scalar. Degrees of freedom for the analysis prior (required if prior_analysis = "t-distribution"; ignored otherwise).

prior_design

Optional Character. Design prior under the alternative: "Normal", "Moment"(normal-moment prior), "t-distribution", or "Point".

location_d

Numeric scalar. Location parameter for the design prior under the alternative hypothesis.

scale_d

Numeric scalar. Scale parameter for the design prior under the alternative hypothesis. Required only if prior_design is "Normal", "Moment", or "t-distribution"; must be > 0. Not used when prior_design = "Point".

dff_d

Numeric scalar. Degrees of freedom for the design prior under the alternative hypothesis (required if prior_design = "t-distribution"; ignored otherwise).

Details

Sample size determination mode (when N1 = NULL and N2 = NULL, but r is provided):

If no sample size is provided, the function calculates the minimum sample size needed to achieve the desired configuration below. The user must provide:

The function iteratively finds the smallest sample size N1 and N2 = r * N1 for which the probability of obtaining compelling evidence (i.e., true positive/negative rate) meets or exceeds true_rate, while the probability of misleading evidence (i.e., false positive/negative rate) does not exceed false_rate.

Fixed-sample analysis mode (when N1 and N2 are supplied):

If positive integer sample sizes N1 and N2 are provided, the function computes the probabilities of obtaining compelling or misleading evidence for that fixed sample size. In this mode, the arguments type_rate, r, true_rate, and false_rate are ignored; only the Bayes factor threshold threshold is used.

Direction of the Alternative Hypothesis:

The argument alternative specifies the direction of the test and can be set to "two.sided", "greater", or "less".

Interval Null Hypothesis:

The interval null hypothesis can be specified using the argument ROPE, which defines a region of practical equivalence around the null value of 0.

The required form of ROPE depends on the direction of alternative:

If ROPE = NULL, a point-null hypothesis is assumed.

Analysis Priors:

The user must specify the analysis prior under the alternative hypothesis using prior_analysis:

Design Priors (optional):

The design prior under the alternative hypothesis can optionally be specified using prior_design:

If prior_design is NULL, the analysis prior is used as the design prior.

Value

An object of class BFpower containing:

Examples

BFpower.ttest.TwoSample(
 threshold = 3,
 type_rate = "negative",
 true_rate = 0.8,
 false_rate = 0.05,
 r = 1,
 alternative = "two.sided",
 ROPE = c(-0.36, 0.36),
 prior_analysis = "Normal",
 location = -0.23,
 scale = 0.2,
 dff = 1)

Launch the BayesPower Shiny Application

Description

This function starts the interactive Shiny application for Bayesian power analysis using Bayes factors. The app provides a graphical user interface built with shiny.

Usage

BayesPower_BayesFactor()

Details

The application includes both the UI and server components, which are defined internally in the package. When run, a browser window or RStudio viewer pane will open to display the interface.

Value

No return value, called for its side effects.

Examples

if (interactive()) {
  # Launch the Shiny application
  BayesPower_BayesFactor()
}

Plot Method for BFpower Objects

Description

Visualizes a "BFpower" object.

Usage

## S3 method for class 'BFpower'
plot(x, plot_power = FALSE, plot_rel = FALSE, ...)

Arguments

x

A "BFpower" object returned by one of the BFpower functions listed in the section Details.

plot_power

Logical. If TRUE, the power-related plots are returned.

plot_rel

Logical. If TRUE, the plot showing the relationship between the data and the Bayes factors is returned.

...

Additional arguments (currently unused; included for method consistency).

Details

This plot method can return up to three plots (or five plots for testing two-proportions) based on the information from the "BFpower" object:

The object can be generated by any of the following functions: BF10.ttest.OneSample, BF10.ttest.TwoSample, BF10.cor, BFpower.f.test, BF10.bin.test, or BF10.props.

Value

A list of up to three ggplot objects.

Examples

results <- BFpower.cor(
  alternative = "greater",
  h0 = 0,
  threshold = 3,
  true_rate = 0.8,
  false_rate = 0.05,
  prior_analysis = "beta",
  alpha = 1,
  beta = 1,
  prior_design = "Point",
  location_d = 0.3
)
print(results)
plot(results, plot_power = TRUE, plot_rel = TRUE)

Print Method for BFpower Objects

Description

Displays the results of a "BFpower" object.

Usage

## S3 method for class 'BFpower'
print(x, ...)

Arguments

x

A "BFpower" object returned by one of the BFpower functions listed in the section Details.

...

Additional arguments (currently unused; included for method consistency).

Details

This method prints key information from the "BFpower" object, including the type of hypothesis specification, priors, true and false rates, and required sample. The object can be generated by any of the following functions: BFpower.ttest.OneSample, BFpower.ttest.TwoSample, BFpower.cor, BFpower.f.test, BFpower.bin, or BFpower.props.

Value

Invisibly returns the input "BFpower" object.

Examples

results <- BFpower.ttest.OneSample(
  alternative = "two.sided",
  threshold = 3,
  true_rate = 0.8,
  false_rate = 0.05,
  prior_analysis = "t-distribution",
  location = 0,
  scale = 0.707,
  dff = 1
)
print(results)

Print Method for BFvalue Objects

Description

Displays the results of a "BFvalue" object.

Usage

## S3 method for class 'BFvalue'
print(x, ...)

Arguments

x

A "BFvalue" object returned by one of the BF10 testing functions listed in Details.

...

Additional arguments (currently unused; included for method consistency).

Details

This method prints key results from a Bayesian test, including the Bayes factor and relevant test statistics with frequentist test result. The object can be generated by any of the following functions: BF10.ttest.OneSample, BF10.ttest.TwoSample, BF10.cor, BFpower.f.test BF10.bin.test, or BF10.props.

Value

Invisibly returns the input "BFvalue" object.

Examples

result <- BF10.ttest.OneSample(
 tval = 2,
 df = 50,
 prior_analysis = "t-distribution",
 location = 0,
 scale = 0.707,
 dff = 1,
 alternative = "two.sided")
print(result)