# DGB
## Mean Difference from Paired Samples
ci.mean.ps <- function(alpha, m1, m2, sd1, sd2, n1, n2, r) {
# Computes confidence interval for a
# difference in population means in a paired-samples design
# Arguments:
# alpha: alpha level for 1-alpha confidence
# mj: sample mean for measure j
# sdj: sample standard deviation for measure j
# nj: sample size for measure j
# r: correlation between the two measures
# Values:
# estimate, SE, df, lower limit, upper limit
md <- m2-m1
se1 <- sd1/n1
se2 <- sd2/n2
se <- sqrt(se1^2+se2^2-2*r*se1*se2)
df <- n1-1
tcrit <- qt(alpha/2,df,lower.tail=FALSE)
ll <- md-tcrit*se
ul <- md+tcrit*se
out <- t(c(md, se, df, ll, ul))
colnames(out) <- c("Estimate", "SE", "df", "LL", "UL")
return(out)
}
size.ci.mean.ps <- function(alpha, var, cor, w) {
# Computes sample size required to estimate a difference in
# population means with desired precision in a paired-samples design
# Arguments:
# alpha: alpha level for 1-alpha confidence
# var: planning value of average within-group DV variance
# cor: planning value of correlation
# w: desired confidence interval width
# Values:
# required sample size
z <- qnorm(1 - alpha/2)
n <- ceiling(8*(1 - cor)*var*(z/w)^2 + z^2/2)
return(n)
}
size.test.mean.ps <- function(alpha, var, pow, es, cor) {
# Computes sample size required to test a difference in population
# means with desired power in a paired-samples design
# Arguments:
# alpha: alpha level for test
# var: planning value of average within-group DV variance
# pow: desired power
# es: planning value of mean difference
# cor: planning value of correlation
# Values:
# required sample size
za <- qnorm(1 - alpha/2)
zb <- qnorm(pow)
n <- ceiling(2*var*(1 - cor)*(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.