| ccsize | R Documentation |
Power and sample size for case-cohort design
ccsize(n, q, pD, p1, theta, alpha, beta = 0.2, power = TRUE, verbose = FALSE)
n |
the total number of subjects in the cohort. |
q |
the sampling fraction of the subcohort. |
pD |
the proportion of the failures in the full cohort. |
p1 |
proportions of the two groups (p2=1-p1). |
theta |
log-hazard ratio for two groups. |
alpha |
type I error – significant level. |
beta |
type II error. |
power |
if specified, the power for which sample size is calculated. |
verbose |
error messages are explicitly printed out. |
The power of the test is according to
\Phi\left(Z_\alpha+m^{1/2}\theta\sqrt{\frac{p_1p_2p_D}{q+(1-q)p_D}}\right)
where \alpha is the significance level, \theta is the log-hazard ratio for two groups, p_j,
j=1, 2, are the proportion of the two groups in the population. m is the total number of subjects in the subcohort,
p_D is the proportion of the failures in the full cohort, and q is the sampling fraction of the subcohort.
Alternatively, the sample size required for the subcohort is
m=nBp_D/(n-B(1-p_D))
where B=(Z_{1-\alpha}+Z_\beta)^2/(\theta^2p_1p_2p_D), and n is the size of cohort.
When infeaisble configurations are specified, a sample size of -999 is returned.
a value indicating the power or required sample size.
Programmed for EPIC study. keywords misc
Jing Hua Zhao
cai04gap
pbsize
## Not run:
# Table 1 of Cai & Zeng (2004).
alpha <- 0.05
table1 <- rbind(
transform(
within(expand.grid(
pD = c(0.10, 0.05),
p1 = c(0.3, 0.5),
theta = c(0.5, 1.0),
q = c(0.1, 0.2)
), {
n <- 1000
power <- mapply(ccsize,
n = n, q = q, pD = pD, p1 = p1, theta = theta,
MoreArgs = list(alpha = alpha)
)
}),
power = signif(power, 3)
),
transform(
within(expand.grid(
pD = c(0.05, 0.01),
p1 = c(0.3, 0.5),
theta = c(0.5, 1.0),
q = c(0.01, 0.02)
), {
n <- 5000
power <- mapply(ccsize,
n = n, q = q, pD = pD, p1 = p1, theta = theta,
MoreArgs = list(alpha = alpha)
)
}),
power = signif(power, 3)
)
)
# ARIC study
aric <- within(
data.frame(
n = 15792,
pD = 0.03,
p1 = 0.25,
hr = c(1.35, 1.40, 1.45),
q = c(1463, 722, 468) / 15792
), {
alpha <- 0.05
beta <- 0.2
power <- mapply(ccsize,
n = n, q = q, pD = pD, p1 = p1, theta = log(hr),
MoreArgs = list(alpha = alpha)
)
ssize <- mapply(ccsize,
n = n, q = q, pD = pD, p1 = p1, theta = log(hr),
MoreArgs = list(alpha = alpha, beta = beta, power = FALSE)
)
power <- signif(power, 3)
}
)
# EPIC study
epic <- within(
expand.grid(
pD = c(0.3, 0.2, 0.1, 0.05),
p1 = seq(0.1, 0.5, by = 0.1),
hr = seq(1.1, 1.4, by = 0.1)
), {
n <- 25000
q <- 0.1
alpha <- 5e-8
beta <- 0.2
ssize <- mapply(ccsize,
n = n, q = q, pD = pD, p1 = p1, theta = log(hr),
MoreArgs = list(alpha = alpha, beta = beta, power = FALSE)
)
}
)
epic <- subset(epic, !is.na(ssize) & ssize > 0)
# exhaustive search
search <- within(
expand.grid(
pD = c(0.3, 0.2, 0.1, 0.05),
p1 = seq(0.1, 0.5, by = 0.1),
hr = seq(1.1, 1.4, by = 0.1),
q = seq(0.01, 0.5, by = 0.01)
), {
n <- 25000
alpha <- 5e-8
power <- mapply(ccsize,
n = n, q = q, pD = pD, p1 = p1, theta = log(hr),
MoreArgs = list(alpha = alpha)
)
nq <- n * q
}
)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.