dfamefs <- function(G1, G2) { varp <- function(X) { sum((X-mean(X))^2)/length(X) } J <- function(alpha) { gamma(alpha/2)/(sqrt(alpha/2)*gamma((alpha-1)/2)) } n1 <- length(G1) n2 <- length(G2) Sp <- sqrt((n1*varp(G1)+n2*varp(G2))/(n1+n2)) # Sp2 <- sqrt((n1*var(G1)+n2*var(G2))/(n1+n2)) # Sp3 <- sqrt(((n1-1)*(sd(G1)^2)+(n2-1)*(sd(G2)^2))/(n1+n2)) d <- (mean(G1)-mean(G2))/Sp # d2 <- (mean(G1)-mean(G2))/Sp2 # d3 <- (mean(G1)-mean(G2))/Sp3 sp <- sqrt(((n1-1)*var(G1)+(n2-1)*var(G2))/(n1+n2-2)) g <- (mean(G1)-mean(G2))/sp gadj <- g*(1-3/(4*(n1+n2)-9)) gadj2 <- g*J(n1+n2-2) delta <- (mean(G1)-mean(G2))/sd(G2) # G2 has to be control deltaadj <- (1-3/(4*length(G2)-5))*delta return(list(Cohend=d, Hedgesg=g, gadj=gadj, gadjexaxt=gadj2, Glassdelta=delta, deltaadj=deltaadj)) } library(effsize) G1 <- sleep$extra[sleep$group==1] G2 <- sleep$extra[sleep$group==2] cohen.d(G1, G2) # cohen.d(sleep$extra, sleep$group) cohen.d(G1, G2, hedges.correction=TRUE) # cohen.d(sleep$extra, sleep$group, hedges.correction=TRUE) dfamefs(G1, G2) # Okubo, Okada (2012) Table 3.4 Exp <- c(59, 48, 51, 41, 39, 84, 95, 56, 86, 74) Ctl <- c(47, 24, 38, 28, 39, 74, 77, 48, 40, 60) cohen.d(Exp, Ctl) cohen.d(Exp, Ctl, hedges.correction=TRUE) dfamefs(Exp, Ctl)