本篇文章為大家展示了怎么進(jìn)行大數(shù)據(jù)中R語言的生存分析,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)陽朔,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
根據(jù)上面的生存分析的介紹可以大概的了解了生存分析的概念和原理以及KM曲線的繪制。但是生存分析中COX回歸的結(jié)果不容易直接輸出,下面簡(jiǎn)單的介紹一種自定義函數(shù),批量并且規(guī)則的輸出結(jié)果的方式。
#載入所需的R包
library("survival")library("survminer")
#載入并查看數(shù)據(jù)集
data("lung")
head(lung)
inst time status age sex ph.ecog ph.karno pat.karno meal.cal wt.loss
1 3 306 2 74 1 1 90 100 1175 NA
2 3 455 2 68 1 0 90 90 1225 15
3 3 1010 1 56 1 0 90 90 NA 15
4 5 210 2 57 1 1 90 60 1150 11
5 1 883 2 60 1 0 100 90 NA 0
6 12 1022 1 74 1 1 50 80 513 0
#cox 回歸分析
res.cox <- coxph(Surv(time, status) ~ sex, data = lung)res.coxsummary(res.cox)Call:coxph(formula = Surv(time, status) ~ sex, data = lung) n= 228, number of events= 165 coef exp(coef) se(coef) z Pr(>|z|) sex -0.5310 0.5880 0.1672 -3.176 0.00149 **---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 exp(coef) exp(-coef) lower .95 upper .95sex 0.588 1.701 0.4237 0.816Concordance= 0.579 (se = 0.022 )Rsquare= 0.046 (max possible= 0.999 )Likelihood ratio test= 10.63 on 1 df, p=0.001111Wald test = 10.09 on 1 df, p=0.001491Score (logrank) test = 10.33 on 1 df, p=0.001312
COX回歸的結(jié)果中需要提取HR,HR的置信區(qū)間,wald.test和 p.value的信息,最簡(jiǎn)單的是在summary結(jié)果中進(jìn)行復(fù)制粘貼,當(dāng)然效率很低。假設(shè)當(dāng)變量成百上前后,會(huì)發(fā)生什么呢?
--------------------復(fù)制粘貼N*成百上千次?。?!
還可以構(gòu)建自定義函數(shù),數(shù)據(jù)框的形式一次輸出所有變量的COX回歸結(jié)果
#查看待分析的變量
covariates <- names(lung[,4:10])covariates[1] "age" "sex" "ph.ecog" "ph.karno" "pat.karno" "meal.cal" "wt.loss"
#構(gòu)建自定義函數(shù),以數(shù)據(jù)框形式輸出結(jié)果
univ_formulas <- sapply(covariates, function(x) as.formula(paste('Surv(time, status)~', x)))
#設(shè)定函數(shù)輸出的信息
univ_models <- lapply( univ_formulas, function(x){coxph(x, data = lung)})# Extract data univ_results <- lapply(univ_models, function(x){ x <- summary(x) p.value<-signif(x$wald["pvalue"], digits=2) wald.test<-signif(x$wald["test"], digits=2) beta<-signif(x$coef[1], digits=2);#coeficient beta HR <-signif(x$coef[2], digits=2);#exp(beta) HR.confint.lower <- signif(x$conf.int[,"lower .95"], 2) HR.confint.upper <- signif(x$conf.int[,"upper .95"],2) HR <- paste0(HR, " (", HR.confint.lower, "-", HR.confint.upper, ")") res<-c(beta, HR, wald.test, p.value) names(res)<-c("beta", "HR (95% CI for HR)", "wald.test", "p.value") return(res) #return(exp(cbind(coef(x),confint(x)))) })
#輸出所有變量的COX結(jié)果
res <- t(as.data.frame(univ_results, check.names = FALSE))
as.data.frame(res)
beta HR (95% CI for HR) wald.test p.value
age 0.019 1 (1-1) 4.1 0.042
sex -0.53 0.59 (0.42-0.82) 10 0.0015
ph.ecog 0.48 1.6 (1.3-2) 18 2.7e-05
ph.karno -0.016 0.98 (0.97-1) 7.9 0.005
pat.karno -0.02 0.98 (0.97-0.99) 13 0.00028
meal.cal -0.00012 1 (1-1) 0.29 0.59
wt.loss 0.0013 1 (0.99-1) 0.05 0.83
OK!可以write了,至于csv還是txt ,啦意隨。。。
上述內(nèi)容就是怎么進(jìn)行大數(shù)據(jù)中R語言的生存分析,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享題目:怎么進(jìn)行大數(shù)據(jù)中R語言的生存分析
當(dāng)前鏈接:http://muchs.cn/article42/joodec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、、虛擬主機(jī)、外貿(mào)網(wǎng)站建設(shè)、云服務(wù)器、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)