數據科學28 |回歸模型-單因素協方差分析和回歸診斷

2021-02-20 珠江腫瘤
單因素協方差分析(ANCOVA)

例:swiss數據集

library(datasets)data(swiss)head(swiss)head(swiss)             Fertility Agriculture Examination Education Catholic Infant.MortalityCourtelary        80.2        17.0          15        12     9.96             22.2Delemont          83.1        45.1           6         9    84.84             22.2Franches-Mnt      92.5        39.7           5         5    93.40             20.2Moutier           85.8        36.5          12         7    33.77             20.3Neuveville        76.9        43.5          17        15     5.16             20.6Porrentruy        76.1        35.3           9         7    90.57             26.6
hist(swiss$Catholic)

圖1.關於天主教徒比例的各省數量的分布 

這個分布是雙峰的,因為大多數省份要麼是天主教徒佔絕大多數,要麼是新教徒佔絕大多數。

library(dplyr)swiss = mutate(swiss, CatholicBin = 1 * (Catholic > 50))head(swiss)  Fertility Agriculture Examination Education Catholic Infant.Mortality CatholicBin1      80.2        17.0          15        12     9.96             22.2           02      83.1        45.1           6         9    84.84             22.2           13      92.5        39.7           5         5    93.40             20.2           14      85.8        36.5          12         7    33.77             20.3           05      76.9        43.5          17        15     5.16             20.6           06      76.1        35.3           9         7    90.57             26.6           1

使用dplyr包創建一個天主教的二值變量CatholicBin,如果該省多數是天主教徒,則為1;如果多數是新教徒,則為0。

g <- ggplot(swiss, aes(x = Agriculture, y = Fertility, color = factor(CatholicBin)))g <- g + geom_point(size = 6, color = "black") + geom_point(size = 4)g <- g + xlab("% in Agriculture") + ylab("Fertility")g

圖2.不同宗教信仰下變量農業與生育率關係的散點圖

fit <- lm(Fertility ~ Agriculture, data = swiss)g1 <- gg1 <- g1 + geom_abline(intercept = coef(fit)[1], slope = coef(fit)[2], size = 2)g1summary(fit)$coef            Estimate Std. Error t value  Pr(>|t|)(Intercept)  60.3044    4.25126  14.185 3.216e-18Agriculture   0.1942    0.07671   2.532 1.492e-02

圖3.不考慮宗教繪製農業與生育率的回歸線 

不考慮宗教信仰,擬合生育率與從事農業比例之間的線性回歸模型,截距約為60,斜率約為0.19。

fit <- lm(Fertility ~ Agriculture + factor(CatholicBin), data = swiss)summary(fit)$coef                     Estimate Std. Error t value  Pr(>|t|)(Intercept)           60.8322     4.1059  14.816 1.032e-18Agriculture            0.1242     0.0811   1.531 1.329e-01factor(CatholicBin)1   7.8843     3.7484   2.103 4.118e-02
g1 <- gg1 <- g1 + geom_abline(intercept = coef(fit)[1], slope = coef(fit)[2], size = 2)g1 <- g1 + geom_abline(intercept = coef(fit)[1] + coef(fit)[3], slope = coef(fit)[2], size = 2)g1

圖4.宗教作為因子變量繪製農業與生育率的回歸線

將變量CatholicBin作為因子變量,且這個變量與從事農業比例沒有交互作用,擬合線性回歸模型,可以得到兩條斜率相同,截距不同的回歸線。

factor()將CatholicBin變為因子變量,否則R會將其視為連續回歸變量。係數(Intercept)與宗教信仰無關,係數factor(CatholicBin)1是天主教徒省份的截距變化。

fit <- lm(Fertility ~ Agriculture * factor(CatholicBin), data = swiss)summary(fit)$coef                                 Estimate Std. Error t value  Pr(>|t|)(Intercept)                      62.04993    4.78916 12.9563 1.919e-16Agriculture                       0.09612    0.09881  0.9727 3.361e-01factor(CatholicBin)1              2.85770   10.62644  0.2689 7.893e-01Agriculture:factor(CatholicBin)1  0.08914    0.17611  0.5061 6.153e-01
g1 <- gg1 <- g1 + geom_abline(intercept = coef(fit)[1], slope = coef(fit)[2], size = 2)g1 <- g1 + geom_abline(intercept = coef(fit)[1] + coef(fit)[3], slope = coef(fit)[2] + coef(fit)[4], size = 2)g1

圖5.考慮宗教與農業交互作用擬合線性回歸

・對於新教徒佔大多數的省份,回歸模型截距為第一個係數(Intercept) ,約為62,斜率為第二個係數Agriculture,約為0.096。

