從0開始學習R語言--Day22--km曲線

KM曲線

在分析疾病的死亡率時,我們往往會糾結于怎樣在邏輯架構中去考慮未死亡的人群,以及想研究兩種藥物的表現效果,但病人的指標表現都不明顯,作用于其他指標且很難量化。

而KM曲線可以很好地反映人群在時間序列上的生存率,且能考慮到中途生存出院的數據,因為死亡率并不會等到病人都死亡了再去計算,而KM曲線對于這類數據的處理是出院人群不影響生存概率,即不會提高它,只是當做數據集的長度變短了,這樣可以有效避免對于生存率和藥物效果的誤判。

這里舉一個例子來說明:

library(survival)
library(survminer)# 1. 生成模擬數據集
set.seed(123)  # 確保結果可重復
n <- 100       # 樣本量# 創建數據集:時間、事件狀態(1=發生事件,0=刪失)、組別
time <- round(rexp(n, rate=1/50), 1)  # 生存時間(指數分布)
status <- rbinom(n, size=1, prob=0.7) # 70%的概率發生事件
group <- sample(c("A", "B"), n, replace=TRUE) # 隨機分組# 創建數據框
surv_data <- data.frame(time, status, group)# 查看前幾行數據
head(surv_data)# 2. 擬合KM模型
km_fit <- survfit(Surv(time, status) ~ group, data=surv_data)# 3. 繪制KM曲線
ggsurvplot(km_fit, data = surv_data,pval = TRUE,          # 顯示p值conf.int = TRUE,      # 顯示置信區間risk.table = TRUE,    # 顯示風險表palette = c("#E7B800", "#2E9FDF"), # 顏色xlab = "Time (days)", # x軸標簽ylab = "Survival Probability", # y軸標簽title = "Kaplan-Meier Survival Curve", # 標題legend.labs = c("Group A", "Group B")) # 圖例標簽# 4. 查看匯總統計
summary(km_fit)# 5. 計算中位生存時間
km_fit

輸出:

Call: survfit(formula = Surv(time, status) ~ group, data = surv_data)group=A time n.risk n.event survival std.err lower 95% CI upper 95% CI0.2     61       1   0.9836  0.0163      0.95225        1.0002.1     60       1   0.9672  0.0228      0.92354        1.0002.8     58       1   0.9505  0.0278      0.89750        1.0003.4     57       1   0.9339  0.0320      0.87327        0.9997.3     54       1   0.9166  0.0357      0.84912        0.98910.8     53       1   0.8993  0.0390      0.82594        0.97913.0     51       1   0.8816  0.0421      0.80294        0.96814.0     49       1   0.8636  0.0449      0.78001        0.95614.1     48       1   0.8457  0.0474      0.75764        0.94414.2     47       1   0.8277  0.0497      0.73575        0.93115.3     45       1   0.8093  0.0519      0.71369        0.91815.7     44       1   0.7909  0.0539      0.69203        0.90415.8     42       1   0.7720  0.0558      0.67010        0.89016.0     41       1   0.7532  0.0575      0.64852        0.87519.0     40       1   0.7344  0.0591      0.62726        0.86024.0     39       1   0.7156  0.0605      0.60630        0.84528.2     38       1   0.6967  0.0618      0.58561        0.82929.5     36       1   0.6774  0.0630      0.56449        0.81331.5     35       1   0.6580  0.0641      0.54364        0.79632.2     34       1   0.6387  0.0651      0.52304        0.78034.3     33       1   0.6193  0.0659      0.50270        0.76339.5     32       1   0.6000  0.0666      0.48258        0.74648.3     29       1   0.5793  0.0675      0.46103        0.72848.6     28       1   0.5586  0.0682      0.43975        0.71048.7     27       1   0.5379  0.0687      0.41876        0.69151.4     25       1   0.5164  0.0692      0.39703        0.67256.5     23       1   0.4939  0.0698      0.37446        0.65259.6     22       1   0.4715  0.0701      0.35225        0.63162.7     21       1   0.4490  0.0703      0.33039        0.61066.5     20       1   0.4266  0.0703      0.30887        0.58972.0     18       1   0.4029  0.0702      0.28625        0.56774.8     16       1   0.3777  0.0702      0.26235        0.54478.2     13       1   0.3486  0.0706      0.23446        0.51878.5     11       2   0.2853  0.0706      0.17566        0.46381.0      9       1   0.2536  0.0695      0.14820        0.43486.6      8       1   0.2219  0.0676      0.12207        0.40392.8      7       1   0.1902  0.0650      0.09734        0.372108.4      6       1   0.1585  0.0614      0.07417        0.339136.3      4       1   0.1189  0.0574      0.04611        0.306202.1      3       1   0.0792  0.0501      0.02294        0.274224.9      2       1   0.0396  0.0376      0.00617        0.254360.6      1       1   0.0000     NaN           NA           NACall: survfit(formula = Surv(time, status) ~ group, data = surv_data)n events median 0.95LCL 0.95UCL
group=A 61     43   56.5    39.5    78.5
group=B 39     28   53.4    42.5    82.1

從輸出中,我們可以觀察到兩組的中位生存時間很接近,說明兩組數據的病人存活率差不多,而圖片中兩條曲線的趨勢相近,且置信區間(圖中的陰影部分)大部分重疊,更進一步說明了兩組數據的差異性不大。最后觀察p值遠大于0.05,說明在統計上兩組數據沒有顯著不同。但要注意的是,隨著時間的推移,樣本量的數量在急劇減少,在過了隨訪時間后,就很難跟蹤到病人進一步的變化,所以要想確定結論是否是對的,還需要擴大數據量去進一步分析。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/84786.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84786.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/84786.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringBoot ?@ControllerAdvice 處理異常

應用中的異常&#xff0c;有兩件事要考慮&#xff0c;怎么處理這個異常&#xff0c;怎么把異常可讀性高地返回給前端用戶 1.怎么把異常可讀性高的返回給前端用戶或API的消費者 自定義錯誤代碼和錯誤內容 2.怎么處理異常 比如遇到某個異常時需要發郵件通知IT團隊 Controlle…

爬百度圖片如何解決{“antiFlag“:1,“message“:“Forbid spider access“}

在學習深度學習的卷積神經算法時&#xff0c;需要貓和狗的訓練數據集。這時想到在百度網上爬取貓和狗的圖片。 在爬取狗狗圖片的時候&#xff0c;我抓包分析了下獲取這個url1 “https://image.baidu.com/search/index?tnbaiduimage&ipnr&ct201326592&cl2&lm&…

QWebEngine

Qt自帶的QWebEngine 不支持播放MP4, 需要手動編譯QWebEngine模塊 不支持播放mp4 // mainwindow.cpp , m_webEngine(new MyWebEngine(this)) void MainWindow::init() { //關閉系統代理&#xff0c;提高速度,采用release會更快QNetworkProxyFactory::setUseSystemConfigurati…

Rust 學習筆記1

Basic基礎 actix_web基礎 #[get("/favicon")] 獲取靜態圖片 #[get("/welcome")] 簡單的歡迎 #`/user/{name}/` basic.rs源碼 源碼 use std::{convert::Infallible, io};use actix_files::{Files, NamedFile}; use actix_session::{storage::Cooki…

3GPP協議PDF下載

https://www.tech-invite.com/3m38/tinv-3gpp-38.html 可以進入3GPP官網界面&#xff0c;也可以進入PDF下載界面 PDF加載比較慢

高性能服務器程序框架知識梳理

服務器編程框架 服務器程序種類有很多&#xff0c;但是基本框架都一樣&#xff0c;核心不同點在于邏輯處理單元。基本框架包含&#xff1a;I/O處理單元、邏輯單元、網絡存儲單元以及請求隊列。 I/O處理單元&#xff08;主線程&#xff09;&#xff1a;服務器用來管理客戶連接…

【AI】從0開始玩轉混元3D?模型,如何讓一張靜態實物圖片一鍵轉為3D實物圖,大模型都表示服了,超級簡單易上手,快來試試!

HAI 與 NVIDIA &#xff0c;為開發者提供一鍵部署及生圖的能力&#xff0c;讓開發者體驗3D 模型的同時&#xff0c;也了解云的便利性。 混元3D 2.0是騰訊推出的尖端3D?成模型&#xff0c;能夠創建帶有?分辨率紋理貼圖的?保真3D資產 參賽報名&#xff1a;https://marketing.c…

電路圖識圖基礎知識-電動機的保護電路保護方式(二十六)

電動機保護電路是確保電動機安全、可靠運行的關鍵技術之一。在工業和日常生活中&#xff0c;電動機被廣泛應用于各種設備中&#xff0c;其安全運行對于保障生產效率和人身安全至關重要。本文將詳細介紹電動機保護電路的重要性、保護方式以及具體的電路分析&#xff0c;以期為電…

【Pandas】pandas DataFrame droplevel

Pandas2.2 DataFrame Reshaping sorting transposing 方法描述DataFrame.droplevel(level[, axis])用于**從 DataFrame 的索引&#xff08;行或列&#xff09;中刪除指定層級&#xff08;level&#xff09;**的方法 pandas.DataFrame.droplevel() pandas.DataFrame.droplev…

Delivering Arbitrary-Modal Semantic Segmentation(CVPR2023)任意模態語義分割論文閱讀

文章目錄 文章研究思路創建了DeLiVER任意模態分割基準數據集統計信息4種模態25個語義類 提出了任意跨模態分割模型CMNeXt自查詢中心&#xff08;Self-Query Hub&#xff0c;SQ-Hub&#xff09;并行池化混合器&#xff08;Parallel Pooling Mixer&#xff0c;PPX&#xff09; 實…

進程控制

一. 進程創建 1.fork的概念與使用 在 Linux 中 fork 可以在一個進程中創建一個新的進程。這個新進程稱為子進程&#xff0c;原進程為父進程。使用前需要包含頭文件 #include <unistd.h> 。在調用 fork 函數時&#xff0c;子進程與父進程會共享數據和代碼&#xff0c;此…

造輪子系列:從0到1打造生產級HTTP客戶端,優雅封裝OkHttp/HttpClient,支持異步、重試與文件操作

TechZhi HTTP Client Starter 源碼特性快速開始1. 添加依賴2. 配置3. 使用 主要功能支持的HTTP方法文件操作功能高級功能配置示例 API使用示例基本請求自定義請求異步請求文件操作示例錯誤處理 構建和測試依賴說明 本文將介紹一款本人開發的高性能Spring Boot HTTP客戶端Starte…

Java過濾器的基本概念

概述 Java 過濾器是 Java EE (Jakarta EE) 中的一種組件&#xff0c;用于在請求到達 Servlet 或 JSP 之前對其進行預處理&#xff0c;或者在響應返回客戶端之前對其進行后處理。過濾器主要應用于以下場景&#xff1a; 請求參數過濾和轉換字符編碼處理身份驗證和授權日志記錄壓…

gbase8s數據庫獲取jdbc/odbc協議的幾種方式

PROTOCOLTRACEFILED:\sqltrace1.log;PROTOCOLTRACE5 jdbc 參數 &#xff0c;明文協議&#xff0c;并發時 會錯亂&#xff0c;適合單線程調試 SQLIDEBUGC:\Users\lenovo\Desktop\sqlidebug.log1 jdbc參數&#xff0c;密文協議&#xff0c;需使用解密工具解析&#xff0c;解析…

【android bluetooth 框架分析 04】【bt-framework 層詳解 7】【AdapterProperties介紹】

前面我們提到了 藍牙協議棧中的 Properties &#xff0c; 這篇文章是 他的補充。 【android bluetooth 框架分析 04】【bt-framework 層詳解 6】【Properties介紹】 在 AOSP&#xff08;Android Open Source Project&#xff09;中&#xff0c;AdapterProperties 是一個 Java…

C盤瘦身?

突然發現回收站底部有橫幅辣眼睛&#xff01; 點擊深度清理跳轉C盤瘦身 點擊一鍵瘦身跳轉支付 回收站右鍵還有菜單 回收站右鍵可以通過設置關閉 回收站底部橫幅關不了&#xff01; 流氓沒人管了嗎&#xff1f;

用戶通知服務,輕松實現應用與用戶的多場景交互

用戶在使用應用時&#xff0c;經常想要了解應用程序在執行的操作&#xff0c;如下載完成、新郵件到達、發布即時的客服支付通知等&#xff0c;這些通知除了攜帶基本的文本圖片信息外&#xff0c;最好還可以支持文件上傳下載進度場景下的進度條通知&#xff0c;以及點擊通知欄可…

蘋果獲智能錢包專利,Find My生態版圖或再擴張:錢包會“說話”還能防丟

蘋果公司近日成功獲批一項突破性專利&#xff0c;揭示了一種支持Find My網絡的全新智能錢包設計方案。該錢包不僅能智能管理用戶的信用卡、身份證等實體卡片&#xff0c;更具備了追蹤定位和通過揚聲器發聲提醒的能力&#xff0c;有望成為蘋果“查找”&#xff08;Find My&#…

當機床開始“思考”,傳統“制造”到“智造”升級路上的法律暗礁

——首席數據官高鵬律師團隊創作&#xff0c;AI輔助 一、被時代推著走的工廠&#xff1a;從“鐵疙瘩”到“智能體”的陣痛 某汽車零部件廠的李廠長至今記得三年前的凌晨。為了趕上新能源車企的訂單&#xff0c;廠里咬牙引進了兩條智能生產線&#xff0c;可調試第三天&#xff…

概率基礎——不確定性的數學

第05篇&#xff1a;概率基礎——不確定性的數學 寫在前面&#xff1a;大家好&#xff0c;我是藍皮怪&#xff01;前幾篇我們聊了統計學的基本概念、數據類型、描述性統計和數據可視化&#xff0c;今天我們要進入統計學的另一個重要基礎——概率論。你有沒有想過&#xff0c;為什…