Learn R Programming

powerSurvEpi (version 0.1.3)

powerEpiCont: Power Calculation for Cox Proportional Hazards Regression with Nonbinary Covariates for Epidemiological Studies

Description

Power calculation for Cox proportional hazards regression with nonbinary covariates for Epidemiological Studies. Some parameters will be estimated based on a pilot data set.

Usage

powerEpiCont(formula, 
	     dat, 
	     var.X1, 
	     var.failureFlag, 
	     n, 
	     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).

n

integer. total number of subjects.

theta

numeric. postulated hazard ratio.

alpha

numeric. type I error rate.

Value

power

The power of the test.

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 power 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 power required to detect a hazard ratio as small as \(\exp(\beta_1)=\theta\) is $$power=\Phi\left(-z_{1-\alpha/2}+\sqrt{n[\log(\theta)]^2 \sigma^2 \psi (1-\rho^2)}\right),$$ 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\) 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

powerEpiCont.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)

  powerEpiCont(formula = X1 ~ X2, 
	       dat = dat, 
	       var.X1 = "X1", 
	       var.failureFlag = "failureFlag", 
               n = 107, 
	       theta = exp(1), 
	       alpha = 0.05)

# }

Run the code above in your browser using DataLab