R語(yǔ)言用邏輯回歸預(yù)測(cè)BRFSS中風(fēng)數(shù)據(jù)、方差分析anova、ROC曲線AUC、可視化探索
全文鏈接:https://tecdat.cn/?p=33659
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
行為風(fēng)險(xiǎn)因素監(jiān)測(cè)系統(tǒng)(BRFSS)是一項(xiàng)年度電話調(diào)查。BRFSS旨在確定成年人口中的風(fēng)險(xiǎn)因素并報(bào)告新興趨勢(shì)。例如,調(diào)查對(duì)象被詢問(wèn)他們的飲食和每周體育活動(dòng)、HIV/AIDS狀況、可能的吸煙情況、免疫接種、健康狀況、健康日數(shù)-與健康相關(guān)的生活質(zhì)量、醫(yī)療保健獲取、睡眠不足、高血壓認(rèn)知、膽固醇認(rèn)知、慢性健康問(wèn)題、酒精消費(fèi)、水果和蔬菜消費(fèi)、關(guān)節(jié)炎負(fù)擔(dān)以及安全帶使用情況等。
加載數(shù)據(jù)
load("brfs.RData")
第一部分:關(guān)于數(shù)據(jù)
數(shù)據(jù)收集:
對(duì)于固定電話樣本采用了不成比例分層抽樣(DSS),移動(dòng)電話受訪者則是隨機(jī)選擇的,每個(gè)受訪者被選中的概率相等。我們正在處理的數(shù)據(jù)集共有330個(gè)變量,總共有491,775個(gè)觀測(cè)值(2013年)。缺失值用“NA”表示。
泛化能力:
樣本數(shù)據(jù)應(yīng)該能夠推廣到感興趣的總體。這是對(duì)18歲及以上的491,775名成年人進(jìn)行的調(diào)查。它基于一個(gè)大規(guī)模分層隨機(jī)樣本。可能存在的偏差與非響應(yīng)、不完整的訪談、缺失值和便利性偏差相關(guān)(一些潛在的受訪者可能因?yàn)闆](méi)有固定電話和手機(jī)而未被納入在內(nèi))。
因果關(guān)系:
由于BRFSS是一項(xiàng)觀察研究,只能建立變量之間的相關(guān)性/關(guān)聯(lián),并不能確定因果關(guān)系。
第二部分:研究問(wèn)題
研究問(wèn)題1:
在過(guò)去30天內(nèi),男女性別在身體和心理健康不好的天數(shù)分布上是否存在差異?
研究問(wèn)題2:
受訪者接受采訪的月份與其自我報(bào)告的健康感知之間是否存在關(guān)聯(lián)?
研究問(wèn)題3:
收入和醫(yī)療保險(xiǎn)覆蓋之間是否存在關(guān)聯(lián)?
研究問(wèn)題4:
吸煙、飲酒、膽固醇水平、血壓、體重與中風(fēng)的關(guān)系是什么?最終,我想看到是否可以通過(guò)上述變量對(duì)中風(fēng)進(jìn)行預(yù)測(cè)。
第三部分:探索性數(shù)據(jù)分析
研究問(wèn)題1:
ggplt(aes(x=phhth, fill=sx), data = bfss3[!is.na(brfs13$sex), ])

ggplot+ ?geom_hitoam(bns=3, psition= psiion_dg

gplot(aes(x=prth, filsex), data=br203[!is.nbrfs03$ex), ]) + ?gem_istrm(ns=30, postn = poiioge())

sumary(brss3$ex)

以上三個(gè)圖顯示了男性和女性對(duì)過(guò)去30天內(nèi)身體、心理和兩者都不好的天數(shù)的數(shù)據(jù)分布。我們可以看到女性受訪者遠(yuǎn)多于男性受訪者。
研究問(wèn)題2:
R
by_mnt <- bs201 %>% fier(iyr=='2013') %>% gop_by(imnth, ghlh) %>% sumaie(n=n())ggpt(aes(x=ionh, y=n, fill = gehh), data = b_mh[!is.na(by_mt$gehlh), ]) + go_bar(stat = 'idnty', ostin = posion_doe())

R
by_mnh1 <- brs13 %>% ftr(iyar=='2013') %>% grup_y(imnh) %>% surse(n=n())gglot(aes(x=imnh, y=n), daa=bymth1) + gem_ar(stat = 'dentty')

