test.welch {misty} | R Documentation |
Welch's Test
Description
This function performs Welch's two-sample t-test and Welch's ANOVA including Games-Howell post hoc test for multiple comparison and provides descriptive statistics, effect size measures, and a plot showing error bars for difference-adjusted confidence intervals with jittered data points.
Usage
test.welch(formula, data, alternative = c("two.sided", "less", "greater"),
posthoc = FALSE, conf.level = 0.95, hypo = TRUE, descript = TRUE,
effsize = FALSE, weighted = FALSE, ref = NULL, correct = FALSE,
plot = FALSE, point.size = 4, adjust = TRUE, error.width = 0.1,
xlab = NULL, ylab = NULL, ylim = NULL, breaks = ggplot2::waiver(),
jitter = TRUE, jitter.size = 1.25, jitter.width = 0.05,
jitter.height = 0, jitter.alpha = 0.1, title = "",
subtitle = "Confidence Interval", digits = 2, p.digits = 4,
as.na = NULL, write = NULL, append = TRUE, check = TRUE,
output = TRUE, ...)
Arguments
formula |
a formula of the form |
data |
a matrix or data frame containing the variables in the
formula |
alternative |
a character string specifying the alternative hypothesis,
must be one of |
posthoc |
logical: if |
conf.level |
a numeric value between 0 and 1 indicating the confidence level of the interval. |
hypo |
logical: if |
descript |
logical: if |
effsize |
logical: if |
weighted |
logical: if |
ref |
a numeric value or character string indicating the reference group. The standard deviation of the reference group is used to standardized the mean difference to compute Cohen's d. |
correct |
logical: if |
plot |
logical: if |
point.size |
a numeric value indicating the |
adjust |
logical: if |
error.width |
a numeric value indicating the horizontal bar width of the error bar. |
xlab |
a character string specifying the labels for the x-axis. |
ylab |
a character string specifying the labels for the y-axis. |
ylim |
a numeric vector of length two specifying limits of the limits of the y-axis. |
breaks |
a numeric vector specifying the points at which tick-marks are drawn at the y-axis. |
jitter |
logical: if |
jitter.size |
a numeric value indicating the |
jitter.width |
a numeric value indicating the amount of horizontal jitter. |
jitter.height |
a numeric value indicating the amount of vertical jitter. |
jitter.alpha |
a numeric value indicating the opacity of the jittered data points. |
title |
a character string specifying the text for the title for the plot. |
digits |
an integer value indicating the number of decimal places to be used for displaying descriptive statistics and confidence interval. |
p.digits |
an integer value indicating the number of decimal places to be used for displaying the p-value. |
as.na |
a numeric vector indicating user-defined missing values,
i.e. these values are converted to |
write |
a character string naming a text file with file extension
|
append |
logical: if |
check |
logical: if |
output |
logical: if |
... |
further arguments to be passed to or from methods. |
subtitle |
a character string specifying the text for the subtitle for the plot. |
Details
- Effect Size Measure
By default, Cohen's d based on the non-weighted standard deviation (i.e.,
weighted = FALSE
) which does not assume homogeneity of variance is computed (see Delacre et al., 2021) when requesting an effect size measure (i.e.,effsize = TRUE
). Cohen's d based on the pooled standard deviation assuming equality of variances between groups can be requested by specifyingweighted = TRUE
.
Value
Returns an object of class misty.object
, which is a list with following
entries:
call |
function call |
type |
type of analysis |
sample |
type of sample, i.e., two- or multiple sample |
formula |
formula of the current analysis |
data |
data frame specified in |
plot |
ggplot2 object for plotting the results |
args |
specification of function arguments |
result |
result table |
Author(s)
Takuya Yanagida takuya.yanagida@univie.ac.at
References
Rasch, D., Kubinger, K. D., & Yanagida, T. (2011). Statistics in psychology - Using R and SPSS. John Wiley & Sons.
Delacre, M., Lakens, D., Ley, C., Liu, L., & Leys, C. (2021). Why Hedges' g*s based on the non-pooled standard deviation should be reported with Welch's t-test. https://doi.org/10.31234/osf.io/tu6mp
See Also
test.t
, test.z
, test.levene
,
aov.b
, cohens.d
, ci.mean.diff
,
ci.mean
Examples
dat1 <- data.frame(group1 = c(1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2),
group2 = c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3),
y = c(3, 1, 4, 2, 5, 3, 2, 3, 6, 6, 3, NA))
#-------------------------------------------------------------------------------
# Two-Sample Design
# Example 1a: Two-sided two-sample Welch-test
test.welch(y ~ group1, data = dat1)
# Example 1b: One-sided two-sample Welch-test
test.welch(y ~ group1, data = dat1, alternative = "greater")
# Example 1c: Two-sided two-sample Welch-test
# print Cohen's d with weighted pooled SD
test.welch(y ~ group1, data = dat1, effsize = TRUE)
# Example 1d: Two-sided two-sample Welch-test
# print Cohen's d with unweighted pooled SD
test.welch(y ~ group1, data = dat1, effsize = TRUE, weighted = FALSE)
# Example 1e: Two-sided two-sample Welch-test
# print Cohen's d with weighted pooled SD and
# small sample correction factor
test.welch(y ~ group1, data = dat1, effsize = TRUE, correct = TRUE)
# Example 1f: Two-sided two-sample Welch-test
# print Cohen's d with SD of the reference group 1
test.welch(y ~ group1, data = dat1, effsize = TRUE,
ref = 1)
# Example 1g: Two-sided two-sample Welch-test
# print Cohen's d with weighted pooled SD and
# small sample correction factor
test.welch(y ~ group1, data = dat1, effsize = TRUE,
correct = TRUE)
# Example 1h: Two-sided two-sample Welch-test
# do not print hypotheses and descriptive statistics,
test.welch(y ~ group1, data = dat1, descript = FALSE, hypo = FALSE)
# Example 1i: Two-sided two-sample Welch-test
# print descriptive statistics with 3 digits and p-value with 5 digits
test.welch(y ~ group1, data = dat1, digits = 3, p.digits = 5)
## Not run:
# Example 1j: Two-sided two-sample Welch-test
# plot results
test.welch(y ~ group1, data = dat1, plot = TRUE)
# Load ggplot2 package
library(ggplot2)
# Save plot, ggsave() from the ggplot2 package
ggsave("Two-sample_Welch-test.png", dpi = 600, width = 4, height = 6)
# Example 1k: Two-sided two-sample Welch-test
# extract plot
p <- test.welch(y ~ group1, data = dat1, output = FALSE)$plot
p
# Extract data
plotdat <- test.welch(y ~ group1, data = dat1, output = FALSE)$data
# Draw plot in line with the default setting of test.welch()
ggplot(plotdat, aes(factor(group), y)) +
geom_point(stat = "summary", fun = "mean", size = 4) +
stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", width = 0.20) +
scale_x_discrete(name = NULL) +
labs(subtitle = "Two-Sided 95
theme_bw() + theme(plot.subtitle = element_text(hjust = 0.5))
## End(Not run)
#-------------------------------------------------------------------------------
# Multiple-Sample Design
# Example 2a: Welch's ANOVA
test.welch(y ~ group2, data = dat1)
# Example 2b: Welch's ANOVA
# print eta-squared and omega-squared
test.welch(y ~ group2, data = dat1, effsize = TRUE)
# Example 2c: Welch's ANOVA
# do not print hypotheses and descriptive statistics,
test.welch(y ~ group2, data = dat1, descript = FALSE, hypo = FALSE)
## Not run:
# Example 2d: Welch's ANOVA
# plot results
test.welch(y ~ group2, data = dat1, plot = TRUE)
# Load ggplot2 package
library(ggplot2)
# Save plot, ggsave() from the ggplot2 package
ggsave("Multiple-sample_Welch-test.png", dpi = 600, width = 4.5, height = 6)
# Example 2e: Welch's ANOVA
# extract plot
p <- test.welch(y ~ group2, data = dat1, output = FALSE)$plot
p
# Extract data
plotdat <- test.welch(y ~ group2, data = dat1, output = FALSE)$data
# Draw plot in line with the default setting of test.welch()
ggplot(plotdat, aes(group, y)) +
geom_point(stat = "summary", fun = "mean", size = 4) +
stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", width = 0.20) +
scale_x_discrete(name = NULL) +
labs(subtitle = "Two-Sided 95
theme_bw() + theme(plot.subtitle = element_text(hjust = 0.5))
## End(Not run)