View source: R/pairwise-comparisons.R
| pairwise_comparisons | R Documentation |
Calculate parametric, non-parametric, robust, and Bayes Factor pairwise comparisons between group levels with corrections for multiple testing.
pairwise_comparisons(
data,
x,
y,
subject.id = NULL,
type = "parametric",
paired = FALSE,
var.equal = FALSE,
tr = 0.2,
bf.prior = 0.707,
p.adjust.method = "holm",
digits = 2L,
exact = FALSE,
...
)
data |
A data frame (or a tibble) from which variables specified are to
be taken. Other data types (e.g., matrix, table, array, etc.) will not
be accepted. Additionally, grouped data frames from |
x |
The grouping (or independent) variable from |
y |
The response (or outcome or dependent) variable from |
subject.id |
Relevant in case of a repeated measures or within-subjects
design (i.e., |
type |
A character specifying the type of statistical approach:
You can specify just the initial letter (e.g. |
paired |
Logical that decides whether the experimental design is
repeated measures/within-subjects or between-subjects. The default is
|
var.equal |
a logical variable indicating whether to treat the
two variances as being equal. If |
tr |
Trim level for the mean when carrying out |
bf.prior |
A number between |
p.adjust.method |
Adjustment method for p-values for multiple
comparisons. Possible methods are: |
digits |
Number of digits for rounding or significant figures. May also
be |
exact |
A logical indicating whether you want exact p-values to be computed.
Relevant only when |
... |
Additional arguments passed to the underlying pairwise test
function for the parametric and non-parametric tests (see the table
below). Ignored for robust tests. For Bayesian tests, they are passed to
the frequentist test ( |
The returned object is a tibble data frame with the additional class
"statsExpressions". The exact set of columns depends on the test and, for
functions that accept a type argument, on the chosen analysis (parametric,
non-parametric, robust, or Bayesian). Any given call therefore returns some
(not all) of the columns below.
Hypothesis testing
statistic: the numeric value of a statistic
df: the numeric value of a parameter being modeled (often degrees
of freedom for the test)
df.error and df: relevant only if the statistic in question has
two degrees of freedom (e.g. anova)
p.value: the p-value associated with the observed statistic (two-sided
unless a one-sided alternative is requested, where supported)
method: the name of the inferential statistical test
Effect size estimation
effectsize: the name of the effect size
estimate: estimated value of the effect size
conf.level: the coverage level of the confidence/credible interval
(e.g. 0.95); the interval itself spans conf.low to conf.high
conf.low: lower bound for the effect size estimate
conf.high: upper bound for the effect size estimate
conf.method: method used to compute the confidence/credible interval
conf.distribution: statistical distribution for the effect
Bayesian analysis (only when type = "bayes")
bf10: Bayes factor for the alternative hypothesis relative to the null
log_e_bf10: natural logarithm of the Bayes factor (present for most, but
not all, Bayesian analyses)
prior.distribution, prior.scale, prior.location: prior specification
used to compute the Bayes factor and posterior estimates
Pairwise comparisons (for pairwise_comparisons() and
pairwise_contingency_table())
group1, group2: the two levels being compared
p.adjust.method: the adjustment method used for multiple comparisons
p.value.adj: the adjusted p-value; returned by
pairwise_contingency_table(). Note that pairwise_comparisons() instead
folds the adjusted value into p.value (and does not return a separate
p.value.adj column)
Common columns
n.obs: number of observations
expression: a list-column of pre-formatted
plotmath expressions; each
element is a language object (not a character string) containing the
statistical details, ready to be used in {ggplot2} (e.g. in labs() or
annotate())
For a per-function, column-by-column breakdown of the output (and an explanation
of the internal add_expression_col() engine that builds the expression
column), see the Return value schema
article. For more examples, see the data frame output vignette.
The table below provides summary about:
statistical test carried out for inferential statistics
type of effect size estimate and a measure of uncertainty for this estimate
functions used internally to compute these details
Hypothesis testing
| Type | Equal variance? | Test | p-value adjustment? | Function used |
| Parametric | No | Games-Howell test | Yes | PMCMRplus::gamesHowellTest() |
| Parametric | Yes | Student's t-test | Yes | stats::pairwise.t.test() |
| Non-parametric | No | Dunn test | Yes | PMCMRplus::kwAllPairsDunnTest() |
| Robust | No | Yuen's trimmed means test | Yes | WRS2::lincon() |
| Bayesian | NA | Student's t-test | NA | BayesFactor::ttestBF() |
Effect size estimation
Not supported.
Data requirement: Paired pairwise tests assume exactly one observation per subject per condition. If your data has multiple trials per cell, aggregate first (e.g., take the mean).
Hypothesis testing
| Type | Test | p-value adjustment? | Function used |
| Parametric | Student's t-test | Yes | stats::pairwise.t.test() |
| Non-parametric | Durbin-Conover test | Yes | PMCMRplus::durbinAllPairsTest() |
| Robust | Yuen's trimmed means test | Yes | WRS2::rmmcp() |
| Bayesian | Student's t-test | NA | BayesFactor::ttestBF() |
Effect size estimation
Not supported.
Patil, I., (2021). statsExpressions: R Package for Tidy Dataframes and Expressions with Statistical Details. Journal of Open Source Software, 6(61), 3236, https://doi.org/10.21105/joss.03236
For more, see: https://www.indrapatil.com/ggstatsplot/articles/web_only/pairwise.html
# for reproducibility
set.seed(123)
library(statsExpressions)
#------------------- between-subjects design ----------------------------
# parametric
# if `var.equal = TRUE`, then Student's t-test will be run
pairwise_comparisons(
data = mtcars,
x = cyl,
y = wt,
type = "parametric",
var.equal = TRUE,
paired = FALSE,
p.adjust.method = "none"
)
# if `var.equal = FALSE`, then Games-Howell test will be run
pairwise_comparisons(
data = mtcars,
x = cyl,
y = wt,
type = "parametric",
var.equal = FALSE,
paired = FALSE,
p.adjust.method = "bonferroni"
)
# non-parametric (Dunn test)
pairwise_comparisons(
data = mtcars,
x = cyl,
y = wt,
type = "nonparametric",
paired = FALSE,
p.adjust.method = "none"
)
# robust (Yuen's trimmed means *t*-test)
pairwise_comparisons(
data = mtcars,
x = cyl,
y = wt,
type = "robust",
paired = FALSE,
p.adjust.method = "fdr"
)
# Bayes Factor (Student's *t*-test)
pairwise_comparisons(
data = mtcars,
x = cyl,
y = wt,
type = "bayes",
paired = FALSE
)
#------------------- within-subjects design ----------------------------
# parametric (Student's *t*-test)
pairwise_comparisons(
data = bugs_long,
x = condition,
y = desire,
subject.id = subject,
type = "parametric",
paired = TRUE,
p.adjust.method = "BH"
)
# non-parametric (Durbin-Conover test)
pairwise_comparisons(
data = bugs_long,
x = condition,
y = desire,
subject.id = subject,
type = "nonparametric",
paired = TRUE,
p.adjust.method = "BY"
)
# robust (Yuen's trimmed means t-test)
pairwise_comparisons(
data = bugs_long,
x = condition,
y = desire,
subject.id = subject,
type = "robust",
paired = TRUE,
p.adjust.method = "hommel"
)
# Bayes Factor (Student's *t*-test)
pairwise_comparisons(
data = bugs_long,
x = condition,
y = desire,
subject.id = subject,
type = "bayes",
paired = TRUE
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.