library(readxl)
library(survival)
library(survminer)
## Warning: package 'survminer' was built under R version 4.3.3
## Loading required package: ggplot2
## Loading required package: ggpubr
## Warning: package 'ggpubr' was built under R version 4.3.2
##
## Attaching package: 'survminer'
## The following object is masked from 'package:survival':
##
## myeloma
Load Dataset
data <- read_excel("C:/Users/ditha/Downloads/data remisi pasien leukimia.xlsx")
print(data)
## # A tibble: 42 × 6
## Time Status Rx LogWBC `RX_log WBC` Sex
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 6 1 1 2.31 2.31 1
## 2 6 1 1 4.06 4.06 1
## 3 6 1 1 3.28 3.28 1
## 4 7 1 1 4.43 4.43 1
## 5 10 1 1 2.96 2.96 1
## 6 13 1 1 2.88 2.88 1
## 7 16 1 1 3.6 3.6 1
## 8 22 1 1 2.32 2.32 1
## 9 23 1 1 2.57 2.57 0
## 10 6 0 1 3.2 3.2 1
## # ℹ 32 more rows
Model Survival Parametrik Eksponensial (AFT)
model <- survreg(Surv(Time, Status) ~ LogWBC + Sex + Rx, data = data, dist = 'exponential')
summary(model)
##
## Call:
## survreg(formula = Surv(Time, Status) ~ LogWBC + Sex + Rx, data = data,
## dist = "exponential")
## Value Std. Error z p
## (Intercept) 7.460 1.020 7.31 2.6e-13
## LogWBC -0.950 0.227 -4.19 2.8e-05
## Sex -0.400 0.389 -1.03 0.3040
## Rx -1.080 0.403 -2.68 0.0074
##
## Scale fixed at 1
##
## Exponential distribution
## Loglik(model)= -100.2 Loglik(intercept only)= -116.8
## Chisq= 33.07 on 3 degrees of freedom, p= 3.1e-07
## Number of Newton-Raphson Iterations: 4
## n= 42
# Prediksi berdasarkan model
data$predicted_survival <- predict(model, newdata = data, type = "quantile", p = 0.5)
# Visualisasi kurva survival
ggsurvplot(
survfit(Surv(Time, Status) ~ Rx, data = data),
data = data,
pval = TRUE,
ggtheme = theme_classic(),
legend.title = "Pengobatan",
legend.labs = levels(data$Rx),
)
