Afris Setiya Intan Amanda

3/6/2023

Studi Kasus Uji Log Rank

Modul pembelajaran secara lengkap dapat diakses melalui tautan sebagai berikut: download disini!

Library & Packages

library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.4.0      ✔ purrr   0.3.5 
## ✔ tibble  3.1.8      ✔ dplyr   1.0.10
## ✔ tidyr   1.2.1      ✔ stringr 1.4.1 
## ✔ readr   2.1.3      ✔ forcats 0.5.2 
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
library(asaur)
library(dplyr)
library(survival)
library(survminer)
## Loading required package: ggpubr
## 
## Attaching package: 'survminer'
## 
## The following object is masked from 'package:survival':
## 
##     myeloma
library(ggsurvfit)

Data

Data yang digunakan merupakan data kohort pada April-Desember 2015 yang diperoleh dari artikel penelitian berjudul “Machine Learning can Predict Survival of Patients with Heart Failure from Serum Creatinine and Ejection Fraction Alone” yang ditulis oleh David Chicco dan Giuseppe Jurman (2020). Unit amatan pada penelitian ini terdiri dari 299 pasien gagal jantung sesuai rekam medis milik Rumah Sakit Faisalabad di Punjab, Pakistan. Peubah-peubah yang digunakan tertera pada Tabel 1.

Tabel 1

mydata <- read.csv("D:/MY COLLEGE/SEMESTER 6/ADT/DATA/heart_failure_clinical_records_dataset.csv", sep = ",")
tidyr::tibble(mydata)
## # A tibble: 299 × 13
##      age anaemia creatin…¹ diabe…² eject…³ high_…⁴ plate…⁵ serum…⁶ serum…⁷   sex
##    <dbl>   <int>     <int>   <int>   <int>   <int>   <dbl>   <dbl>   <int> <int>
##  1    75       0       582       0      20       1 265000      1.9     130     1
##  2    55       0      7861       0      38       0 263358.     1.1     136     1
##  3    65       0       146       0      20       0 162000      1.3     129     1
##  4    50       1       111       0      20       0 210000      1.9     137     1
##  5    65       1       160       1      20       0 327000      2.7     116     0
##  6    90       1        47       0      40       1 204000      2.1     132     1
##  7    75       1       246       0      15       0 127000      1.2     137     1
##  8    60       1       315       1      60       0 454000      1.1     131     1
##  9    65       0       157       0      65       0 263358.     1.5     138     0
## 10    80       1       123       0      35       1 388000      9.4     133     1
## # … with 289 more rows, 3 more variables: smoking <int>, time <int>,
## #   DEATH_EVENT <int>, and abbreviated variable names
## #   ¹​creatinine_phosphokinase, ²​diabetes, ³​ejection_fraction,
## #   ⁴​high_blood_pressure, ⁵​platelets, ⁶​serum_creatinine, ⁷​serum_sodium

EDA dan Pra Proses

Analisis Deskriptif

