library(survival)
library(survminer)
## Loading required package: ggplot2
## Loading required package: ggpubr
## 
## Attaching package: 'survminer'
## The following object is masked from 'package:survival':
## 
##     myeloma
library(janitor)
## 
## Attaching package: 'janitor'
## The following objects are masked from 'package:stats':
## 
##     chisq.test, fisher.test
df <- read.csv("~/project/R PROGRAM/Survival_Analysis/breast_cancer_R.csv") %>% clean_names()
df1 <- df %>% mutate(across(where(is.integer), as.numeric))
str(df1)
## 'data.frame':    686 obs. of  10 variables:
##  $ hor_th  : chr  "no" "yes" "yes" "yes" ...
##  $ age     : num  70 56 58 59 73 32 59 65 80 66 ...
##  $ menostat: chr  "Post" "Post" "Post" "Post" ...
##  $ tsize   : num  21 12 35 17 35 57 8 16 39 18 ...
##  $ tgrade  : chr  "II" "II" "II" "II" ...
##  $ pnodes  : num  3 7 9 4 1 24 2 1 30 7 ...
##  $ progrec : num  48 61 52 60 26 0 181 192 0 0 ...
##  $ estrec  : num  66 77 271 29 65 13 0 25 59 3 ...
##  $ time    : num  1814 2018 712 1807 772 ...
##  $ cens    : num  1 1 1 1 1 1 0 0 1 0 ...
KmFit <- survfit(Surv(time, cens) ~ hor_th, data = df)
summary(KmFit)
## Call: survfit(formula = Surv(time, cens) ~ hor_th, data = df)
## 
##                 hor_th=no 
##  time n.risk n.event survival std.err lower 95% CI upper 95% CI
##    72    430       1    0.998 0.00232       0.9931        1.000
##    98    429       1    0.995 0.00328       0.9889        1.000
##   113    428       1    0.993 0.00401       0.9852        1.000
##   120    427       1    0.991 0.00463       0.9817        1.000
##   160    425       1    0.988 0.00517       0.9783        0.999
##   171    424       1    0.986 0.00566       0.9750        0.997
##   173    423       1    0.984 0.00611       0.9718        0.996
##   175    422       1    0.981 0.00652       0.9687        0.994
##   181    420       1    0.979 0.00691       0.9656        0.993
##   191    419       1    0.977 0.00728       0.9625        0.991
##   195    418       1    0.974 0.00763       0.9595        0.989
##   205    416       1    0.972 0.00796       0.9565        0.988
##   223    415       1    0.970 0.00828       0.9536        0.986
##   233    414       1    0.967 0.00859       0.9507        0.984
##   241    413       1    0.965 0.00888       0.9477        0.983
##   242    412       1    0.963 0.00916       0.9449        0.981
##   247    411       1    0.960 0.00943       0.9420        0.979
##   249    410       1    0.958 0.00970       0.9391        0.977
##   251    409       1    0.956 0.00995       0.9363        0.975
##   272    408       1    0.953 0.01020       0.9335        0.973
##   281    405       2    0.949 0.01068       0.9279        0.970
##   285    403       2    0.944 0.01113       0.9223        0.966
##   288    401       1    0.942 0.01135       0.9195        0.964
##   293    400       1    0.939 0.01156       0.9168        0.962
##   305    399       1    0.937 0.01177       0.9140        0.960
##   307    398       1    0.934 0.01198       0.9113        0.958
##   308    397       1    0.932 0.01217       0.9085        0.956
##   316    395       1    0.930 0.01237       0.9058        0.954
##   329    393       1    0.927 0.01256       0.9031        0.952
##   336    392       1    0.925 0.01275       0.9004        0.950
##   338    391       3    0.918 0.01330       0.8922        0.944
##   343    388       1    0.916 0.01347       0.8895        0.942
##   344    387       1    0.913 0.01364       0.8868        0.940
##   348    386       1    0.911 0.01381       0.8841        0.938
##   350    385       1    0.908 0.01398       0.8815        0.936
##   353    384       1    0.906 0.01414       0.8788        0.934
##   358    383       1    0.904 0.01430       0.8761        0.932
##   359    382       2    0.899 0.01461       0.8708        0.928
##   360    380       1    0.897 0.01476       0.8682        0.926
##   370    379       2    0.892 0.01506       0.8629        0.922
##   371    377       1    0.890 0.01520       0.8602        0.920
##   372    376       1    0.887 0.01534       0.8576        0.918
##   375    375       1    0.885 0.01548       0.8550        0.916
##   379    374       1    0.882 0.01562       0.8523        0.914
##   385    373       1    0.880 0.01576       0.8497        0.911
##   403    372       1    0.878 0.01589       0.8471        0.909
##   415    371       1    0.875 0.01603       0.8445        0.907
##   417    370       1    0.873 0.01616       0.8419        0.905
##   420    369       2    0.868 0.01641       0.8367        0.901
##   426    366       1    0.866 0.01654       0.8340        0.899
##   436    365       1    0.863 0.01666       0.8314        0.897
##   438    364       1    0.861 0.01678       0.8288        0.895
##   446    363       1    0.859 0.01690       0.8262        0.893
##   448    362       1    0.856 0.01702       0.8236        0.890
##   449    361       1    0.854 0.01714       0.8211        0.888
##   455    360       1    0.852 0.01726       0.8185        0.886
##   456    359       1    0.849 0.01737       0.8159        0.884
##   460    358       1    0.847 0.01748       0.8133        0.882
##   465    356       1    0.845 0.01759       0.8107        0.880
##   471    355       1    0.842 0.01771       0.8081        0.878
##   476    354       2    0.837 0.01792       0.8030        0.873
##   481    352       1    0.835 0.01803       0.8004        0.871
##   486    351       1    0.833 0.01813       0.7978        0.869
##   490    349       1    0.830 0.01824       0.7952        0.867
##   491    348       2    0.825 0.01844       0.7901        0.862
##   495    346       1    0.823 0.01854       0.7875        0.860
##   503    345       1    0.821 0.01864       0.7849        0.858
##   518    344       1    0.818 0.01874       0.7824        0.856
##   525    343       1    0.816 0.01884       0.7798        0.854
##   529    341       1    0.814 0.01893       0.7772        0.851
##   530    339       1    0.811 0.01903       0.7747        0.849
##   535    338       1    0.809 0.01912       0.7721        0.847
##   536    337       1    0.806 0.01922       0.7695        0.845
##   537    336       1    0.804 0.01931       0.7670        0.843
##   544    334       1    0.802 0.01940       0.7644        0.840
##   545    333       1    0.799 0.01949       0.7618        0.838
##   547    331       1    0.797 0.01958       0.7592        0.836
##   548    330       1    0.794 0.01967       0.7566        0.834
##   550    329       2    0.789 0.01984       0.7515        0.829
##   552    327       1    0.787 0.01993       0.7489        0.827
##   554    325       1    0.785 0.02001       0.7463        0.825
##   563    324       1    0.782 0.02010       0.7438        0.823
##   571    321       1    0.780 0.02018       0.7412        0.820
##   575    320       1    0.777 0.02027       0.7386        0.818
##   578    319       1    0.775 0.02035       0.7360        0.816
##   579    318       1    0.772 0.02043       0.7334        0.814
##   586    317       1    0.770 0.02051       0.7308        0.811
##   594    316       2    0.765 0.02067       0.7257        0.807
##   595    314       1    0.763 0.02075       0.7231        0.804
##   600    312       1    0.760 0.02082       0.7205        0.802
##   612    311       1    0.758 0.02090       0.7179        0.800
##   622    309       1    0.755 0.02097       0.7153        0.798
##   624    306       2    0.750 0.02113       0.7101        0.793
##   629    303       1    0.748 0.02120       0.7075        0.791
##   637    300       1    0.745 0.02128       0.7049        0.788
##   646    298       1    0.743 0.02135       0.7023        0.786
##   650    297       1    0.740 0.02143       0.6996        0.784
##   670    291       1    0.738 0.02150       0.6969        0.781
##   679    289       1    0.735 0.02158       0.6942        0.779
##   687    288       1    0.733 0.02165       0.6916        0.776
##   707    286       1    0.730 0.02173       0.6889        0.774
##   714    285       1    0.728 0.02180       0.6862        0.772
##   727    282       1    0.725 0.02188       0.6834        0.769
##   731    281       1    0.723 0.02195       0.6807        0.767
##   732    280       1    0.720 0.02203       0.6780        0.764
##   742    274       1    0.717 0.02210       0.6753        0.762
##   745    273       1    0.715 0.02218       0.6725        0.759
##   747    272       1    0.712 0.02225       0.6697        0.757
##   748    271       1    0.709 0.02232       0.6670        0.755
##   754    270       1    0.707 0.02239       0.6642        0.752
##   762    267       1    0.704 0.02247       0.6615        0.750
##   769    264       1    0.701 0.02254       0.6587        0.747
##   772    263       1    0.699 0.02261       0.6559        0.745
##   776    261       1    0.696 0.02268       0.6531        0.742
##   790    259       1    0.693 0.02275       0.6503        0.740
##   795    257       1    0.691 0.02282       0.6474        0.737
##   797    256       1    0.688 0.02289       0.6446        0.734
##   801    254       1    0.685 0.02296       0.6418        0.732
##   805    253       1    0.683 0.02303       0.6389        0.729
##   819    252       1    0.680 0.02310       0.6361        0.727
##   838    251       1    0.677 0.02316       0.6333        0.724
##   842    249       1    0.674 0.02323       0.6305        0.722
##   855    246       1    0.672 0.02330       0.6276        0.719
##   857    245       1    0.669 0.02336       0.6247        0.716
##   859    243       1    0.666 0.02343       0.6219        0.714
##   861    241       1    0.663 0.02349       0.6190        0.711
##   865    240       1    0.661 0.02356       0.6161        0.709
##   866    239       1    0.658 0.02362       0.6133        0.706
##   867    238       1    0.655 0.02368       0.6104        0.703
##   876    236       1    0.652 0.02375       0.6075        0.701
##   883    234       1    0.650 0.02381       0.6046        0.698
##   889    233       1    0.647 0.02387       0.6017        0.695
##   891    232       1    0.644 0.02393       0.5988        0.693
##   945    225       1    0.641 0.02399       0.5959        0.690
##   956    224       1    0.638 0.02405       0.5929        0.687
##   959    223       1    0.635 0.02412       0.5899        0.685
##   960    222       1    0.633 0.02418       0.5870        0.682
##   981    216       1    0.630 0.02424       0.5839        0.679
##   982    215       1    0.627 0.02430       0.5809        0.676
##   983    214       1    0.624 0.02437       0.5778        0.673
##   991    212       1    0.621 0.02443       0.5748        0.671
##  1002    210       1    0.618 0.02449       0.5717        0.668
##  1080    207       1    0.615 0.02455       0.5686        0.665
##  1090    203       1    0.612 0.02462       0.5655        0.662
##  1093    201       1    0.609 0.02468       0.5624        0.659
##  1094    199       1    0.606 0.02475       0.5592        0.656
##  1105    195       2    0.600 0.02488       0.5528        0.650
##  1108    193       1    0.596 0.02495       0.5495        0.647
##  1157    188       1    0.593 0.02501       0.5463        0.644
##  1162    187       1    0.590 0.02508       0.5430        0.641
##  1164    186       1    0.587 0.02515       0.5397        0.638
##  1170    184       1    0.584 0.02521       0.5364        0.635
##  1174    182       1    0.581 0.02528       0.5331        0.632
##  1192    178       1    0.577 0.02534       0.5297        0.629
##  1193    176       1    0.574 0.02541       0.5263        0.626
##  1207    173       1    0.571 0.02548       0.5229        0.623
##  1218    170       1    0.567 0.02555       0.5194        0.620
##  1219    169       1    0.564 0.02562       0.5160        0.617
##  1225    167       1    0.561 0.02569       0.5125        0.613
##  1253    159       1    0.557 0.02577       0.5088        0.610
##  1279    157       1    0.554 0.02585       0.5051        0.607
##  1280    156       1    0.550 0.02592       0.5015        0.603
##  1296    155       1    0.546 0.02600       0.4978        0.600
##  1306    153       1    0.543 0.02607       0.4941        0.596
##  1329    151       1    0.539 0.02614       0.4904        0.593
##  1337    149       1    0.536 0.02622       0.4867        0.590
##  1366    139       1    0.532 0.02631       0.4827        0.586
##  1371    138       1    0.528 0.02640       0.4787        0.582
##  1387    137       1    0.524 0.02649       0.4747        0.579
##  1388    136       1    0.520 0.02657       0.4707        0.575
##  1420    134       1    0.516 0.02666       0.4667        0.571
##  1449    127       1    0.512 0.02675       0.4625        0.568
##  1460    125       1    0.508 0.02685       0.4582        0.564
##  1525    116       1    0.504 0.02698       0.4536        0.560
##  1528    114       1    0.499 0.02710       0.4490        0.555
##  1587    109       1    0.495 0.02724       0.4442        0.551
##  1589    108       1    0.490 0.02737       0.4394        0.547
##  1601    106       1    0.486 0.02750       0.4346        0.543
##  1675     94       1    0.480 0.02768       0.4291        0.538
##  1684     91       1    0.475 0.02788       0.4235        0.533
##  1701     89       1    0.470 0.02807       0.4179        0.528
##  1730     77       1    0.464 0.02836       0.4113        0.523
##  1753     72       1    0.457 0.02869       0.4044        0.517
##  1806     67       1    0.450 0.02906       0.3969        0.511
##  1814     66       2    0.437 0.02974       0.3822        0.499
##  1990     39       1    0.426 0.03102       0.3690        0.491
##  2034     36       1    0.414 0.03233       0.3550        0.482
##  2039     35       1    0.402 0.03350       0.3414        0.473
##  2093     27       1    0.387 0.03541       0.3235        0.463
##  2286     10       1    0.348 0.04862       0.2650        0.458
##  2456      3       1    0.232 0.10020       0.0997        0.541
## 
##                 hor_th=yes 
##  time n.risk n.event survival std.err lower 95% CI upper 95% CI
##   169    240       1    0.996 0.00416        0.988        1.000
##   177    239       2    0.988 0.00717        0.974        1.000
##   180    237       1    0.983 0.00826        0.967        1.000
##   184    236       1    0.979 0.00922        0.961        0.997
##   227    233       1    0.975 0.01009        0.955        0.995
##   238    231       1    0.971 0.01090        0.950        0.992
##   272    230       1    0.967 0.01164        0.944        0.990
##   275    229       1    0.962 0.01233        0.938        0.987
##   286    228       1    0.958 0.01298        0.933        0.984
##   308    226       1    0.954 0.01359        0.928        0.981
##   357    224       1    0.950 0.01418        0.922        0.978
##   369    222       1    0.945 0.01475        0.917        0.975
##   374    221       1    0.941 0.01529        0.912        0.971
##   377    220       1    0.937 0.01581        0.906        0.968
##   392    219       1    0.932 0.01631        0.901        0.965
##   394    218       1    0.928 0.01678        0.896        0.962
##   410    217       1    0.924 0.01724        0.891        0.958
##   426    216       1    0.920 0.01768        0.886        0.955
##   473    212       1    0.915 0.01813        0.880        0.952
##   475    211       1    0.911 0.01855        0.875        0.948
##   491    210       1    0.907 0.01896        0.870        0.945
##   498    209       1    0.902 0.01936        0.865        0.941
##   500    208       1    0.898 0.01975        0.860        0.938
##   502    207       1    0.894 0.02012        0.855        0.934
##   504    206       1    0.889 0.02049        0.850        0.930
##   515    205       1    0.885 0.02084        0.845        0.927
##   533    204       1    0.881 0.02119        0.840        0.923
##   540    203       1    0.876 0.02152        0.835        0.919
##   542    202       1    0.872 0.02185        0.830        0.916
##   544    201       1    0.868 0.02217        0.825        0.912
##   548    200       2    0.859 0.02278        0.815        0.905
##   552    198       1    0.855 0.02307        0.811        0.901
##   554    197       1    0.850 0.02336        0.806        0.897
##   557    196       1    0.846 0.02364        0.801        0.894
##   559    195       1    0.842 0.02391        0.796        0.890
##   564    194       1    0.837 0.02418        0.791        0.886
##   573    192       1    0.833 0.02444        0.786        0.882
##   577    191       1    0.829 0.02470        0.781        0.878
##   598    190       1    0.824 0.02495        0.777        0.875
##   632    189       1    0.820 0.02520        0.772        0.871
##   648    188       1    0.815 0.02544        0.767        0.867
##   662    187       1    0.811 0.02568        0.762        0.863
##   675    186       1    0.807 0.02591        0.757        0.859
##   698    184       1    0.802 0.02613        0.753        0.855
##   712    183       1    0.798 0.02636        0.748        0.851
##   722    181       1    0.794 0.02658        0.743        0.847
##   729    179       1    0.789 0.02679        0.738        0.843
##   730    178       1    0.785 0.02701        0.733        0.839
##   755    172       1    0.780 0.02723        0.729        0.835
##   784    169       1    0.775 0.02746        0.723        0.831
##   797    168       1    0.771 0.02768        0.718        0.827
##   799    167       1    0.766 0.02790        0.713        0.823
##   827    164       1    0.762 0.02812        0.708        0.819
##   836    162       1    0.757 0.02833        0.703        0.814
##   855    161       1    0.752 0.02855        0.698        0.810
##   859    158       1    0.747 0.02876        0.693        0.806
##   890    155       1    0.743 0.02897        0.688        0.802
##   893    154       1    0.738 0.02919        0.683        0.797
##   918    152       1    0.733 0.02939        0.678        0.793
##   956    148       1    0.728 0.02961        0.672        0.788
##   964    147       1    0.723 0.02982        0.667        0.784
##  1036    142       1    0.718 0.03004        0.661        0.779
##  1043    141       1    0.713 0.03026        0.656        0.775
##  1059    140       1    0.708 0.03047        0.650        0.770
##  1120    132       1    0.702 0.03070        0.645        0.765
##  1140    131       1    0.697 0.03093        0.639        0.760
##  1146    130       1    0.692 0.03116        0.633        0.755
##  1150    129       1    0.686 0.03137        0.627        0.751
##  1183    125       1    0.681 0.03160        0.622        0.746
##  1246    122       1    0.675 0.03183        0.616        0.741
##  1280    120       1    0.670 0.03206        0.610        0.735
##  1343    113       1    0.664 0.03232        0.603        0.730
##  1352    111       1    0.658 0.03257        0.597        0.725
##  1363    108       1    0.652 0.03284        0.590        0.719
##  1459    105       1    0.645 0.03310        0.584        0.714
##  1463    104       1    0.639 0.03336        0.577        0.708
##  1481    103       1    0.633 0.03361        0.570        0.702
##  1493     98       1    0.627 0.03388        0.564        0.697
##  1502     96       1    0.620 0.03415        0.557        0.691
##  1521     93       1    0.613 0.03443        0.549        0.685
##  1641     87       1    0.606 0.03475        0.542        0.678
##  1679     83       1    0.599 0.03509        0.534        0.672
##  1763     69       1    0.590 0.03564        0.524        0.664
##  1807     65       1    0.581 0.03623        0.514        0.657
##  1918     44       1    0.568 0.03774        0.499        0.647
##  1975     41       1    0.554 0.03928        0.482        0.637
##  1977     40       1    0.540 0.04066        0.466        0.626
##  1989     38       1    0.526 0.04201        0.450        0.615
##  2015     32       1    0.510 0.04379        0.431        0.603
##  2018     30       1    0.493 0.04551        0.411        0.590
##  2030     27       1    0.474 0.04734        0.390        0.577
##  2372     13       1    0.438 0.05603        0.341        0.563
ggsurvplot(KmFit, data = df, xlab = "Time in days", ylab = "Survival Probability", title = "Kaplan-Meier Survival Curve")

