UA MATH571A R语言回归分析实践 多元回归1 医疗费用的决定
UA MATH571A R語言回歸分析實踐 多元回歸1 醫療費用
- 基礎回歸分析
這一講開始討論多元回歸,這里選擇的例子是尋找家庭醫療費用的決定因素。家庭醫療費用由哪些因素決定是衛生經濟學、保險精算等領域共同關注的問題之一,它對于醫療收費與補貼政策的制定、健康醫療保險保費厘定等具有重要指導意義。這個例子的數據我上傳資源了,如果需要可以自行下載。
先來看看數據大概什么樣子
我們關注的被解釋變量是charges,這個就是是家庭醫療費用(用YYY表示),它是一個quantitative variable,也就是數值型變量;年齡age、性別sex、體質比BMI、children、smoker、地區region是解釋變量(分別用X1,X2,?,X6X_1,X_2,\cdots,X_6X1?,X2?,?,X6?表示)。其中sex、smoker和region是categorical variable或者qualitative variable,也就是類型變量,他們的值只是表示屬于某個類型,沒有數值上的含義。Smoker指的是個體是否吸煙、children指的是有幾個小孩。
基礎回歸分析
根據這些變量,我們可以構建一個baseline
Y=β0+β1X1+β2X2+β3X3+β4X4+β5X5+β6X6+?Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \beta_3 X_3 + \beta_4 X_4+ \beta_5 X_5+ \beta_6 X_6+\epsilon Y=β0?+β1?X1?+β2?X2?+β3?X3?+β4?X4?+β5?X5?+β6?X6?+?
基于這六個解釋變量可以構建的最簡單額度多元回歸模型就是這個,我們先用這個模型進行一些簡單的分析,然后和我們在一元回歸里面做的一樣,我們看看模型的解釋力如何,做一下模型診斷卡看看能不能提高解釋力;和一元回歸不一樣的是,在多元回歸中,我們需要探索是不是每個解釋變量都有很高的解釋力,都應該加入模型中?是不是需要考慮高階項或者交互項?有沒有可能找到一個解釋力最強的模型?但在做更深入探索之前,我們需要先分析最簡單的這個回歸,以確保這個問題和這些數據是值得去深挖的。
首先讀取數據,read.csv和setwd的注意事項和一元回歸一樣。
setwd("D:/Stat PhD/taking course/summer1/ref/regression") Data <- read.csv("insurance.csv", header = TRUE, sep = ",", quote = "\"",dec = ".", fill = TRUE, comment.char = "") Age <- as.numeric(Data[,1]) Sex <- as.numeric(Data[,2]) BMI <- as.numeric(Data[,3]) Chil <- as.numeric(Data[,4]) Smoke <- as.numeric(Data[,5]) Region <- as.numeric(Data[,6]) Y <- as.numeric(Data[,7])然后也是用lm函數來做多元回歸,lm的輸入叫公式,這個輸入的含義是用Age、Sex、BMI、Children、Smoker、Region來回歸Y,每個變量中間用加號連接,把估計好的模型對象賦值給mreg01.lm然后輸出它的總結信息
> mreg01.lm <- lm(Y~ Age+Sex+BMI+Chil+Smoke+Region) > summary(mreg01.lm)Call: lm(formula = Y ~ Age + Sex + BMI + Chil + Smoke + Region)Residuals:Min 1Q Median 3Q Max -11434.4 -2813.8 -969.4 1379.1 29678.6 Coefficients:Estimate Std. Error t value Pr(>|t|) (Intercept) -13253.55 1109.70 -11.943 < 2e-16 *** Age 257.44 11.89 21.653 < 2e-16 *** Sex -129.96 332.94 -0.390 0.696353 BMI 330.51 27.66 11.950 < 2e-16 *** Chil 477.08 137.69 3.465 0.000547 *** Smoke 23821.46 412.00 57.819 < 2e-16 *** Region 428.58 204.62 2.095 0.036399 * --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 6062 on 1331 degrees of freedom Multiple R-squared: 0.7505, Adjusted R-squared: 0.7494 F-statistic: 667.4 on 6 and 1331 DF, p-value: < 2.2e-16Call后面的是lm函數執行的公式,residuals后面的是殘差的描述性統計。簡單看一下系數,發現年齡、BMI、家里小孩數量、是不是抽煙對家庭醫療費用支出是具有顯著的正向效應的。給定其他條件不變、年齡越大,醫療費用會越高;家里小孩越多,醫療費用會越高;抽煙的人醫療費用顯著地更高,這三個結論都非常符合直覺。給定其他條件不變,BMI越大,說明個體越胖,肥胖者的確是更容易患心腦血管疾病,所以BMI越大醫療費用越高也可以理解。性別對醫療費用的影響不顯著。地區在0.05的顯著性水平下也是顯著的,因為這個是美國的數據,所以大概就是說醫療費用平均是西南<東南<東北<西北。
倒數第三行是殘差的標準誤和自由度,倒數第二行是R方和調整后的R方,第一個R方說明這個多元線性回歸模型能夠解釋75.05%的醫療費用的變化,第二個R方和第一個R方非常接近,說明這個模型過擬合的風險非常低,這兩個R方共同說明多元線性回歸對家庭醫療費用的解釋力是比較強的。倒數一行是對模型整體的F檢驗,原假設是所有的系數β0,?,β6\beta_0,\cdots,\beta_6β0?,?,β6?都是0,因為p值非常小,我們課很自信地拒絕原假設,認可這個模型的解釋力。
下面用ANOVA來更細致地看看F檢驗具體是怎么來的,與一元回歸一致,把模型對象輸入給anova函數就好:
> anova(mreg01.lm) Analysis of Variance TableResponse: YDf Sum Sq Mean Sq F value Pr(>F) Age 1 1.7530e+10 1.7530e+10 477.0365 < 2.2e-16 *** Sex 1 7.9167e+08 7.9167e+08 21.5430 3.801e-06 *** BMI 1 5.2576e+09 5.2576e+09 143.0724 < 2.2e-16 *** Chil 1 5.5111e+08 5.5111e+08 14.9970 0.0001129 *** Smoke 1 1.2287e+11 1.2287e+11 3343.5902 < 2.2e-16 *** Region 1 1.6122e+08 1.6122e+08 4.3872 0.0363993 * Residuals 1331 4.8912e+10 3.6748e+07 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1第一列是自由度的分配,一共有1338個樣本,所以是1337個自由度,每個解釋變量占一個,所以回歸模型占6個自由度,殘差占剩下1331個自由度。第二列是平方和的分解,我們可以看到抽煙與否、年齡、BMI這三個因素占了最多的平方和,說明他們具有最多與醫療費用相關的信息,這和回歸系數告訴我們的信息是一致的。第四列的F是對單個系數的做的F檢驗的統計量,與t檢驗的結果有區別的只有sex,因為殘差的自由度是比較大的所以相對而言殘差的均方和比較少,系數F檢驗要顯著要求分到的平方和就不用那么多,sex的F檢驗就很神奇的顯著了。因為sex系數估計量的標準誤比較大,所以t檢驗不能得出它的系數顯著異于0。把這6個對單個系數簡單的F加起來就是回歸里面那個對全模型做的F檢驗的F統計量。
因為關于性別出現了一些不一致的地方,需要更細致地考慮一下它的系數是不是真的顯著異于0的,這里用兩個思路,分別用序貫ANOVA和廣義線性檢驗法,前者檢驗在有了其他五個解釋變量后,性別這個變量還值不值得加;后者是對性別的系數是否為0的檢驗。先做一下序貫ANOVA,
> mreg02.lm <- lm(Y~ Age+BMI+Chil+Smoke+Region+Sex) > anova(mreg02.lm) Analysis of Variance TableResponse: YDf Sum Sq Mean Sq F value Pr(>F) Age 1 1.7530e+10 1.7530e+10 477.0365 < 2.2e-16 *** BMI 1 5.4464e+09 5.4464e+09 148.2103 < 2.2e-16 *** Chil 1 5.7152e+08 5.7152e+08 15.5523 8.443e-05 *** Smoke 1 1.2345e+11 1.2345e+11 3359.2908 < 2.2e-16 *** Region 1 1.6111e+08 1.6111e+08 4.3841 0.03646 * Sex 1 5.5989e+06 5.5989e+06 0.1524 0.69635 Residuals 1331 4.8912e+10 3.6748e+07 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1這里就不得不提一下lm的輸入公式的隱藏功能,Y~后面跟的解釋變量的順序其實就是解釋變量進入模型的順序,第一個是Age說明Age先進入模型,前五個的順序我們不關心,但最后一個一定要是性別,這樣估計出來的模型對象輸入到anova中得到的關于性別的分析就是在有了其他五個解釋變量后再把性別加入模型的。我們可以看到,當性別最后進入模型時,它的平方和就遠遠不如它第二個進入模型的情況了,說明如果有了其他五個解釋變量,性別的效應的確是不會顯著異于0的。
接下來不考慮序貫的情況,因為序貫的感覺還是有點欺負最后進入模型的解釋變量。我們用廣義線性檢驗的思路,假設性別的效應為0,那么去掉性別,用其他五個解釋變量估計一個reduced model,模型對象賦值給Rreg01.lm,用這個和full model的對象,也就是mreg01.lm做ANOVA,reduced在前,full在后這樣輸入,可以看到這個檢驗的p值就和baseline里面的t檢驗的p值一樣了,說明性別這個變量的價值可能真的是不大的。
> Rreg01.lm <- lm(Y~ Age+BMI+Chil+Smoke+Region) > anova(Rreg01.lm,mreg01.lm) Analysis of Variance TableModel 1: Y ~ Age + BMI + Chil + Smoke + Region Model 2: Y ~ Age + Sex + BMI + Chil + Smoke + RegionRes.Df RSS Df Sum of Sq F Pr(>F) 1 1332 4.8917e+10 2 1331 4.8912e+10 1 5598924 0.1524 0.6964總結
以上是生活随笔為你收集整理的UA MATH571A R语言回归分析实践 多元回归1 医疗费用的决定的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UA MATH571A R语言回归分析实
- 下一篇: 统计决策理论2 条件分布上