・對於天主教徒佔大多數的省份,回歸模型截距為第一個係數(Intercept) 加上第三個係數factor(CatholicBin)1 ,約為64.8,斜率為第二個係數Agriculture加上第四個係數Agriculture:factor(CatholicBin)1,約為0.185。

由於天主教徒作用的係數都為正,故截距較高的回歸線為天主教徒回歸線。

殘差和回歸診斷

例:swiss數據集

R中提供了大量檢驗回歸分析中統計假設的方法。最常見的方法就是對lm()函數返回的對象使用plot()函數,可以生成評價模型擬合情況的四幅圖形。

data(swiss)par(mfrow=c(2,2)) fit<-lm(Fertility~.,data=swiss)plot(fit)

圖6.生育率與其他變量之間關係的回歸診斷圖

➢「殘差圖與擬合圖」(Residuals vs Fitted,左上),若因變量與自變量線性相關,那麼殘差值與預測(擬合)值就沒有任何系統關聯。——線性

➢「正態Q-Q圖」(Normal Q-Q,右上)是在正態分布對應的值下,標準化殘差的概率圖。——正態性。當預測變量值固定時,因變量成正態分布,則殘差值也應該是一個均值為0的正態分布。若滿足正態假設,圖上的點應該落在呈45度角的直線上;否則就違反了正態性的假設。

➢「位置尺度圖」(Scale-Location Graph,左下),若滿足不變方差假設,水平線周圍的點應該隨機分布。——同方差性

➢「殘差與槓桿圖」(Residuals vs Leverage,右下)可以鑑別出離群點、高槓桿值點和強影響點。

圖7.異常觀測點

離群值可能具有不同程度的影響。離群值可以符合回歸關係(如右上角點)。槓桿的概念 僅僅是數據點距自變量軸中心有多遠的概念,因變量值不參與計算一個觀測點的槓桿值。影響力在於該點對模型參數的估計發揮作用的大小。

◎左上角點是離群點具有低槓桿值,低影響力,以不符合回歸關係的方式存在。

◎左下角點不是離群點,槓桿值低,影響力低。

◎右上角點是離群點,也是高槓桿值點,具有較高的槓桿作用,但服從其他觀測點的回歸關係,具有較低的實際影響力。

◎右下角是離群點,也是強影響點,具有很高的槓桿作用,在擬合中則會對模型的參數估計發揮作用。

離群點可能是真實過程也可能是虛假過程產生的。擬合模型時希望從模型中刪除虛假過程產生的離群點同時保留真實過程產生的離群點。influence.measures()函數可以提供影響力的衡量指標?influence.measures。➢rstandard:標準化殘差,殘差除以其標準差。➢rstudent:標準化殘差,即殘差除以其標準差,在計算標準差的時刪除了第i個數據點使標準化殘差服從t分布 ➢hatvalues:衡量槓桿值,可用於判斷數據的輸入錯誤➢dffits:當刪除第i個點擬合模型時,預測值的變化➢dfbetas:當刪除第i個點擬合模型時,各個係數的變化➢resid(fit) / (1 - hatvalues(fit)):fit為線性模型擬合時返回PRESS殘差,如交叉驗證中留一驗證(leave-one-out cross-validation, LOOCV)的殘差,即數據i點的值與刪除該點擬合的模型在該點預測值的差值。PRESS殘差在檢測異常值和確定影響方面不是特別有用,而是用於確定模型擬合度。

例:回歸診斷示例

n<-100x<-c(10,rnorm(n))y<-c(10,c(rnorm(n))) plot(x,y,frame=FALSE,cex=2,pch=21,bg="lightblue",col="black") abline(lm(y~x))

圖8.生成有離群點的隨機數據集

隨機生成成對的獨立隨機數據,添加了離群點(10,10)。

fit<-lm(y~x)head(dfbetas(fit))   (Intercept)             x1 -0.160472495  6.36542458932  0.044100714 -0.00069552743  0.054595229 -0.02281624184 -0.014275902 -0.01122142085 -0.005473504 -0.00122432526  0.059918030 -0.0025620951
round(dfbetas(fit)[1:10,2],3) #round()函數保留小數點後3位 1 2 3 4 5 6 7 8 9 10 6.365 -0.001 -0.023 -0.011 -0.001 -0.003 -0.004 -0.021 0.029 -0.059
round(hatvalues(fit)[1:10],3) 1 2 3 4 5 6 7 8 9 10 0.503 0.010 0.012 0.015 0.010 0.010 0.010 0.021 0.010 0.017

可以看到第1個數據點(10,10)的dfbetas和hatvalues比其餘點的大的多,由於該點的存在,數據被認為有很強的相關性,否則數據相關係數估計為0,影響較大。hatvalues取值必須在0-1之間。