summary(mydata)
##       age           anaemia       creatinine_phosphokinase    diabetes     
##  Min.   :40.00   Min.   :0.0000   Min.   :  23.0           Min.   :0.0000  
##  1st Qu.:51.00   1st Qu.:0.0000   1st Qu.: 116.5           1st Qu.:0.0000  
##  Median :60.00   Median :0.0000   Median : 250.0           Median :0.0000  
##  Mean   :60.83   Mean   :0.4314   Mean   : 581.8           Mean   :0.4181  
##  3rd Qu.:70.00   3rd Qu.:1.0000   3rd Qu.: 582.0           3rd Qu.:1.0000  
##  Max.   :95.00   Max.   :1.0000   Max.   :7861.0           Max.   :1.0000  
##  ejection_fraction high_blood_pressure   platelets      serum_creatinine
##  Min.   :14.00     Min.   :0.0000      Min.   : 25100   Min.   :0.500   
##  1st Qu.:30.00     1st Qu.:0.0000      1st Qu.:212500   1st Qu.:0.900   
##  Median :38.00     Median :0.0000      Median :262000   Median :1.100   
##  Mean   :38.08     Mean   :0.3512      Mean   :263358   Mean   :1.394   
##  3rd Qu.:45.00     3rd Qu.:1.0000      3rd Qu.:303500   3rd Qu.:1.400   
##  Max.   :80.00     Max.   :1.0000      Max.   :850000   Max.   :9.400   
##   serum_sodium        sex            smoking            time      
##  Min.   :113.0   Min.   :0.0000   Min.   :0.0000   Min.   :  4.0  
##  1st Qu.:134.0   1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.: 73.0  
##  Median :137.0   Median :1.0000   Median :0.0000   Median :115.0  
##  Mean   :136.6   Mean   :0.6488   Mean   :0.3211   Mean   :130.3  
##  3rd Qu.:140.0   3rd Qu.:1.0000   3rd Qu.:1.0000   3rd Qu.:203.0  
##  Max.   :148.0   Max.   :1.0000   Max.   :1.0000   Max.   :285.0  
##   DEATH_EVENT    
##  Min.   :0.0000  
##  1st Qu.:0.0000  
##  Median :0.0000  
##  Mean   :0.3211  
##  3rd Qu.:1.0000  
##  Max.   :1.0000

Visualisasi Meninggal vs Tersensor

options(repr.plot.width = 10, repr.plot.height = 4)

mydata %>%
    mutate(event_type = factor(ifelse(DEATH_EVENT == 1, "death", "censored"))) %>%
    group_by(event_type) %>%
    tally(name = "count") %>%
    ggplot(aes(x = event_type, y = count)) + 
    geom_bar(stat = "Identity", fill = "orange", width = 0.2, colour = "black") +
    ggtitle("Perbandingan Banyak Record Pasien\nTersesor vs Meninggal") + 
    theme(plot.title = element_text(size = 22),  
          axis.title = element_text(size = 16))

Terlihat bahwa proporsi record pasien tersensor lebih banyak dibandingkan oleh pasien yang mengalami kejadian berupa kematian.

Visualisasi Sebaran time-to-event

options(repr.plot.width = 12, repr.plot.height = 5)

mydata %>%
    mutate(
        event_type = factor(ifelse(DEATH_EVENT == 1, "death", "censored"))
    ) %>%
    select(event_type, time) %>%
    ggplot(aes(x = time, colour = event_type)) + 
    geom_density() + 
    ggtitle("Sebaran Waktu Kajian Berdasarkan\nKejadian: Tersensor vs Meninggal") + 
    theme(plot.title = element_text(size = 22),  
          axis.title = element_text(size = 16), 
          legend.title = element_text(size = 18), 
          legend.text = element_text(size = 16))

Terlihat bahwa sebaran record pasien tersensor dan mengalami kejadian berupa kematian terlihat berbeda.

Identifikasi Missing Value

sapply(mydata, function(x) sum(is.na(x)))
##                      age                  anaemia creatinine_phosphokinase 
##                        0                        0                        0 
##                 diabetes        ejection_fraction      high_blood_pressure 
##                        0                        0                        0 
##                platelets         serum_creatinine             serum_sodium 
##                        0                        0                        0 
##                      sex                  smoking                     time 
##                        0                        0                        0 
##              DEATH_EVENT 
##                        0

Tidak terindentifikasi adanya missing value.

Identifikasi Data Duplikat

sum(duplicated(mydata$id))
## [1] 0
dim(mydata[duplicated(mydata$id),])[1]
## [1] 0

0 berarti tidak ada duplikat data.

Pengklasifikasian Peubah

# Assign ID
mydata$id <- seq.int(nrow(mydata))

#Diabetes
mydata$dia <-ifelse(mydata$diabetes==1, "Yes", "No")

#Serum Sodium
mydata$sodiumc <- ifelse(mydata$serum_sodium >135 & mydata$serum_sodium<145, "Serum\nSodium Normal", "Serum\nSodium Abnormal")
mydata$sodiumn <- ifelse(mydata$serum_sodium >135 & mydata$serum_sodium<145, 0, 1)

