| pbsize2 {gap} | R Documentation |
This is a revised version of pbsize which is appropriate for
a case-control design under a range of disease models. Essentially, for given sample
size(s), a proportion of which (fc) being cases, the function calculates power estimate
for a given type I error (alpha), genotype relative risk (gamma), frequency of the
risk allele (p), the prevalence of disease in the population (kp) and optionally a
disease model (model). A major difference would be the consideration of case/control
ascertainment in pbsize.
pbsize2( N, fc = 0.5, alpha = 0.05, gamma = 4.5, p = 0.15, kp = 0.1, model = "additive" )
N |
The sample size. |
fc |
The proportion of cases in the sample. |
alpha |
Type I error rate. |
gamma |
The genotype relative risk (GRR). |
p |
Frequency of the risk allele. |
kp |
The prevalence of disease in the population. |
model |
Disease model, i.e., "multiplicative","additive","dominant","recessive","overdominant". |
Internally, the function obtains a baseline risk to make the disease model consistent
with Kp as in tscc and should produce accurate power estimate. Note it
provides power estimates for given sample size(s) only.
The returned value is the power for the specified design.
Why is the comparison with power.casectrl so bad?
Jing Hua Zhao
The design follows that of pbsize.
## Not run:
# single calc
m <- c("multiplicative","recessive","dominant","additive","overdominant")
for(i in 1:5) print(pbsize2(N=50,alpha=5e-2,gamma=1.1,p=0.1,kp=0.1, model=m[i]))
# for a range of sample sizes
pbsize2(p=0.1, N=c(25,50,100,200,500), gamma=1.1, kp=.1, alpha=5e-2, model='r')
# create a power table
f <- function(p)
pbsize2(p=p, N=seq(100,1000,by=100), gamma=1.1, kp=.1, alpha=5e-2, model='recessive')
m <- sapply( X=seq(0.1,0.9, by=0.1), f)
colnames(m) <- seq(0.1,0.9, by=0.1)
rownames(m) <- seq(100,1000,by=100)
print(round(m,2))
library(genetics)
m <- c("multiplicative","recessive","dominant","partialrecessive")
for(i in 1:4) print(power.casectrl(p=0.1, N=50, gamma=1.1, kp=.1, alpha=5e-2,
minh=m[i]))
power.casectrl(p=0.1, N=c(25,50,100,200,500), gamma=1.1, kp=.1, alpha=5e-2,
minh='r')
f <- function(p)
power.casectrl(p=p, N=seq(100,1000,by=100), gamma=1.1, kp=.1, alpha=5e-2,
minh='recessive')
m <- sapply( X=seq(0.1,0.9, by=0.1), f)
colnames(m) <- seq(0.1,0.9, by=0.1)
rownames(m) <- seq(100,1000,by=100)
print(round(m,2))
## End(Not run)