n<-100x<-c(10,rnorm(n))y<-c(10,x[2:n]+rnorm(n,sd=0.2))plot(x,y,frame=FALSE,cex=2,pch=21,bg="lightblue",col="black") abline(lm(y[2:n]~x[2:n]))

圖9.添加位於回歸線上的離群點

沿著存在回歸關係的數據的回歸線生成數據,並添加位於回歸線上的離群點(10,10)。

fit2<-lm(y~x)round(dfbetas(fit2)[1:10,2],3)    1      2      3      4      5      6      7      8      9     10 0.585 -0.005  0.176 -0.001 -0.010 -0.013 -0.063  0.113  0.080 -0.021 round(hatvalues(fit2)[1:10],3)    1     2     3     4     5     6     7     8     9    10 0.509 0.010 0.019 0.010 0.011 0.011 0.015 0.028 0.015 0.011

可以看到離群點(10,10)的dfbetas仍然很大,但沒有之前情況那麼大,對擬合的影響沒有那麼大;hatvalues依舊比其他大很多。該離群點超出了X值的範圍,但滿足其他觀測點的線性回歸關係,具有較大的槓桿值,但影響力並不大。

例:Stefanski和合作者共同創建的一個數據集,用來說明殘差圖的作用

dat<-read.table('http://www4.stat.ncsu.edu/~stefanski/NSF_Supported/Hidden_Images/orly_owl_files/orly_owl_Lin_4p_5_flat.txt')pairs(dat)

圖10.各變量關係的散點圖矩陣 圖中有許多重複繪製的點。

summary(lm(V1~.-1,data=dat))$coef    Estimate Std. Error   t value     Pr(>|t|)V2 0.9856157 0.12798121  7.701253 1.989126e-14V3 0.9714707 0.12663829  7.671225 2.500259e-14V4 0.8606368 0.11958267  7.197003 8.301184e-13V5 0.9266981 0.08328434 11.126919 4.778110e-28

以V1為因變量,擬合多元線性模型。

fit<-lm(V1~.-1,data=dat)plot(predict(fit),resid(fit),pch='.')

圖11.繪製殘差圖 殘差圖可以放大線性模型擬合不佳的方面,指出擬合模型遺漏的趨勢。