#Usia
mydata$agegp <- ifelse(mydata$age<65, "Age <65", "Age >=65")
mydata$agegpn <- ifelse(mydata$age<65, 0, 1)

#Kejadian vs Sensor
mydata$cnsr <- ifelse(mydata$DEATH_EVENT==0, "Censor", "Event")

Kurva Daya Tahan Kaplan Meier & Uji Log Rank

Hipotesis yang diuji:
H0 : Kurva daya tahan hidup antara kategori peubah pada pasien gagal jantung sama
H1 : Kurva daya tahan hidup antara kategori peubah pada pasien gagal jantung beda

Kriteria Kaidah Keputusan:
Tabel 1

Peubah Diabetes

fit_dia<-survfit(Surv(time,DEATH_EVENT)~mydata$dia, data=mydata)

summary(fit_dia)
## Call: survfit(formula = Surv(time, DEATH_EVENT) ~ mydata$dia, data = mydata)
## 
##                 mydata$dia=No 
##  time n.risk n.event survival std.err lower 95% CI upper 95% CI
##     4    174       1    0.994 0.00573        0.983        1.000
##     6    173       1    0.989 0.00808        0.973        1.000
##     7    172       2    0.977 0.01136        0.955        1.000
##     8    170       1    0.971 0.01266        0.947        0.996
##    10    169       5    0.943 0.01764        0.909        0.978
##    11    164       2    0.931 0.01921        0.894        0.969
##    13    161       1    0.925 0.01994        0.887        0.965
##    14    160       2    0.914 0.02130        0.873        0.956
##    15    158       1    0.908 0.02194        0.866        0.952
##    20    156       1    0.902 0.02256        0.859        0.947
##    24    155       1    0.896 0.02315        0.852        0.943
##    26    154       1    0.890 0.02372        0.845        0.938
##    28    153       1    0.885 0.02427        0.838        0.933
##    31    152       1    0.879 0.02480        0.832        0.929
##    38    151       1    0.873 0.02531        0.825        0.924
##    41    150       1    0.867 0.02580        0.818        0.919
##    42    149       1    0.861 0.02627        0.811        0.914
##    43    148       2    0.850 0.02718        0.798        0.905
##    50    146       1    0.844 0.02761        0.791        0.900
##    55    143       1    0.838 0.02804        0.785        0.895
##    60    142       1    0.832 0.02845        0.778        0.890
##    61    140       1    0.826 0.02887        0.771        0.885
##    64    138       1    0.820 0.02927        0.765        0.880
##    65    137       1    0.814 0.02966        0.758        0.874
##    66    136       1    0.808 0.03004        0.751        0.869
##    72    134       1    0.802 0.03042        0.745        0.864
##    73    133       2    0.790 0.03113        0.731        0.854
##    82    123       1    0.784 0.03154        0.724        0.848
##    88    114       1    0.777 0.03200        0.717        0.842
##    90    111       2    0.763 0.03292        0.701        0.830
##    95    106       1    0.756 0.03338        0.693        0.824
##    96    103       1    0.748 0.03386        0.685        0.818
##   109     93       1    0.740 0.03444        0.676        0.811
##   111     90       1    0.732 0.03502        0.666        0.804
##   113     87       1    0.724 0.03562        0.657        0.797
##   115     85       1    0.715 0.03620        0.648        0.790
##   162     65       1    0.704 0.03728        0.635        0.781
##   170     64       1    0.693 0.03828        0.622        0.772
##   172     63       1    0.682 0.03922        0.609        0.763
##   180     60       2    0.659 0.04108        0.584        0.745
##   196     47       1    0.645 0.04253        0.567        0.734
##   198     45       1    0.631 0.04394        0.550        0.723
##   207     39       1    0.615 0.04569        0.531        0.711
##   214     26       1    0.591 0.04968        0.501        0.697
##   241     15       1    0.552 0.06000        0.446        0.683
## 
##                 mydata$dia=Yes 
##  time n.risk n.event survival std.err lower 95% CI upper 95% CI
##     8    125       1    0.992 0.00797        0.977        1.000
##    10    124       1    0.984 0.01122        0.962        1.000
##    15    123       1    0.976 0.01369        0.950        1.000
##    20    122       1    0.968 0.01574        0.938        0.999
##    23    120       2    0.952 0.01917        0.915        0.990
##    26    118       2    0.936 0.02198        0.894        0.980
##    27    116       1    0.928 0.02322        0.883        0.974
##    28    115       1    0.920 0.02438        0.873        0.969
##    29    114       1    0.912 0.02547        0.863        0.963
##    30    112       4    0.879 0.02930        0.823        0.938
##    32    107       1    0.871 0.03016        0.814        0.932
##    33    106       2    0.854 0.03175        0.794        0.919
##    35    103       1    0.846 0.03251        0.785        0.912
##    40    102       1    0.838 0.03323        0.775        0.905
##    43    101       1    0.829 0.03392        0.766        0.899
##    44    100       1    0.821 0.03458        0.756        0.892
##    45     99       1    0.813 0.03521        0.747        0.885
##    59     98       1    0.805 0.03581        0.737        0.878
##    60     97       1    0.796 0.03639        0.728        0.871
##    65     96       1    0.788 0.03695        0.719        0.864
##    67     95       1    0.780 0.03748        0.710        0.857
##    77     90       1    0.771 0.03805        0.700        0.849
##    78     89       1    0.762 0.03860        0.690        0.842
##   100     72       1    0.752 0.03949        0.678        0.833
##   126     62       1    0.740 0.04067        0.664        0.824
##   129     61       1    0.728 0.04177        0.650        0.814
##   130     60       1    0.715 0.04280        0.636        0.804
##   135     59       1    0.703 0.04376        0.623        0.794
##   150     53       1    0.690 0.04490        0.607        0.784
##   154     52       1    0.677 0.04595        0.592        0.773
##   171     51       1    0.663 0.04693        0.578        0.762
##   172     50       1    0.650 0.04783        0.563        0.751
##   193     37       1    0.633 0.04966        0.542        0.738
##   235     21       1    0.602 0.05569        0.503        0.722
ggsurvplot(fit_dia,data=mydata, xlab="Days", ggtheme=theme_minimal())

