Description

Calculate and plot r and Cohen’s d effect size and its confidence intervals.

Usage

effsize_plot(x, g, method = 'r', paired = F, 
             color = 'black', size = 2,
             width = .05, 
             line.col = 'grey', lwd = 1, lty = 2, 
             ggtheme = theme_minimal(),
             par_r = list(conf = .95, type = 'perc', R = 1000), 
             par_d = list(pooled = T, hedges.correction = F, conf.level = .95),
             plot = T, show = F)

Arguments

x, g dataframe and vector with numerical and factor variables, respectively.

method specify what effect size to compute: Wilcoxon r ('r') or Cohen’s d ('d').

paired logical. Wether the samples are paired.

color, size character or hexa specifying the errorbar and point colors, and size of points, respectively.

width width of errorbar brackets.

line.col, lwd, lty color, width and type of the zero-crossing line, respectively.

ggtheme a ggplot2 theme function.

par_r list of parameters to be passed to WilcoxonR or WilcoxonPairedR functions. Specify as list(conf, type, R), where conf is the level of confidence interval, type is the type of bootstrap estimation for confidence interval (‘norm’ for …, ‘basic’ for …, ‘perc’ for …, ‘bca’ for …) and R is the number of bootstrap resampling.

par_d list of parameters to be passed to cohen.d function. Specify as list(pooled, hedges.correction, conf.level), where pooled is a logical indicating whether should be used the pooled standard deviation (TRUE, default) or the whole sample standard deviation (FALSE), hedges.correction is a logical indicating if Hedges correction should be applied (TRUE) or not (FALSE, default) and conf.level is the level of confidence inteval.

plot logical indicating whether to plot (TRUE, default) or not (FALSE)

show logical indicating whether to print the estimate, p-value, effect size and its confidence intervals (TRUE) or not (FALSE, default).

Details

The packages rcompanion (Mangiafico 2020) and effsize (Torchiano 2020) are required to calculate r and d/g effect size, respectively.

For more details about how each effect size is calculated, read the documentation of rcompanion and effsize.

Value

A list comprised of:

es_plot the plot output.

metrics a data.frame with variable names, statistic (t or W/V), p-value, effect size (r or d/g) and lower and upper limits of confidence interval.

Examples

Generating dataset

x <- factor(rep(c('A','B'), each = 50))

y1 <- abs(rnorm(100, mean = 8.4, sd = 2)) %>% round(.,0)
y1[51:100] <- abs(rnorm(50, 10, 4)) %>% round(.,0)

y2 <- abs(rnorm(100, 25, 5)) %>% round(.,0)
y2[51:100] <- abs(rnorm(50, 23.3, 4)) %>% round(.,0)

y3 <- abs(rnorm(100, 8.5, 4)) %>% round(.,0)
y3[51:100] <- abs(rnorm(50, 11.2, 5.5)) %>% round(.,0)

df <- data.frame(x,y1,y2,y3)

Loading the function

source('https://github.com/geovanjr/stats/raw/master/effsize_plot.R')

Calculating r effect size

effsize_plot(df[,2:4], df[,1], method = 'r', paired = F, plot = T, show = T,
             color = 'forestgreen',
             par_r = list(R = 500))

##   variable      W      p      r    lower   upper
## 1       y1  859.5 0.0067 -0.271 -0.46700 -0.0882
## 2       y2 1546.0 0.0409  0.205  0.00481  0.3890
## 3       y3  999.0 0.0831 -0.174 -0.36100  0.0430

Calculating d effect size

effsize_plot(df[,2:4], df[,1], method = 'd', paired = F, plot = T, show = T,
             color = 'forestgreen', size = 3, lty = 3, ggtheme = theme_light())

##   variable         t      p          d        lower       upper
## 1       y1 -3.019994 0.0035 -0.6039988 -1.009840950 -0.19815667
## 2       y2  1.972555 0.0514  0.3945111 -0.006224558  0.79524674
## 3       y3 -2.297717 0.0238 -0.4595433 -0.861641189 -0.05744545

Calculating g effect size

effsize_plot(df[,2:4], df[,1], method = 'd', paired = F, plot = T, show = T,
             color = 'forestgreen', size = 3, lty = 3, 
             par_d = list(hedges.correction = TRUE))

##   variable         t      p          g        lower       upper
## 1       y1 -3.019994 0.0035 -0.4689179 -0.868142052 -0.06969377
## 2       y2  1.972555 0.0514  0.4028026  0.004980506  0.80062469
## 3       y3 -2.297717 0.0238 -0.4102974 -0.808267973 -0.01232683

Changing es_plot aesthetics

es <- effsize_plot(df[,2:4], df[,1], method = 'd', paired = F, plot = F, show = F,
             color = 'forestgreen', size = 3, lty = 3, 
             par_d = list(hedges.correction = TRUE))

es$es_plot +
  theme(axis.text.y = element_blank()) +
  annotate('text', 1+.2, es$metrics[1,4], 
           label = paste0(es$metrics[1,1]), 
           size = 4, color = 'forestgreen') +
  annotate('text', 2+.2, es$metrics[2,4], 
           label = paste0(es$metrics[2,1]), 
           size = 4, color = 'forestgreen') +
  annotate('text', 3+.2, es$metrics[3,4], 
           label = paste0(es$metrics[3,1]), 
           size = 4, color = 'forestgreen')

Getting metrics

es$metrics
variable t p g lower upper
y1 -3.019994 0.0035 -0.4689179 -0.8681421 -0.0696938
y2 1.972555 0.0514 0.4028026 0.0049805 0.8006247
y3 -2.297717 0.0238 -0.4102974 -0.8082680 -0.0123268

References

Mangiafico, Salvatore. 2020. Rcompanion: Functions to Support Extension Education Program Evaluation. https://CRAN.R-project.org/package=rcompanion.

Torchiano, Marco. 2020. Effsize: Efficient Effect Size Computation. https://CRAN.R-project.org/package=effsize.