Title: | Optimal Equal-HR Method to Find Two Cutpoints for U-Shaped Relationships in Cox Model |
---|---|
Description: | Use optimal equal-HR method to determine two optimal cutpoints of a continuous predictor that has a U-shaped relationship with survival outcomes based on Cox regression model. The optimal equal-HR method estimates two optimal cut-points that have approximately the same log hazard value based on Cox regression model and divides individuals into different groups according to their HR values. |
Authors: | Yimin Chen, Zhang Jinxin |
Maintainer: | Yimin Chen <[email protected]> |
License: | GPL-3 |
Version: | 0.1.2 |
Built: | 2025-03-10 04:03:36 UTC |
Source: | https://github.com/cran/CutpointsOEHR |
Use optimal equal-HR method to determine two optimal cutpoints of a continuous predictor that has a U-shape relationship with survival outcomes based on Cox regression model.
findcutpoints(cox_pspline_fit, data, nquantile = 100, exclude = 0.05, eps = 0.01, shape = "U")
findcutpoints(cox_pspline_fit, data, nquantile = 100, exclude = 0.05, eps = 0.01, shape = "U")
cox_pspline_fit |
Cox model with psplined x, e.g. coxph(Surv(t,d)~pspline(x,df=0,caic=T),data=test). |
data |
a dataframe contain survival outcome and a continuous variable which needs to find two optimal cutpoints. |
nquantile |
an integer; the default value is 100, which means using the 100-quantiles of log relative hazard to find cutpoints. |
exclude |
a decimals; it is used for excluding extreme values of log relative hazardthe. The default value is 0.05, which log relative hazard values smaller than 5th percentile or larger than 95th percentile are excluded. |
eps |
a decimals; the default value is 0,01. It restrict the difference between the log relative hazard values of two cadidate cutpoints to be less than 0.01. |
shape |
a string; equals "U" or "inverseU" |
A function to find two optimal cutpoints
#### Example 1. Find two optimal cutpoints in an univariate Cox model # Fit an univariate Cox model with pspline require(survival) result <- coxph(Surv(t,d)~pspline(x,df=0,caic=TRUE),data=test) # Visualize the relationship # Explore whether there is a U-shaped relationship between x and log relative hazard termplot(result,se=TRUE,col.term=1,ylab='log relative hazard') # Find two opitmal cutpoints using optimal equal-HR method. cuts <- findcutpoints(cox_pspline_fit = result, data = test, shape='U') cuts$optimal # output two optimal cutpoints #### Example 2. Find two optimal cutpoints in a multivariate Cox model # Fit a multivariate Cox model with pspline # The independent variable which is need to find cutpoints should be placed before other covariates. # To find cutpoints of x, Surv(t,d)~pspline(x)+x1 should be used instead of Surv(t,d)~x1+pspline(x) require(survival) result <- coxph(Surv(t,d)~pspline(x,df=0,caic=TRUE)+x1,data=test) # The rest procedure is the same as example 1 # Visualize the relationship # Explore whether there is a U-shaped relationship between x and log relative hazard termplot(result,se=TRUE,col.term=1,ylab='log relative hazard') # Find two opitmal cutpoints of the first independent variable. cuts <- findcutpoints(cox_pspline_fit = result, data = test, shape='U') cuts$optimal # output two optimal cutpoints
#### Example 1. Find two optimal cutpoints in an univariate Cox model # Fit an univariate Cox model with pspline require(survival) result <- coxph(Surv(t,d)~pspline(x,df=0,caic=TRUE),data=test) # Visualize the relationship # Explore whether there is a U-shaped relationship between x and log relative hazard termplot(result,se=TRUE,col.term=1,ylab='log relative hazard') # Find two opitmal cutpoints using optimal equal-HR method. cuts <- findcutpoints(cox_pspline_fit = result, data = test, shape='U') cuts$optimal # output two optimal cutpoints #### Example 2. Find two optimal cutpoints in a multivariate Cox model # Fit a multivariate Cox model with pspline # The independent variable which is need to find cutpoints should be placed before other covariates. # To find cutpoints of x, Surv(t,d)~pspline(x)+x1 should be used instead of Surv(t,d)~x1+pspline(x) require(survival) result <- coxph(Surv(t,d)~pspline(x,df=0,caic=TRUE)+x1,data=test) # The rest procedure is the same as example 1 # Visualize the relationship # Explore whether there is a U-shaped relationship between x and log relative hazard termplot(result,se=TRUE,col.term=1,ylab='log relative hazard') # Find two opitmal cutpoints of the first independent variable. cuts <- findcutpoints(cox_pspline_fit = result, data = test, shape='U') cuts$optimal # output two optimal cutpoints
A dataframe named 'test'contains simulated (t,d,x,x1). The relationship of log relative hazard and x is set to to quandratic, which results in a U-shaped relationship.
test
test
a dataframe contains 200 rows and 4 variables. The 4 varibles are
simulated times of developing survival outcomes like deathes, relapes, etc.
censoring indicator, 1 means that survival outcomes are not observed, 0 means survival outcomes are observed. The censoring proportion is set to be 20 percent.
a continuous variable which has U-shaped relationship with log relative hazard.
a continuous variable which has linear relationship with log relative hazard.