1
0
mw-lifecycle-analysis/dsl/survival.R

29 lines
1.0 KiB
R

library(tidyverse)
dsl_csv <-"~/dsl/102725_DSL_df_adac.csv"
dsl_df <- read.csv(dsl_csv, header = TRUE)
#https://stats.oarc.ucla.edu/wp-content/uploads/2025/02/survival_r_full.html
dsl_df <- dsl_df |>
filter(source == "c1")
library(survival)
library(broom)
dsl_df$ttr_weeks <- dsl_df$TTR / 168
trial.survival <- Surv(dsl_df$ttr_weeks)
trial.model <- coxph(trial.survival ~ isAuthorWMF +
median_PC3_adac + week_index +
median_gerrit_loc_delta + median_gerrit_reviewers +
olmo_BI_prop_adac, data=dsl_df)
summary(trial.model)
trial.tab <- tidy(trial.model, exponentiate=T, conf.int=T)
ggplot(trial.tab,
aes(y=term, x=estimate, xmin=conf.low, xmax=conf.high)) +
geom_pointrange() + # plots center point (x) and range (xmin, xmax)
geom_vline(xintercept=1, color="red") + # vertical line at HR=1
labs(x="hazard ratio", title="Hazard ratios and 95% CIs") +
theme_classic()
surv.at.means <- survfit(trial.model)
plot(surv.at.means, xlab="weeks", ylab="survival probability")