README.md

survSens

This package performs a dual-parameter sensitivity analysis of treatment effect to unmeasured confounding in observational studies with either survival or competing risks outcomes.

Release Note

12/27/2022 Version 1.1.0

Motivated by Cinelli, C., & Hazlett, C. (2020), we introduce partial $R^2_{T \sim U | X, Z}$ and partial $R^2_{Z \sim U | X}$ to measure the dependency between the unmeasured confounder $U$ and the outcome $T$, and between $U$ and the treatment $Z$, respectively.

In the outcome model, suppose the full model $$T \sim X + Z + U$$ has a log likelihood $l_{1}$, and the reduced model $$T \sim X + Z$$ has a log likelihood $l_{0}$, with $k$ events, we calculate partial $R^2_{T \sim U | X, Z}$ similar to $R^2$ in O'Quigley, J., Xu, R., & Stare, J. (2005) $$R^2_{T \sim U | X, Z} = 1 - e^{-2(l_1 - l_0)/k}.$$

In the treatment model, according to Cox, D. R., & Snell, E. J. (1989), the full model $$Z \sim X + U$$ has deviance $DEV_1$, $$DEV_1 = -2 \sum[z_i \log(\hat p_i) + (1-z_i)\log(1-\hat p_i)]$$ where $$\hat p_i = P(z_i = 1 | x_i, u_i)$$ and the reduced model $$Z \sim X$$ has deviance $DEV_0$, $$DEV_0 = -2 \sum[z_i \log(\hat p_i) + (1-z_i)\log(1-\hat p_i)]$$ where $$\hat p_i = P(z_i = 1 | x_i)$$ then $$R^2_{Z \sim U | X} = 1 - e^{(DEV_1-DEV_0)/n}.$$

The returned partial $R^2$ has a sign, which indicates whether the association is positive or negative. Its absolute value is calculated as above.

04/29/2020 Version 0.1.0

Performs a dual-parameter sensitivity analysis of treatment effect to unmeasured confounding in observational studies with either survival or competing risks outcomes as described in Huang, R., Xu, R., & Dulai, P. S. (2020).

Install package from GitHub

if(!require(devtools))install.packages("devtools")
devtools::install_github("Rong0707/survSens")

Usage examples

For survival outcomes,

# Load the dataset included in the package.
data(survdata)
# Stochastic EM with regression
tau.res = survSensitivity(survdata$t, survdata$d, survdata$Z, survdata$X, "stoEM_reg", B = 5)
# EM with regression
tau.res = survSensitivity(survdata$t, survdata$d, survdata$Z, survdata$X, "EM_reg", Bem = 50)

# Contour plot with coefficients as axes.
plotsens(tau.res, coeff0 = 1.131)
# Contour plot with partial R-squared as axes.
plotsens(tau.res, coeff0 = 1.131, TRUE)

For competing risks outcomes,

# Load the dataset included in the package
data(comprdata)
# Stochastic EM with regression
tau.res = comprSensitivity(comprdata$t, comprdata$d, comprdata$Z, comprdata$X, "stoEM_reg", B = 5)
# EM with regression
tau.res = comprSensitivity(comprdata$t, comprdata$d, comprdata$Z, comprdata$X, "EM_reg", Bem = 50)

# Contour plot with coefficients as axes.
plotsens(tau.res$tau1, coeff0 = 1.244)
# Contour plot with partial R-squared as axes.
plotsens(tau.res$tau1, coeff0 = 1.244, TRUE)

Output consists of dataframe(s) for estimated treatment effect(s), as well as a contour plot for visualization.

Reference



Try the survSens package in your browser

Any scripts or data that you put into this service are public.

survSens documentation built on May 31, 2023, 9:30 p.m.