# 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)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.