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