R/lc.mean.bs.R

Defines functions size.test.lc.mean.bs size.ci.lc.mean.bs ci.lc.mean.bs

Documented in ci.lc.mean.bs size.ci.lc.mean.bs

# DGB
## Linear Contrast of Means (Between-Subjects)

ci.lc.mean.bs <- function(alpha, m, sd, n, c) {
 # Computes confidence interval for a linear contrast
 # of population means in a between-subjects design
 # Arguments: 
 #   alpha: alpha level for 1-alpha confidence
 #   m:     vector of sample means
 #   sd:    vector of sample standard deviations
 #   n:     vector of sample sizes
 #   c:     vector of contrast coefficients
 # Values:
 #   estimate, SE, df, lower limit, upper limit
 #   for both equal variance and unequal variance methods
 est <- t(c)%*%m 
 k <- length(m)
 df1 <- sum(n) - k
 v1 <- sum((n - 1)*sd^2)/df1
 se1 <- sqrt(v1*t(c)%*%solve(diag(n))%*%c)
 t1 <- est/se1
 p1 <- 2*(1 - pt(abs(t1),df1))
 tcrit1 <- qt(1 - alpha/2, df1)
 ll1 <- est - tcrit1*se1
 ul1 <- est + tcrit1*se1
 v2 <- diag(sd^2)%*%(solve(diag(n)))
 se2 <- sqrt(t(c)%*%v2%*%c)
 t2 <- est/se2
 df2 <- (se2^4)/sum(((c^4)*(sd^4)/(n^2*(n - 1))))
 p2 <- 2*(1 - pt(abs(t2),df2))
 tcrit2 <- qt(1 - alpha/2, df2)
 ll2 <- est - tcrit2*se2
 ul2 <- est + tcrit2*se2
 out1 <- t(c(est, se1, df1, ll1, ul1))
 out2 <- t(c(est, se2, df2, ll2, ul2))
 out <- rbind(out1, out2)
 colnames(out) <- c("Estimate", "SE", "df", "LL", "UL")
 rownames(out) <- c("Equal Variances Assumed:", "Equal Variances Not Assumed:")
 return(out)
}

size.ci.lc.mean.bs <- function(alpha, var, w, c) {
 # Computes sample size required to estimate a linear contrast of population  
 # mean with desired precision in a between-subjects design
 # Arguments: 
 #   alpha: alpha level for 1-alpha confidence
 #   var:   planning value of average within-group DV variance  
 #   w:     desired confidence interval width
 #   c:     vector of contrast coefficients 
 # Values:
 #   required sample size per group
 z <- qnorm(1 - alpha/2)
 m <- length(c) - sum(c == 0)
 n <- ceiling(4*var*(t(c)%*%c)*(z/w)^2 + z^2/(2*m))
 return(n)
}

size.test.lc.mean.bs <- function(alpha, var, pow, es, c) {
 # Computes sample size required to test a linear contrast of population 
 # means with desired power in a between-subjects design 
 # Arguments: 
 #   alpha: alpha level for test
 #   var:   planning value of average within-group DV variance
 #   pow:   desired power
 #   es:    planning value of linear contrast of means
 #   c:     vector of contrast coefficients 
 # Values:
 #   required sample size per group
 za <- qnorm(1 - alpha/2)
 zb <- qnorm(pow)
 m <- length(c) - sum(c == 0)
 n <- ceiling(var*(t(c)%*%c)*(za + zb)^2/es^2 + za^2/(2*m))
 return(n)
}
cwendorf/DGB documentation built on May 3, 2022, 9:34 p.m.