#Question 1
set.seed(500)
# Sample size
n <- 100
# Generate Ti ~ Exp(1.1) for exponential distribution
Ti <- rexp(n, rate = 1.1)
# Generate Ci ~ Uniform(1.45, 10) for unifrom distribution
Ci <- runif(n, min = 1.45, max = 10)
# Observation time Yi = min(Ti, Ci)
Yi <- pmin(Ti, Ci)
# Event indicator δi = 1 if Ti <= Ci, 0 if Ti > Ci
Event <- as.integer(Ti <= Ci)
# Create dataframe
data_survival <- data.frame(Ti = Ti, Ci = Ci, Yi = Yi, Event = Event)
head(data_survival)
## Ti Ci Yi Event
## 1 0.60654539 3.732603 0.60654539 1
## 2 0.40911234 9.373738 0.40911234 1
## 3 0.12961590 9.843324 0.12961590 1
## 4 0.02214891 5.541008 0.02214891 1
## 5 0.44838874 7.424302 0.44838874 1
## 6 0.74671898 8.709238 0.74671898 1
#Question 2
library(survival)
## Warning: package 'survival' was built under R version 4.3.3
library(survminer)
## Warning: package 'survminer' was built under R version 4.3.3
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.3.3
## Loading required package: ggpubr
## Warning: package 'ggpubr' was built under R version 4.3.3
##
## Attaching package: 'survminer'
## The following object is masked from 'package:survival':
##
## myeloma
# Fit Kaplan-Meier estimator
fit <- survfit(Surv(Yi, Event) ~ 1, data = data_survival)
# Plot the Kaplan-Meier survival curve
ggsurvplot(fit, data = data_survival, conf.int = TRUE,
title = "The Kaplan-Meier Survival Curve",palette = "blue",
xlab = "Time", ylab = "Survival Probability")