survdiff(Surv(time,DEATH_EVENT)~dia, data=mydata)
## Call:
## survdiff(formula = Surv(time, DEATH_EVENT) ~ dia, data = mydata)
## 
##           N Observed Expected (O-E)^2/E (O-E)^2/V
## dia=No  174       56       55    0.0172    0.0405
## dia=Yes 125       40       41    0.0231    0.0405
## 
##  Chisq= 0  on 1 degrees of freedom, p= 0.8

Kaidah keputusan : Tak Tolak H0
Kesimpulan : Kurva daya tahan terlihat tidak ada perbedaan yang signifikan antara pasien yang menderita penyakit gagal jantung yang sekaligus menderita penyakit diabetes dan tidak.

Peubah Serum Sodium

fit_sd<-survfit(Surv(time,DEATH_EVENT)~sodiumc, data=mydata)

summary(fit_sd)
## Call: survfit(formula = Surv(time, DEATH_EVENT) ~ sodiumc, data = mydata)
## 
##                 sodiumc=Serum
## Sodium Abnormal 
##  time n.risk n.event survival std.err lower 95% CI upper 95% CI
##     4    110       1    0.991 0.00905        0.973        1.000
##     7    109       1    0.982 0.01274        0.957        1.000
##     8    108       2    0.964 0.01785        0.929        0.999
##    10    106       3    0.936 0.02327        0.892        0.983
##    14    103       1    0.927 0.02476        0.880        0.977
##    15    102       1    0.918 0.02613        0.868        0.971
##    23    100       1    0.909 0.02744        0.857        0.964
##    26     99       2    0.891 0.02980        0.834        0.951
##    27     97       1    0.881 0.03087        0.823        0.944
##    28     96       2    0.863 0.03285        0.801        0.930
##    30     94       3    0.836 0.03544        0.769        0.908
##    31     91       1    0.826 0.03622        0.758        0.900
##    35     89       1    0.817 0.03698        0.748        0.893
##    38     88       1    0.808 0.03771        0.737        0.885
##    41     87       1    0.799 0.03840        0.727        0.877
##    43     86       1    0.789 0.03906        0.716        0.870
##    44     85       1    0.780 0.03969        0.706        0.862
##    45     84       1    0.771 0.04029        0.696        0.854
##    50     83       1    0.761 0.04086        0.685        0.846
##    60     82       1    0.752 0.04141        0.675        0.838
##    61     81       1    0.743 0.04192        0.665        0.830
##    64     80       1    0.734 0.04241        0.655        0.822
##    67     79       1    0.724 0.04288        0.645        0.813
##    72     78       1    0.715 0.04332        0.635        0.805
##    73     77       1    0.706 0.04375        0.625        0.797
##    77     75       1    0.696 0.04416        0.615        0.788
##    82     72       1    0.687 0.04460        0.605        0.780
##    90     69       1    0.677 0.04505        0.594        0.771
##    95     66       1    0.666 0.04551        0.583        0.762
##    96     63       1    0.656 0.04601        0.572        0.752
##   100     61       1    0.645 0.04649        0.560        0.743
##   109     56       1    0.634 0.04707        0.548        0.733
##   113     54       1    0.622 0.04763        0.535        0.723
##   115     53       1    0.610 0.04816        0.523        0.712
##   130     49       1    0.598 0.04876        0.509        0.701
##   135     47       1    0.585 0.04935        0.496        0.690
##   162     42       1    0.571 0.05010        0.481        0.678
##   172     41       1    0.557 0.05078        0.466        0.666
##   180     37       2    0.527 0.05231        0.434        0.640
##   193     32       1    0.510 0.05320        0.416        0.626
##   198     28       1    0.492 0.05434        0.396        0.611
##   207     23       1    0.471 0.05603        0.373        0.595
##   235      9       1    0.419 0.07009        0.301        0.581
##   241      8       1    0.366 0.07846        0.241        0.557
## 
##                 sodiumc=Serum
## Sodium Normal 
##  time n.risk n.event survival std.err lower 95% CI upper 95% CI
##     6    189       1    0.995 0.00528        0.984        1.000
##     7    188       1    0.989 0.00744        0.975        1.000
##    10    187       3    0.974 0.01167        0.951        0.997
##    11    184       2    0.963 0.01374        0.936        0.990
##    13    181       1    0.958 0.01466        0.929        0.987
##    14    180       1    0.952 0.01551        0.922        0.983
##    15    179       1    0.947 0.01631        0.916        0.980
##    20    177       2    0.936 0.01779        0.902        0.972
##    23    175       1    0.931 0.01848        0.895        0.968
##    24    174       1    0.926 0.01913        0.889        0.964
##    26    173       1    0.920 0.01976        0.882        0.960
##    29    172       1    0.915 0.02035        0.876        0.956
##    30    170       1    0.910 0.02093        0.869        0.951
##    32    168       1    0.904 0.02150        0.863        0.947
##    33    167       2    0.893 0.02256        0.850        0.939
##    40    165       1    0.888 0.02306        0.844        0.934
##    42    164       1    0.882 0.02355        0.837        0.930
##    43    163       2    0.872 0.02447        0.825        0.921
##    55    159       1    0.866 0.02493        0.819        0.916
##    59    158       1    0.861 0.02536        0.812        0.912
##    60    157       1    0.855 0.02579        0.806        0.907
##    65    154       2    0.844 0.02662        0.793        0.898
##    66    152       1    0.839 0.02702        0.787        0.893
##    73    148       1    0.833 0.02743        0.781        0.888
##    78    142       1    0.827 0.02785        0.774        0.883
##    88    124       1    0.820 0.02842        0.766        0.878
##    90    120       1    0.813 0.02899        0.759        0.872
##   111    101       1    0.805 0.02980        0.749        0.866
##   126     87       1    0.796 0.03086        0.738        0.859
##   129     86       1    0.787 0.03186        0.727        0.852
##   150     76       1    0.777 0.03308        0.714        0.844
##   154     75       1    0.766 0.03422        0.702        0.836
##   170     74       1    0.756 0.03529        0.690        0.828
##   171     73       1    0.745 0.03630        0.678        0.820
##   172     72       1    0.735 0.03724        0.666        0.812
##   196     54       1    0.722 0.03896        0.649        0.802
##   214     37       1    0.702 0.04251        0.623        0.790
ggsurvplot(fit_sd,data=mydata ,xlab="Days", ggtheme=theme_minimal())

