library(survival)
library(flexsurv)
## Warning: package 'flexsurv' was built under R version 4.0.3
library(survminer)
## Warning: package 'survminer' was built under R version 4.0.3
## Loading required package: ggplot2
## Loading required package: ggpubr
## Warning: package 'ggpubr' was built under R version 4.0.3
data1=read.csv("C:/Users/Prokarso/Documents/Book3.csv")
data1=data1[,1:5]
data1
Fitting Additive Hazard Model:
data2=data1
data2$Survival.Times=data2$Survival.Times+runif(dim(data2)[1],0,1)*1e-8
attach(data2)
S1=Surv(time=Survival.Times,event=status)
library(addhazard)
## Warning: package 'addhazard' was built under R version 4.0.4
A1=ah(S1~factor(gender)+log.WBC+factor(Rx),data=data2,ties = FALSE)
summary(A1)
## Call:
## ah(formula = S1 ~ factor(gender) + log.WBC + factor(Rx), data = data2,
## ties = FALSE)
##
## coef se lower.95 upper.95 z p.value
## factor(gender) 0.02509 0.03023 -0.03415 0.08434 0.830 0.406478
## log.WBC 0.08286 0.02461 0.03463 0.13109 3.368 0.000759 ***
## factor(Rx) 0.07925 0.02944 0.02155 0.13696 2.692 0.007100 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
coeff=A1$coef
coeff
## factor(gender)1 log.WBC factor(Rx)1
## 0.025093 0.082859 0.079254
h=1:42
for(i in 1:42){
h[i]=coeff[1]*data2$gender[i]+coeff[2]*data2$log.WBC[i]+coeff[3]*data2$Rx[i]
}
d3=cbind(data2$Survival.Times,h)
d3=d3[which(data2$Rx==1 & data2$status==1),]
colnames(d3)=c("Survival.Times","Hazard Rate")
d3
## Survival.Times Hazard Rate
## [1,] 23 0.26758
## [2,] 22 0.30546
## [3,] 17 0.32369
## [4,] 15 0.26983
## [5,] 12 0.20354
## [6,] 12 0.33280
## [7,] 11 0.36843
## [8,] 11 0.25492
## [9,] 8 0.37092
## [10,] 8 0.33197
## [11,] 8 0.27149
## [12,] 8 0.37447
## [13,] 5 0.39353
## [14,] 5 0.40821
## [15,] 4 0.46561
## [16,] 4 0.30487
## [17,] 3 0.43661
## [18,] 2 0.51119
## [19,] 2 0.47556
## [20,] 1 0.33635
## [21,] 1 0.51864
d4=d3[order(d3[,1]),]
plot(d4,type = "l",main="Hazard Plot for Placebo")
ss=smooth.spline(d4,spar = 0.001)
plot(ss,type = "l",,main="Hazard Plot for Placebo")
d3=cbind(data2$Survival.Times,h)
d3=d3[which(data2$Rx==0 & data2$status==1),]
colnames(d3)=c("Survival.Times","Hazard Rate")
d3
## Survival.Times Hazard Rate
## [1,] 23 0.23804
## [2,] 22 0.21733
## [3,] 16 0.32339
## [4,] 13 0.23863
## [5,] 10 0.24526
## [6,] 7 0.36707
## [7,] 6 0.19140
## [8,] 6 0.36150
## [9,] 6 0.27178
d4=d3[order(d3[,1]),]
plot(d4,type = "l",main="Hazard Plot for Treatment")