UA MATH571A R语言回归分析实践 多元回归2 医疗费用的决定
UA MATH571A R語言回歸分析實踐 多元回歸2 醫療費用的決定
- 系數的推斷與模型預測
- 模型診斷
這一講展示一下一元回歸中的模型診斷的手段怎么用在多元回歸中,同時介紹一下多元回歸做推斷和預測的方法。
系數的推斷與模型預測
先來看看系數的99%置信區間,顯著(顯著性水平1%)的系數的99%置信區間應該不會包含0:
> confint(mreg01.lm,level=0.99)0.5 % 99.5 % (Intercept) -16116.04048 -10391.0546 Age 226.77096 288.1101 Sex -988.77965 728.8666 BMI 259.16501 401.8577 Chil 121.91230 832.2460 Smoke 22758.69080 24884.2267 Region -99.23445 956.4028用confint函數可以計算置信區間,第一個輸入是模型對象,第二個輸入是置信水平。可以發現性別和地區的99%置信水平是包含0的,這與上一講發現這兩個解釋變量的系數在1%的顯著性水平下不顯著是一致的。需要注意的是這個置信區間是單個系數的置信區間,也就是說當我們關注Age的時候,是只考慮Age,沒有考慮其他系數的。因此更合理的做法是計算這些系數的聯合置信區間,可以采用Bonferroni調整或者WHS置信帶方法。比如計算Bonferroni調整系數
> n <- 7 # intercept and 6 coefficients > B <- qt(1-0.01/(2*n),mreg01.lm$df) > B [1] 3.195517然后根據
[β^i?Bse(β^i),β^i+Bse(β^i)][\hat{\beta}_i-Bse(\hat{\beta}_i),\ \hat{\beta}_i+Bse(\hat{\beta}_i)] [β^?i??Bse(β^?i?),?β^?i?+Bse(β^?i?)]
計算系數βi\beta_iβi?的Bonferroni調整的置信區間。或者計算WHS調整系數,
然后根據
[β^i?Wse(β^i),β^i+Wse(β^i)][\hat{\beta}_i-Wse(\hat{\beta}_i),\ \hat{\beta}_i+Wse(\hat{\beta}_i)] [β^?i??Wse(β^?i?),?β^?i?+Wse(β^?i?)]
計算系數βi\beta_iβi?的WHS調整的置信區間,實際應用的時候取BBB和WWW中的較小者。
接下來介紹一下多元線性回歸中怎么應用predict函數。先討論擬合的用法,以第一個樣本為例:
predict(mreg01.lm,newdata = data.frame(Age = 19,Sex = 0,BMI = 27.9,Chil = 0,Smoke = 1,Region = 1),interval = "conf",level = 0.95) ## output ## fit lwr upr ## 1 25109.13 24004.59 26213.67輸入第一項是模型對象,這一點與一元回歸相同,輸入第二項是一個數據框,數據框要包含所有的解釋變量,需要輸入要擬合的樣本每一個解釋變量對應的值,然后data.frame會將其自動合成一個數據框。如果要擬合多個樣本的值,以前三個樣本為例,可以用c()將每個解釋變量的值一起輸入到數據框中
predict(mreg01.lm,newdata = data.frame(Age = c(19,18,28),Sex = c(0,1,1),BMI = c(27.9,33.77,33),Chil = c(0,1,3),Smoke = c(1,0,0),Region = c(1,2,2)),interval = "conf",level = 0.95) ## output ## fit lwr upr ## 1 25109.132 24004.594 26213.670 ## 2 3746.041 3016.915 4475.167 ## 3 7020.111 6241.170 7799.053如果不想手動輸入數字可以用之前定義好的變量:
predict(mreg01.lm,newdata = data.frame(Age = Age[1:3],Sex = Sex[1:3],BMI = BMI[1:3],Chil = Chil[1:3],Smoke = Smoke[1:3],Region = Region[1:3]),interval = "conf",level = 0.95)它會得到和手動輸入數字一樣的結果,甚至我們還可以用讀入的原始數據來構造數據框:
predict(mreg01.lm,newdata = data.frame(Age = Data[1:3,1],Sex = Data[1:3,2],BMI = Data[1:3,3],Chil = Data[1:3,4],Smoke = Data[1:3,5],Region = Data[1:3,6]),interval = "conf",level = 0.95)做預測只需要把interval="conf"改成interval="pred"即可。
模型診斷
與一元的類似,只是要畫的圖有點多(對擬合值,每個解釋變量),這里舉三個例子:
plot(BMI,resid(mreg01.lm)) abline(h=0) plot(fitted(mreg01.lm),resid(mreg01.lm)) abline(h=0) qqnorm(resid(mreg01.lm))從這三張圖看得出來,多元線性回歸顯然并不是個好模型,殘差呈現出來的模式是非常奇怪的,并且QQ圖明顯不是線性的。在做進一步的診斷前,下一篇博客討論是不是每一個解釋變量都要添加到模型中,以及是因為用一次還是二次的形式。
總結
以上是生活随笔為你收集整理的UA MATH571A R语言回归分析实践 多元回归2 医疗费用的决定的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 矩阵分析与多元统计 线性空间与线性变换2
- 下一篇: UA MATH574M 统计学习 Var