相關焦點

  • SPSS超詳細教程:雙因素方差分析(Two-way ANOVA)
    我們可以採取以下4種辦法:(1) 轉換數據;(2) 因為方差分析對假設5並不是非常敏感,即使殘差不接近正態分布,我們也可以嘗試採用雙因素方差模型;(3) 檢驗模型結果。因為沒有可以替代雙因素方差分析的非參數檢驗方法,我們只能對比數據轉換前後的模型,判斷直接採用雙因素方差分析是否合理;(4) 選擇更穩健的雙因素方差模型。3.2.4 假設6:任一分類都具有等方差性任一分類都具有等方差性是雙因素方差分析的基本假設,可以通過Levene方差齊性檢驗完成。
  • spss操作入門(三):回歸分析
    ——王國維詞《蝶戀花》    回歸分析是一種處理變量的統計相關關係的一種數理統計方法。回歸分析的基本思想是: 雖然自變量和因變量之間沒有嚴格的、確定性的函數關係, 但可以設法找出最能代表它們之間關係的數學表達形式。
  • 一文讀懂R語言如何實現逐步回歸分析 ——【生物和醫學統計】
    逐步回歸分析是以AIC信息統計量為準則,通過選擇最小的AIC信息統計量,來達到刪除或增加變量的目的。R語言中用於逐步回歸分析的函數step(),drop1(),add1()。#1.載入數據 首先對數據進行多元線性回歸分析tdata<-data.frame(x1=c( 7, 1,11,11, 7,11, 3, 1, 2,21, 1,11,10),x2=c(26,29,56,31,52,55,71,31,54,47,40,66,68),x3=c( 6,15, 8,
  • 分析:iKON和WINNER的回歸成果對YG娛樂很重要
    (圖片來源:韓國《每日經濟》)韓亞金融投資於1月18日分析稱,對於YG娛樂公司而言,第一季度回歸的iKON和WINNER
  • 爬坡,從線性回歸開始,數據分析中一大波數學方法即將襲來
    從現在開始,就要逐步開始接受並習慣矩陣和向量,這是任何數據分析的基礎,也是所有機器學習和深度學習必須掌握的。拒絕掌握這個,數據分析將步履維艱,機器學習和深度學習將寸步難行。OK,說了這麼多,但線性回歸有啥用呢?
  • 臨床調查:這兩個因素影響蹠疣冷凍療法的效果
    冷凍療法是病毒性疣的常用治療,其療效據報告受多種因素的影響如病程、部位和損害大小,近期韓國 SMG-SNU Boramae 醫學中心 Kim DY 等研究了影響蹠疣冷凍療效的因素
  • 盤點 2015年回歸韓國娛樂圈的「男神」
    講述了因殺人事件失去妹妹、無感覺的男人和遭遇相同事故失憶、且擁有超感覺的女人的故事。樸有天將飾演的角色是在女主旁邊守護她,並具有正義感的人物,該劇也成為他時隔一年後回歸螢屏的首部作品。此前,由樸有天主演的電視劇《屋塔房王世子》收視率爆棚,其精湛的演技也被業界肯定。而本次樸有天將以何種形式出現在電視機前,吊足粉絲胃口。另外,該劇將接檔玄彬主演的電視劇《海德、哲基爾和我》,於4月首播。
  • Python數據分析:股票數據分析案例
    步驟:準備數據可視化數據、審查數據處理數據根據ACF、PACF定階擬合ARIMA模型預測準備數據    # 指定股票分析開始日期    start_date = datetime.datetime(2009, 1, 1)    # 指定股票分析截止日期    end_date = datetime.datetime(2019, 4, 1)    # 股票代碼    stock_code = '600519.SS'    # 滬市貴州茅臺
  • PEST模型:從4個方面分析外部大環境
    」你有個新想法,想找幾個兄弟一起合夥,準備幹一番大事業,大家聽了你的介紹後都鬥志昂揚,於是煮碗 「小米粥」,準備開幹······小米粥:當初雷軍初創團隊喝了一碗小米粥,之後就有了小米開幹前,建議先用PESTEL模型(也叫大環境分析模型)分析下外部的大環境。
  • 想做護理專家的重症專科護士:讓更多的重症患者回歸家庭和社會
    龍群鮮(左四)和護士長馮會舒(左一)組織開展臨床護理病案分析。「重症監護病區的工作已非常忙,為什麼你想做一輩子重症專科護士?」「病人太需要我們。」廣西榮譽軍人康復醫院重症病區護理組組長、重症專科護士龍群鮮說,她希望自己未來能成為這方面的護理專家,幫助更多患者回歸家庭、回歸社會。
  • 數據挖掘實戰:帶你做客戶價值分析(附代碼)
    分析方法消費金額,一般表示一段時間內,消費的總額。但是,因為航空票價收到距離和艙位等級的影響,同樣金額對航空公司價值不同因此,需要修改指標。選定變量,艙位因素=艙位所對應的折扣係數的平均值=C,距離因素=一定時間內積累的飛行裡程=M再考慮到,航空公司的會員系統,用戶的入會時間長短能在一定程度上影響客戶價值,所以增加指標L=入會時間長度=客戶關係長度總共確定了五個指標,消費時間間隔R,客戶關係長度L,消費頻率F,飛行裡程M和折扣係數的平均值C以上指標,作為航空公司識別客戶價值指標,記為LRFMC模型
  • 復仇者:不屈和神奇四俠一家回歸
    這個故事分別由三位作者Mark Waid, Jim Zub, Al Ewing和三位畫家Pepe Larraz, KimJacinto, Paco Medina負責,Pepe Larraz會是第一個月的畫家之後由Kim Jacinto和Paco Medina接手第二和第三個月的繪畫工作。可能是作者輪流負責一個月。
  • 回歸基本: 尿量到底有多重要?
    50%以上,尿量和肌酐共同構建了RIFLE,AKIN,和KDIGO裡AKI的診斷分級標準,很多研究也發現在尿量是比肌酐還要強的AKI信號指標,有些研究甚至提出將尿量作為獨立的AKI診斷分級概念,比如一份339個ICU的研究發現,在發現的41.6% AKI患者中,依靠單一尿量診斷標準可發現38%,是採用肌酐作為獨立診斷標準的2倍。
  • 春節回歸福利來襲,師徒系統迎來優化!
    ①神獸小福牛降臨更新後,新增神獸【小福牛】,少俠們可使用神獸祝福石兌換隨機獲得(點擊圖片查看小福牛詳細爆料)②春節煙花來襲2021年1月28日9:00-2021年2月19日24:00期間,燃放地圖刷新的煙花迎接新年獲得獎勵
  • 《影》:張藝謀的回歸之作?
    在歷經了一次與好萊塢工業的艱辛合作後,《長城》成為了第一部席捲全世界商業院線的中國爆米花電影;但中國的本土觀眾顯然對這樣一種文化輸出的「混血」形態毫不領情,惡評襲來同時,一次甚至波及到人民日報的影評風波,再次把張藝謀的職業生涯推到了風口浪尖——「國師」之名,自然是一國文化顏面的表率和擔當。
  • 王小源回應天佑回歸!​五哥分析散打哥如何奪回一哥寶座!
    王小源昨天直播的時候就透露,說天佑即將回歸,7月3號就要直播大練兵,要為公會瘋狂拉票。