R/stdmean.is.R

Defines functions size.ci.stdmean.is ci.stdmean.is

Documented in ci.stdmean.is size.ci.stdmean.is

# DGB
## Standardized Mean Difference from Two (Independent) Samples

ci.stdmean.is <- function(alpha, m1, m2, sd1, sd2, n1, n2) {
 # Computes confidence interval for a population standardized mean 
 # difference in a 2-group design
 # Arguments: 
 #   alpha: alpha level for 1-alpha confidence
 #   mj:    sample mean in group j
 #   sdj:   sample standard deviation in group j
 #   nj:    sample size in group j
 # Values:
 #   estimate, SE, lower limit, and upper limit for equal variance and
 #   unequal variance methods plus single group standardizer
 z <- qnorm(1 - alpha/2)
 v1 <- sd1^2
 v2 <- sd2^2
 s <- sqrt((v1 + v2)/2)
 sp <- sqrt(((n1 - 1)*v1 + (n2 - 1)*v2)/(n1 + n2 - 2))
 est1 <- (m1 - m2)/s
 se1 <- sqrt(est1^2*(v1^2/(n1-1) + v2^2/(n2-1))/(8*s^4) + (v1/(n1-1) + v2/(n2-1))/s^2)
 ll1 <- est1 - z*se1
 ul1 <- est1 + z*se1
 est2 <- (m1 - m2)/sp
 se2 <- sqrt(est2^2*(1/(n1 - 1) + 1/(n2 - 1))/8 + 1/n1 + 1/n2)
 ll2 <- est2 - z*se2
 ul2 <- est2 + z*se2
 est3 <- (m1 - m2)/sd1
 se3 <- sqrt(est3^2/(2*(n1 - 1)) + 1/(n1 - 1) + v2/((n2 - 1)*v1))
 ll3 <- est3 - z*se3
 ul3 <- est3 + z*se3
 est4 <- (m1 - m2)/sd2
 se4 <- sqrt(est4^2/(2*(n2 - 1)) + 1/(n2 - 1) + v1/((n1 - 1)*v2))
 ll4 <- est4 - z*se4
 ul4 <- est4 + z*se4
 out1 <- t(c(est1, se1, ll1, ul1))
 out2 <- t(c(est2, se2, ll2, ul2))
 out3 <- t(c(est3, se3, ll3, ul3))
 out4 <- t(c(est4, se4, ll4, ul4))
 out <- rbind(out1, out2, out3, out4)
 colnames(out) <- c("Estimate", "SE", "LL", "UL")
 rownames1 <- c("Equal Variances Not Assumed", "Equal Variances Assumed:")
 rownames2 <- c("Group 1 Standardizer:", "Group 2 Standardizer:")
 rownames(out) <- c(rownames1, rownames2)
 return(out)
}

size.ci.stdmean.is <- function(alpha, d, w, r) {
 # Computes sample size required to estimate a population standardized 
 # mean difference with desired precision in a 2-group design
 # Arguments: 
 #   alpha:  alpha level for 1-alpha confidence 
 #   d:      planning value of standardized mean difference
 #   w:      desired confidence interval width
 #   r:      desired n2/n1 ratio
 # Values:
 #   required sample size per group (or n1 if r not equal to 1)
 z <- qnorm(1 - alpha/2)
 n <- ceiling((d^2*(1 + r)/(2*r) + 4*(1 + r)/r)*(z/w)^2)
 return(n)
}
cwendorf/dgb documentation built on May 3, 2022, 9:35 p.m.