# DGB
## Linear Contrast of Means (Within Subjects)
ci.lc.mean.ws <- function(alpha, m, var, cor, n, h) {
# Computes confidence interval for a population linear contrast
# of means in a within-subjects design (assumes equal variances
# and correlations).
# Arguments:
# alpha: alpha level for 1-alpha confidence
# m: vector of sample means
# var: average of sample variances
# cor: average of sample correlations
# n: sample size
# h: vector of contrast coefficients
# Values:
# estimate, SE, df, lower limit, upper limit
df <- n - 1
tcrit <- qt(1 - alpha/2, df)
a <- length(m)
v <- matrix(var, a, 1)
C <- matrix(cor, a, a)
diag(C) <- v
est <- (t(h)%*%m)
se <- sqrt(t(h)%*%C%*%h/n)
t <- est/se;
p <- 2*(1 - pt(abs(t), df))
ll <- est - tcrit*se
ul <- est + tcrit*se
out <- t(c(est, se, df, ll, ul))
colnames(out) <- c("Estimate", "SE", "df", "LL", "UL")
return(out)
}
size.ci.lc.mean.ws <- function(alpha, var, cor, w, h) {
# Computes sample size required to estimate a linear contrast of population
# means with desired precision in a within-subjects design
# Arguments:
# alpha: alpha level for 1-alpha confidence
# var: planning value of largest DV variance
# cor: planning value of smallest correlation
# w: desired confidence interval width
# h: vector of contrast coefficients
# Values:
# required sample size
z <- qnorm(1 - alpha/2)
k <- length(h)
n <- ceiling(4*(1 - cor)*var*(t(h)%*%h)*(z/w)^2 + z^2/2)
return(n)
}
size.test.lc.mean.ws <- function(alpha, var, pow, es, cor, h) {
# Computes sample size required to test a linear contrast of
# population means with desired power in a within-subjects design
# Arguments:
# alpha: alpha level for test
# var: planning value of largest DV variance
# pow: desired power
# es: planning value of linear contrast of means
# cor: planning value of smallest correlation
# h: vector of contrast coefficients
# Values:
# required sample size
za <- qnorm(1 - alpha/2)
zb <- qnorm(pow)
n <- ceiling(var*(1 - cor)*(t(h)%*%h)*(za + zb)^2/es^2 + za^2/2)
return(n)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.