survdiff(Surv(time,DEATH_EVENT)~sodiumc, data=mydata)
## Call:
## survdiff(formula = Surv(time, DEATH_EVENT) ~ sodiumc, data = mydata)
## 
##                                  N Observed Expected (O-E)^2/E (O-E)^2/V
## sodiumc=Serum\nSodium Abnormal 110       52     33.8      9.83      15.2
## sodiumc=Serum\nSodium Normal   189       44     62.2      5.34      15.2
## 
##  Chisq= 15.2  on 1 degrees of freedom, p= 9e-05

Kaidah keputusan : Tolak H0
Kesimpulan : Kurva daya tahan terlihat ada perbedaan yang signifikan antara pasien yang menderita penyakit gagal jantung dengan tingkat serum natrium dalam darah tergolong normal dan tidak.

Peubah Usia

fit_age<-survfit(Surv(time,DEATH_EVENT)~agegp, data=mydata)

summary(fit_age)
## Call: survfit(formula = Surv(time, DEATH_EVENT) ~ agegp, data = mydata)
## 
##                 agegp=Age <65 
##  time n.risk n.event survival std.err lower 95% CI upper 95% CI
##     6    184       1    0.995 0.00542        0.984        1.000
##     7    183       1    0.989 0.00764        0.974        1.000
##    10    182       2    0.978 0.01075        0.957        1.000
##    11    180       2    0.967 0.01309        0.942        0.993
##    14    177       1    0.962 0.01411        0.935        0.990
##    15    176       1    0.956 0.01506        0.927        0.986
##    26    174       1    0.951 0.01594        0.920        0.983
##    28    173       1    0.945 0.01677        0.913        0.979
##    30    171       1    0.940 0.01756        0.906        0.975
##    32    169       1    0.934 0.01831        0.899        0.971
##    33    168       1    0.929 0.01903        0.892        0.967
##    35    167       1    0.923 0.01971        0.885        0.963
##    38    166       1    0.918 0.02036        0.879        0.958
##    40    165       1    0.912 0.02099        0.872        0.954
##    42    164       1    0.907 0.02158        0.865        0.950
##    43    163       2    0.895 0.02271        0.852        0.941
##    45    161       1    0.890 0.02324        0.845        0.937
##    55    159       1    0.884 0.02375        0.839        0.932
##    60    158       2    0.873 0.02474        0.826        0.923
##    61    155       1    0.867 0.02521        0.819        0.918
##    64    153       1    0.862 0.02568        0.813        0.914
##    65    152       1    0.856 0.02613        0.806        0.909
##    73    149       1    0.850 0.02657        0.800        0.904
##    77    146       1    0.845 0.02702        0.793        0.899
##    78    145       1    0.839 0.02746        0.787        0.894
##    82    139       1    0.833 0.02792        0.780        0.889
##    96    118       1    0.826 0.02856        0.772        0.884
##   100    116       1    0.819 0.02918        0.763        0.878
##   126     90       1    0.809 0.03024        0.752        0.871
##   129     89       1    0.800 0.03124        0.741        0.864
##   135     87       1    0.791 0.03221        0.730        0.857
##   150     78       1    0.781 0.03335        0.718        0.849
##   170     77       1    0.771 0.03443        0.706        0.841
##   171     76       1    0.761 0.03544        0.694        0.833
##   172     75       2    0.740 0.03728        0.671        0.817
##   180     69       1    0.730 0.03826        0.658        0.809
##   193     57       1    0.717 0.03967        0.643        0.799
##   196     56       1    0.704 0.04097        0.628        0.789
##   207     49       1    0.690 0.04258        0.611        0.778
##   214     41       1    0.673 0.04474        0.591        0.767
##   241     25       1    0.646 0.05040        0.554        0.753
## 
##                 agegp=Age >=65 
##  time n.risk n.event survival std.err lower 95% CI upper 95% CI
##     4    115       1    0.991 0.00866        0.974        1.000
##     7    114       1    0.983 0.01219        0.959        1.000
##     8    113       2    0.965 0.01709        0.932        0.999
##    10    111       4    0.930 0.02372        0.885        0.978
##    13    107       1    0.922 0.02505        0.874        0.972
##    14    106       1    0.913 0.02628        0.863        0.966
##    15    105       1    0.904 0.02743        0.852        0.960
##    20    103       2    0.887 0.02957        0.831        0.947
##    23    101       2    0.869 0.03148        0.810        0.933
##    24     99       1    0.860 0.03237        0.799        0.926
##    26     98       2    0.843 0.03401        0.779        0.912
##    27     96       1    0.834 0.03477        0.769        0.905
##    28     95       1    0.825 0.03549        0.759        0.898
##    29     94       1    0.817 0.03618        0.749        0.891
##    30     93       3    0.790 0.03808        0.719        0.868
##    31     90       1    0.781 0.03865        0.709        0.861
##    33     89       1    0.773 0.03920        0.700        0.853
##    41     87       1    0.764 0.03975        0.690        0.846
##    43     86       1    0.755 0.04027        0.680        0.838
##    44     85       1    0.746 0.04076        0.670        0.830
##    50     84       1    0.737 0.04123        0.661        0.823
##    59     82       1    0.728 0.04170        0.651        0.815
##    65     81       1    0.719 0.04214        0.641        0.807
##    66     80       1    0.710 0.04256        0.631        0.799
##    67     79       1    0.701 0.04296        0.622        0.791
##    72     78       1    0.692 0.04334        0.612        0.783
##    73     76       1    0.683 0.04372        0.603        0.774
##    88     64       1    0.672 0.04432        0.591        0.765
##    90     63       2    0.651 0.04541        0.568        0.746
##    95     59       1    0.640 0.04596        0.556        0.737
##   109     53       1    0.628 0.04665        0.543        0.726
##   111     52       1    0.616 0.04729        0.530        0.716
##   113     51       1    0.604 0.04788        0.517        0.705
##   115     50       1    0.592 0.04842        0.504        0.695
##   130     46       1    0.579 0.04905        0.490        0.683
##   154     40       1    0.564 0.04991        0.475        0.671
##   162     39       1    0.550 0.05069        0.459        0.659
##   180     37       1    0.535 0.05145        0.443        0.646
##   198     25       1    0.514 0.05366        0.419        0.630
##   235     10       1    0.462 0.06860        0.346        0.618
ggsurvplot(fit_age,data=mydata, xlab="Days", ggtheme=theme_minimal())

survdiff(Surv(time,DEATH_EVENT)~agegp, data=mydata)
## Call:
## survdiff(formula = Surv(time, DEATH_EVENT) ~ agegp, data = mydata)
## 
##                  N Observed Expected (O-E)^2/E (O-E)^2/V
## agegp=Age <65  184       46     62.7      4.44      12.9
## agegp=Age >=65 115       50     33.3      8.36      12.9
## 
##  Chisq= 12.9  on 1 degrees of freedom, p= 3e-04

Kaidah keputusan : Tolak H0
Kesimpulan : Kurva daya tahan terlihat ada perbedaan yang signifikan antara pasien yang menderita penyakit gagal jantung yang berusia <65 dan >=65 tahun.