pairwise_comparisons: Multiple pairwise comparison tests with tidy data

Description Usage Arguments Value References Examples

View source: R/pairwise_comparisons.R

Description

Calculate parametric, non-parametric, robust, and Bayes Factor pairwise comparisons between group levels with corrections for multiple testing.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
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",
  k = 2L,
  ...
)

Arguments

data

A dataframe (or a tibble) from which variables specified are to be taken. Other data types (e.g., matrix,table, array, etc.) will not be accepted.

x

The grouping (or independent) variable from the dataframe data. In case of a repeated measures or within-subjects design, if subject.id argument is not available or not explicitly specified, the function assumes that the data has already been sorted by such an id by the user and creates an internal identifier. So if your data is not sorted, the results can be inaccurate when there are more than two levels in x and there are NAs present. The data is expected to be sorted by user in subject-1,subject-2, ..., pattern.

y

The response (or outcome or dependent) variable from the dataframe data.

subject.id

Relevant in case of a repeated measures or within-subjects design (paired = TRUE, i.e.), it specifies the subject or repeated measures identifier. Important: Note that if this argument is NULL (which is the default), the function assumes that the data has already been sorted by such an id by the user and creates an internal identifier. So if your data is not sorted and you leave this argument unspecified, the results can be inaccurate when there are more than two levels in x and there are NAs present.

type

A character specifying the type of statistical approach:

  • "parametric"

  • "nonparametric"

  • "robust"

  • "bayes"

You can specify just the initial letter.

paired

Logical that decides whether the experimental design is repeated measures/within-subjects or between-subjects. The default is FALSE.

var.equal

a logical variable indicating whether to treat the two variances as being equal. If TRUE then the pooled variance is used to estimate the variance otherwise the Welch (or Satterthwaite) approximation to the degrees of freedom is used.

tr

Trim level for the mean when carrying out robust tests. In case of an error, try reducing the value of tr, which is by default set to 0.2. Lowering the value might help.

bf.prior

A number between 0.5 and 2 (default 0.707), the prior width to use in calculating Bayes factors and posterior estimates. In addition to numeric arguments, several named values are also recognized: "medium", "wide", and "ultrawide", corresponding to r scale values of 1/2, sqrt(2)/2, and 1, respectively. In case of an ANOVA, this value corresponds to scale for fixed effects.

p.adjust.method

Adjustment method for p-values for multiple comparisons. Possible methods are: "holm" (default), "hochberg", "hommel", "bonferroni", "BH", "BY", "fdr", "none".

k

Number of digits after decimal point (should be an integer) (Default: k = 2L).

...

Additional arguments passed to other methods.

Value

A tibble dataframe containing two columns corresponding to group levels being compared with each other (group1 and group2) and p.value column corresponding to this comparison. The dataframe will also contain a p.value.label column containing a label for this p-value, in case this needs to be displayed in ggsignif::geom_ggsignif. In addition to these common columns across the different types of statistics, there will be additional columns specific to the type of test being run.

This function provides a unified syntax to carry out pairwise comparison tests and internally relies on other packages to carry out these tests. For more details about the included tests, see the documentation for the respective functions:

References

For more, see: https://indrajeetpatil.github.io/ggstatsplot/articles/web_only/pairwise.html

Examples

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
if (require("PMCMRplus")) {
  # for reproducibility
  set.seed(123)
  library(ggstatsplot)
  library(statsExpressions) # for data

  # show all columns and make the column titles bold
  # as a user, you don't need to do this; this is just for the package website
  options(tibble.width = Inf, pillar.bold = TRUE, pillar.neg = TRUE, pillar.subtle_num = TRUE)

  #------------------- 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
  )
}

ggstatsplot documentation built on Jan. 15, 2022, 1:08 a.m.