Learn R Programming

powerSurvEpi (version 0.1.3)

ssizeEpiCont: Sample Size Calculation for Cox Proportional Hazards Regression with Nonbinary Covariates for Epidemiological Studies

Description

Sample size calculation for Cox proportional hazards regression with nonbinary covariates for Epidemiological Studies.

Usage

ssizeEpiCont(formula, 
	     dat, 
	     var.X1, 
	     var.failureFlag, 
	     power, 
	     theta, 
	     alpha = 0.05)

Arguments

formula

a formula object relating the covariate of interest to other covariates to calculate the multiple correlation coefficient. The variables in formula must be in the data frame dat.

dat

a nPilot by p data frame representing the pilot data set, where nPilot is the number of subjects in the pilot study and the p (\(>1\)) columns contains the covariate of interest and other covariates.

var.X1

character. name of the column in the data frame dat, indicating the covariate of interest.

var.failureFlag

character. name of the column in the data frame dat, indicating if a subject is failure (taking value 1) or alive (taking value 0).

power

numeric. postulated power.

theta

numeric. postulated hazard ratio.

alpha

numeric. type I error rate.

Value

n

the total number of subjects required.

rho2

square of the correlation between \(X_1\) and \(X_2\).

sigma2

variance of the covariate of interest.

psi

proportion of subjects died of the disease of interest.

Details

This is an implementation of the sample size calculation formula derived by Hsieh and Lavori (2000) for the following Cox proportional hazards regression in the epidemiological studies: $$h(t|x_1, \boldsymbol{x}_2)=h_0(t)\exp(\beta_1 x_1+\boldsymbol{\beta}_2 \boldsymbol{x}_2,$$ where the covariate \(X_1\) is a nonbinary variable and \(\boldsymbol{X}_2\) is a vector of other covariates.

Suppose we want to check if the hazard ratio of the main effect \(X_1=1\) to \(X_1=0\) is equal to \(1\) or is equal to \(\exp(\beta_1)=\theta\). Given the type I error rate \(\alpha\) for a two-sided test, the total number of subjects required to achieve a sample size of \(1-\beta\) is $$n=\frac{\left(z_{1-\alpha/2}+z_{1-\beta}\right)^2}{ [\log(\theta)]^2 \sigma^2 \psi (1-\rho^2) },$$ where \(z_{a}\) is the \(100 a\)-th percentile of the standard normal distribution, \(\sigma^2=Var(X_1)\), \(\psi\) is the proportion of subjects died of the disease of interest, and \(\rho\) is the multiple correlation coefficient of the following linear regression: $$x_1=b_0+\boldsymbol{b}^T\boldsymbol{x}_2.$$ That is, \(\rho^2=R^2\), where \(R^2\) is the proportion of variance explained by the regression of \(X_1\) on the vector of covriates \(\boldsymbol{X}_2\).

\(rho^2\), \(\sigma^2\), and \(\psi\) will be estimated from a pilot study.

References

Hsieh F.Y. and Lavori P.W. (2000). Sample-size calculation for the Cox proportional hazards regression model with nonbinary covariates. Controlled Clinical Trials. 21:552-560.

See Also

ssizeEpiCont.default

Examples

Run this code
# NOT RUN {
  # generate a toy pilot data set
  set.seed(123456)
  X1 <- rnorm(100, mean = 0, sd = 0.3126)
  X2 <- sample(c(0, 1), 100, replace = TRUE)
  failureFlag <- sample(c(0, 1), 100, prob = c(0.25, 0.75), replace = TRUE)
  dat <- data.frame(X1 = X1, X2 = X2, failureFlag = failureFlag)

  ssizeEpiCont(formula = X1 ~ X2, 
	       dat = dat, 
	       var.X1 = "X1", 
	       var.failureFlag = "failureFlag", 
               power = 0.806, 
	       theta = exp(1), 
	       alpha = 0.05)

# }

Run the code above in your browser using DataLab