我試圖找出人們?cè)诓煌路輰?duì)健康狀況的回答是否有所差異。例如,在春季或夏季,人們是否更有可能說(shuō)自己身體健康?然而,看起來(lái)并沒(méi)有明顯的模式可見(jiàn)。
研究問(wèn)題3:
R
plot(brs203$iome2, brfs13$ltpn1

總體來(lái)說(shuō),高收入的受訪者比低收入的受訪者更有可能享有醫(yī)療保險(xiǎn)覆蓋。
研究問(wèn)題4:
為了回答這個(gè)問(wèn)題,我將使用以下變量:
bphigh4: 是否曾經(jīng)被告知有高血壓
toldhi2: 是否曾經(jīng)被告知有高血膽固醇
weight2: 報(bào)告的體重(以磅為單位)
cvdstrk3: 是否曾被診斷為中風(fēng)
smoke100:至少吸過(guò)100支香煙
avedrnk2:過(guò)去30天內(nèi)每天平均
首先,將上述變量轉(zhuǎn)換為數(shù)值,并查看這些數(shù)值變量之間的相關(guān)性。
R
slectedfss - brfs2013[vars]selced_rf$tolhi2 <- iflse(seeted_fss$todh2=="Yes", 1, 0)corrmarix <- cor(selced_bfss)corplot(corr.atri

沒(méi)有任何兩個(gè)數(shù)值變量之間似乎存在強(qiáng)相關(guān)性。
用邏輯回歸預(yù)測(cè)中風(fēng)
將答案"Yes, but female told only during pregnancy"和"Told borderline or pre-hypertensive"替換為"Yes"。
R
vr1 <- names(brs013) %in% c('smoke0', 'aedrk2', 'bphg4', 'tldhi2', 'wht', 'cdsrk3')sroe <- brfs203[vars1]
將'NA'值替換為'No'。
R
4 <- repce(strebh, whch(is.na(stroke$bpig4)), "No")whih(is.na(stroke$soke10)), 'No')
將'NA'值替換為平均值。
R
mean(strke$avedrnk2,.rm = T)

R
stoke$vdrk2 <- replce(stoe$aednk2, whch(is.nastroe$avednk2)), 2)
查看將用于建模的數(shù)據(jù)。
R
hed(sroe)sumary(sroe)


將結(jié)果轉(zhuǎn)換為二元結(jié)果。
R
strke$vdrk3 <- ifelestrok$cvdsk3=="Ys", 1, 0)
在整理和清理數(shù)據(jù)之后,現(xiàn)在可以擬合模型。
擬合邏輯回歸模型
R
test <- stre[390001:491775,]odel <- glm(cvdtrk3 ~.,famly=biomil(link = 'logit'),at=trin)summary(mdel)

解釋邏輯回歸模型的結(jié)果:所有變量在統(tǒng)計(jì)上都是顯著的。
在其他變量相等的情況下,被告知血壓高的可能性更容易出現(xiàn)中風(fēng)。
預(yù)測(cè)變量toldhi2No的負(fù)系數(shù)表明,在其他變量相等的情況下,沒(méi)有被告知血膽固醇高的可能性更不容易中風(fēng)。
每增加一單位的體重,中風(fēng)(而不是無(wú)中風(fēng))的對(duì)數(shù)幾率下降0.00096。
不吸煙至少100支香煙的可能性更小。
過(guò)去30天平均每天飲用的酒精飲料每增加一單位,中風(fēng)的對(duì)數(shù)幾率下降0.027。
R
anva(modl, tet="Chiq")

通過(guò)分析偏差表,我們可以看到在逐個(gè)添加每個(gè)變量時(shí)的偏差下降情況。添加bphigh4、toldhi2和smoke100明顯降低了殘差偏差。其他變量weight2和avedrnk2似乎改善了模型,盡管它們都具有較低的p值。
評(píng)估模型的預(yù)測(cè)能力
R
fite.result <- ifelse(fited.ults > 0.5,1,0)misCasifEror <- mean(ftted.reuts != testvdtk3)prnt(pase('Accuracy',1misClasiicEror))

測(cè)試集上的準(zhǔn)確率為0.96非常好。
繪制ROC曲線并計(jì)算AUC(曲線下面積)。
R
p <- predicodel, newdat=est, te="response")pr <- prdition(p, tet$cdstrk3)auc <- uc@y.vaus[[1]]


最后說(shuō)明一下,當(dāng)我們分析健康調(diào)查數(shù)據(jù)時(shí),我們必須意識(shí)到自我報(bào)告的患病率可能存在偏差,因?yàn)槭茉L者可能不了解自己的風(fēng)險(xiǎn)狀況。因此,為了獲得更精確的估計(jì)值,研究人員正在使用實(shí)驗(yàn)室測(cè)試以及自我報(bào)告的數(shù)據(jù)。

最受歡迎的見(jiàn)解
1.R語(yǔ)言多元Logistic邏輯回歸 應(yīng)用案例
2.面板平滑轉(zhuǎn)移回歸(PSTR)分析案例實(shí)現(xiàn)
3.matlab中的偏最小二乘回歸(PLSR)和主成分回歸(PCR)
4.R語(yǔ)言泊松Poisson回歸模型分析案例
5.R語(yǔ)言混合效應(yīng)邏輯回歸Logistic模型分析肺癌
6.r語(yǔ)言中對(duì)LASSO回歸,Ridge嶺回歸和Elastic Net模型實(shí)現(xiàn)
7.R語(yǔ)言邏輯回歸、Naive Bayes貝葉斯、決策樹(shù)、隨機(jī)森林算法預(yù)測(cè)心臟病
8.python用線性回歸預(yù)測(cè)股票價(jià)格
9.R語(yǔ)言用邏輯回歸、決策樹(shù)和隨機(jī)森林對(duì)信貸數(shù)據(jù)集進(jìn)行分類預(yù)測(cè)