ggbetweenstats {ggstatsplot} | R Documentation |
Box/Violin plots for between-subjects comparisons
Description
A combination of box and violin plots along with jittered data points for between-subjects designs with statistical details included in the plot as a subtitle.
Usage
ggbetweenstats(
data,
x,
y,
type = "parametric",
pairwise.display = "significant",
p.adjust.method = "holm",
effsize.type = "unbiased",
bf.prior = 0.707,
bf.message = TRUE,
results.subtitle = TRUE,
xlab = NULL,
ylab = NULL,
caption = NULL,
title = NULL,
subtitle = NULL,
digits = 2L,
var.equal = FALSE,
conf.level = 0.95,
nboot = 100L,
tr = 0.2,
centrality.plotting = TRUE,
centrality.type = type,
centrality.point.args = list(size = 5, color = "darkred"),
centrality.label.args = list(size = 3, nudge_x = 0.4, segment.linetype = 4,
min.segment.length = 0),
point.args = list(position = ggplot2::position_jitterdodge(dodge.width = 0.6), alpha =
0.4, size = 3, stroke = 0, na.rm = TRUE),
boxplot.args = list(width = 0.3, alpha = 0.2, na.rm = TRUE),
violin.args = list(width = 0.5, alpha = 0.2, na.rm = TRUE),
ggsignif.args = list(textsize = 3, tip_length = 0.01, na.rm = TRUE),
ggtheme = ggstatsplot::theme_ggstatsplot(),
package = "RColorBrewer",
palette = "Dark2",
ggplot.component = NULL,
...
)
Arguments
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 |
type |
A character specifying the type of statistical approach:
You can specify just the initial letter. |
pairwise.display |
Decides which pairwise comparisons to display. Available options are:
You can use this argument to make sure that your plot is not uber-cluttered
when you have multiple groups being compared and scores of pairwise
comparisons being displayed. If set to |
p.adjust.method |
Adjustment method for p-values for multiple
comparisons. Possible methods are: |
effsize.type |
Type of effect size needed for parametric tests. The
argument can be |
bf.prior |
A number between |
bf.message |
Logical that decides whether to display Bayes Factor in
favor of the null hypothesis. This argument is relevant only for
parametric test (Default: |
results.subtitle |
Decides whether the results of statistical tests are
to be displayed as a subtitle (Default: |
xlab |
Label for |
ylab |
Labels for |
caption |
The text for the plot caption. This argument is relevant only
if |
title |
The text for the plot title. |
subtitle |
The text for the plot subtitle. Will work only if
|
digits |
Number of digits for rounding or significant figures. May also
be |
var.equal |
a logical variable indicating whether to treat the
two variances as being equal. If |
conf.level |
Scalar between |
nboot |
Number of bootstrap samples for computing confidence interval
for the effect size (Default: |
tr |
Trim level for the mean when carrying out |
centrality.plotting |
Logical that decides whether centrality tendency
measure is to be displayed as a point with a label (Default:
If you want default centrality parameter, you can specify this using
|
centrality.type |
Decides which centrality parameter is to be displayed.
The default is to choose the same as
Just as |
centrality.point.args , centrality.label.args |
A list of additional aesthetic
arguments to be passed to |
point.args |
A list of additional aesthetic arguments to be passed to
the |
boxplot.args |
A list of additional aesthetic arguments passed on to
|
violin.args |
A list of additional aesthetic arguments to be passed to
the |
ggsignif.args |
A list of additional aesthetic
arguments to be passed to |
ggtheme |
A |
package , palette |
Name of the package from which the given palette is to
be extracted. The available palettes and packages can be checked by running
|
ggplot.component |
A |
... |
Currently ignored. |
Details
For details, see: https://indrajeetpatil.github.io/ggstatsplot/articles/web_only/ggbetweenstats.html
Summary of graphics
graphical element | geom used | argument for further modification |
raw data | ggplot2::geom_point() | point.args |
box plot | ggplot2::geom_boxplot() | boxplot.args |
density plot | ggplot2::geom_violin() | violin.args |
centrality measure point | ggplot2::geom_point() | centrality.point.args |
centrality measure label | ggrepel::geom_label_repel() | centrality.label.args |
pairwise comparisons | ggsignif::geom_signif() | ggsignif.args |
Centrality measures
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
Type | Measure | Function used |
Parametric | mean | datawizard::describe_distribution() |
Non-parametric | median | datawizard::describe_distribution() |
Robust | trimmed mean | datawizard::describe_distribution() |
Bayesian | MAP | datawizard::describe_distribution() |
Two-sample tests
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
between-subjects
Hypothesis testing
Type | No. of groups | Test | Function used |
Parametric | 2 | Student's or Welch's t-test | stats::t.test() |
Non-parametric | 2 | Mann-Whitney U test | stats::wilcox.test() |
Robust | 2 | Yuen's test for trimmed means | WRS2::yuen() |
Bayesian | 2 | Student's t-test | BayesFactor::ttestBF() |
Effect size estimation
Type | No. of groups | Effect size | CI available? | Function used |
Parametric | 2 | Cohen's d, Hedge's g | Yes | effectsize::cohens_d() , effectsize::hedges_g() |
Non-parametric | 2 | r (rank-biserial correlation) | Yes | effectsize::rank_biserial() |
Robust | 2 | Algina-Keselman-Penfield robust standardized difference | Yes | WRS2::akp.effect() |
Bayesian | 2 | difference | Yes | bayestestR::describe_posterior() |
within-subjects
Hypothesis testing
Type | No. of groups | Test | Function used |
Parametric | 2 | Student's t-test | stats::t.test() |
Non-parametric | 2 | Wilcoxon signed-rank test | stats::wilcox.test() |
Robust | 2 | Yuen's test on trimmed means for dependent samples | WRS2::yuend() |
Bayesian | 2 | Student's t-test | BayesFactor::ttestBF() |
Effect size estimation
Type | No. of groups | Effect size | CI available? | Function used |
Parametric | 2 | Cohen's d, Hedge's g | Yes | effectsize::cohens_d() , effectsize::hedges_g() |
Non-parametric | 2 | r (rank-biserial correlation) | Yes | effectsize::rank_biserial() |
Robust | 2 | Algina-Keselman-Penfield robust standardized difference | Yes | WRS2::wmcpAKP() |
Bayesian | 2 | difference | Yes | bayestestR::describe_posterior() |
One-way ANOVA
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
between-subjects
Hypothesis testing
Type | No. of groups | Test | Function used |
Parametric | > 2 | Fisher's or Welch's one-way ANOVA | stats::oneway.test() |
Non-parametric | > 2 | Kruskal-Wallis one-way ANOVA | stats::kruskal.test() |
Robust | > 2 | Heteroscedastic one-way ANOVA for trimmed means | WRS2::t1way() |
Bayes Factor | > 2 | Fisher's ANOVA | BayesFactor::anovaBF() |
Effect size estimation
Type | No. of groups | Effect size | CI available? | Function used |
Parametric | > 2 | partial eta-squared, partial omega-squared | Yes | effectsize::omega_squared() , effectsize::eta_squared() |
Non-parametric | > 2 | rank epsilon squared | Yes | effectsize::rank_epsilon_squared() |
Robust | > 2 | Explanatory measure of effect size | Yes | WRS2::t1way() |
Bayes Factor | > 2 | Bayesian R-squared | Yes | performance::r2_bayes() |
within-subjects
Hypothesis testing
Type | No. of groups | Test | Function used |
Parametric | > 2 | One-way repeated measures ANOVA | afex::aov_ez() |
Non-parametric | > 2 | Friedman rank sum test | stats::friedman.test() |
Robust | > 2 | Heteroscedastic one-way repeated measures ANOVA for trimmed means | WRS2::rmanova() |
Bayes Factor | > 2 | One-way repeated measures ANOVA | BayesFactor::anovaBF() |
Effect size estimation
Type | No. of groups | Effect size | CI available? | Function used |
Parametric | > 2 | partial eta-squared, partial omega-squared | Yes | effectsize::omega_squared() , effectsize::eta_squared() |
Non-parametric | > 2 | Kendall's coefficient of concordance | Yes | effectsize::kendalls_w() |
Robust | > 2 | Algina-Keselman-Penfield robust standardized difference average | Yes | WRS2::wmcpAKP() |
Bayes Factor | > 2 | Bayesian R-squared | Yes | performance::r2_bayes() |
Pairwise comparison tests
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
between-subjects
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.
within-subjects
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.
See Also
grouped_ggbetweenstats
, ggwithinstats
,
grouped_ggwithinstats
Examples
# for reproducibility
set.seed(123)
p <- ggbetweenstats(mtcars, am, mpg)
p
# extracting details from statistical tests
extract_stats(p)
# modifying defaults
ggbetweenstats(
morley,
x = Expt,
y = Speed,
type = "robust",
xlab = "The experiment number",
ylab = "Speed-of-light measurement"
)
# you can remove a specific geom to reduce complexity of the plot
ggbetweenstats(
mtcars,
am,
wt,
# to remove violin plot
violin.args = list(width = 0, linewidth = 0),
# to remove boxplot
boxplot.args = list(width = 0),
# to remove points
point.args = list(alpha = 0)
)