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

27 lines
1.0 KiB
R

library(tidyverse)
dsl_csv <-"~/dsl/111725_DSL_frame.csv"
dsl_df <- read.csv(dsl_csv, header = TRUE)
#https://stats.oarc.ucla.edu/wp-content/uploads/2025/02/survival_r_full.html
library(survival)
library(broom)
dsl_df$ttr_weeks <- dsl_df$TTR / 168
trial.survival <- Surv(dsl_df$ttr_weeks)
trial.model <- coxph(trial.survival ~ n_comments_before
+ week_index + as.factor(isAuthorWMF) * as.factor(source), 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")
#https://hbiostat.org/stat/binarysurv
plot(surv.at.means, xlab = "weeks", ylab = "survival probability", xlim = c(0, 26))