cox_model <- coxph(Surv(time = time,event = cens) ~ age + hor_th + tsize + tgrade + pnodes + progrec + estrec, data = df1)
summary(cox_model)
## Call:
## coxph(formula = Surv(time = time, event = cens) ~ age + hor_th + 
##     tsize + tgrade + pnodes + progrec + estrec, data = df1)
## 
##   n= 686, number of events= 299 
## 
##                 coef  exp(coef)   se(coef)      z Pr(>|z|)    
## age        0.0002300  1.0002300  0.0062881  0.037  0.97082    
## hor_thyes -0.3314255  0.7178997  0.1288236 -2.573  0.01009 *  
## tsize      0.0074858  1.0075139  0.0039125  1.913  0.05571 .  
## tgradeII   0.6467536  1.9093323  0.2490284  2.597  0.00940 ** 
## tgradeIII  0.7896154  2.2025491  0.2682427  2.944  0.00324 ** 
## pnodes     0.0489088  1.0501246  0.0074532  6.562 5.31e-11 ***
## progrec   -0.0022879  0.9977148  0.0005753 -3.977 6.98e-05 ***
## estrec     0.0002073  1.0002073  0.0004467  0.464  0.64264    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##           exp(coef) exp(-coef) lower .95 upper .95
## age          1.0002     0.9998    0.9880    1.0126
## hor_thyes    0.7179     1.3930    0.5577    0.9241
## tsize        1.0075     0.9925    0.9998    1.0153
## tgradeII     1.9093     0.5237    1.1719    3.1107
## tgradeIII    2.2025     0.4540    1.3020    3.7261
## pnodes       1.0501     0.9523    1.0349    1.0656
## progrec      0.9977     1.0023    0.9966    0.9988
## estrec       1.0002     0.9998    0.9993    1.0011
## 
## Concordance= 0.688  (se = 0.015 )
## Likelihood ratio test= 102.8  on 8 df,   p=<2e-16
## Wald test            = 112.4  on 8 df,   p=<2e-16
## Score (logrank) test = 118.8  on 8 df,   p=<2e-16
ggsurvplot(survfit(cox_model), data = df1, xlab = "Time in days", ylab = "Survival Probability", title = "Cox Proportional Hazard Model")

LogRank <- survdiff(Surv(time, cens) ~ hor_th, data = df1)
LogRank
## Call:
## survdiff(formula = Surv(time, cens) ~ hor_th, data = df1)
## 
##              N Observed Expected (O-E)^2/E (O-E)^2/V
## hor_th=no  440      205      180      3.37      8.56
## hor_th=yes 246       94      119      5.12      8.56
## 
##  Chisq= 8.6  on 1 degrees of freedom, p= 0.003