test.welch: Welch's Test

View source: R/test.welch.R

test.welchR 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 bars representing means for each group and error bars for difference-adjusted confidence intervals.

Usage

test.welch(formula, data, alternative = c("two.sided", "less", "greater"),
           hypo = FALSE, descript = FALSE, effsize = FALSE, weighted = FALSE,
           ref = NULL, correct = FALSE, posthoc = FALSE, conf.level = 0.95,
           digits = 2, p.digits = 3, as.na = NULL, plot = FALSE, bar = TRUE,
           point = FALSE, ci = TRUE, jitter = FALSE, adjust = TRUE,
           filename = NULL, width = NA, height = NA, dpi = 600,
           write = NULL, append = TRUE, check = TRUE, output = TRUE)

Arguments

formula

a formula of the form y ~ group where y is a numeric variable giving the data values and group a numeric variable, character variable or factor with two or more than two values or factor levels giving the corresponding groups.

data

a matrix or data frame containing the variables in the formula formula.

alternative

a character string specifying the alternative hypothesis, must be one of "two.sided" (default), "greater" or "less". Note that this argument is only used when conducting Welch's two-sample t-test.

hypo

logical: if TRUE (default), null and alternative hypothesis are shown on the console.

descript

logical: if TRUE, descriptive statistics are shown on the console when conducting Welch's ANOVA.

effsize

logical: if TRUE, effect size measure Cohen's d for Welch's two-sample t-test (see cohens.d), \eta^2 and \omega^2 for Welch's ANOVA and Cohen's d for the post hoc tests are shown on the console.

weighted

logical: if TRUE, the weighted pooled standard deviation is used to compute Cohen's d.

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 TRUE, correction factor to remove positive bias in small samples for is used to compute Cohen's d.

posthoc

logical: if TRUE, Games-Howell post hoc test for multiple comparison is conducted when performing Welch's ANOVA.

conf.level

a numeric value between 0 and 1 indicating the confidence level of the interval.

digits

an integer value indicating the number of decimal places to be used for displaying results.

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 NA before conducting the analysis.

plot

logical: if TRUE, a plot is drawn.

bar

logical: if TRUE (default), bars representing means for each groups are drawn.

point

logical: if TRUE, points representing means for each groups are drawn.

ci

logical: if TRUE (default), error bars representing confidence intervals are drawn.

jitter

logical: if TRUE, jittered data points are drawn.

adjust

logical: if TRUE (default), difference-adjustment for the confidence intervals is applied.

filename

a character string indicating the filename argument including the file extension in the ggsave function. Note that one of ".eps", ".ps", ".tex", ".pdf" (default), ".jpeg", ".tiff", ".png", ".bmp", ".svg" or ".wmf" needs to be specified as file extension in the filename argument. Note that plots can only be saved when plot = TRUE.

width

a numeric value indicating the width argument (default is the size of the current graphics device) in the ggsave function.

height

a numeric value indicating the height argument (default is the size of the current graphics device) in the ggsave function.

dpi

a numeric value indicating the dpi argument (default: 600) in the ggsave function.

write

a character string naming a text file with file extension ".txt" (e.g., "Output.txt") for writing the output into a text file.

append

logical: if TRUE (default), output will be appended to an existing text file with extension .txt specified in write, if FALSE existing text file will be overwritten.

check

logical: if TRUE (default), argument specification is checked.

output

logical: if TRUE (default), output is shown on the console.

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., one-, two-, or paired sample

data

data frame with the outcome and grouping variable

formula

formula

args

specification of function arguments

plot

ggplot2 object for plotting the results

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

#————————————————————————————————————————————————————————————————————————————
# Two-Sample Design

# Example 1a: Two-sided two-sample Welch-test
test.welch(hp ~ am, data = mtcars)

# Example 1b: One-sided two-sample Welch-test
test.welch(hp ~ am, data = mtcars, alternative = "less")

# Example 1c: Two-sided two-sample Welch-test,
# Print descriptive statistics and Cohen's d
test.welch(hp ~ am, data = mtcars, descript = TRUE, effsize = TRUE)

#————————————————————————————————————————————————————————————————————————————
# Multiple-Sample Design

# Example 2a: Welch's ANOVA
test.welch(hp ~ gear, data = mtcars)

# Example 2b: Welch's ANOVA,
# Print descriptive statistics and Games-Howell post hoc test
test.welch(hp ~ gear, data = mtcars, descript = TRUE, posthoc = TRUE)

# Example 2c: Welch's ANOVA, print eta-squared and omega-squared
test.welch(hp ~ gear, data = mtcars, effsize = TRUE)

#————————————————————————————————————————————————————————————————————————————
# Plot

# Example 3a: Plot results, default setting
test.welch(hp ~ gear, data = mtcars, plot = TRUE)

# Example 3b: Plot results
# No bars, draw points representing means and jittered data points
test.welch(hp ~ gear, data = mtcars, plot = TRUE, bar = FALSE, point = TRUE,
           jitter = TRUE)

# Example 3c: Plot results using the plot() function, use additional arguments
# see Details in the help page of the function plot.misty.object
object <- test.welch(hp ~ gear, data = mtcars)
plot(object, jitter = TRUE, jitter.alpha = 0.4, title = "Welch's Test")

#————————————————————————————————————————————————————————————————————————————
# Create Plot Manually

# Load ggplot2 package
library(ggplot2)

# Create misty object
object <- test.welch(hp ~ gear, data = mtcars)

# Example 4: Plot
ggplot(object$result$descript, aes(group, y)) +
  geom_bar(aes(group, m), stat = "summary", fun = "mean") +
  geom_jitter(data = object$data, aes(group, y), alpha = 0.1, width = 0.05,
             height = 0, size = 1.25) +
  geom_point(aes(group, m), stat = "identity", size = 3) +
  geom_errorbar(aes(group, m, ymin = low, ymax = upp), width = 0.1) +
  theme_bw()

#————————————————————————————————————————————————————————————————————————————
# Write Results and Save Plot

## Not run: 

# Example 5a: Write results into a text file
test.welch(hp ~ gear, data = mtcars, write = "Welch-Test.txt")

# Example 5a: Write results into an Excel file
test.welch(hp ~ gear, data = mtcars, write = "Welch-Test.xlsx")

# Example 5b: Save plot as PNG fine
test.welch(hp ~ gear, data = mtcars, plot = TRUE,
            filename = "Welch-Test.png", width = 6, height = 5)

## End(Not run)

misty documentation built on Aug. 2, 2026, 9:06 a.m.

Related to test.welch in misty...