| 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 specifying- weighted = 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)