概括
理解多重線性回歸的應(yīng)用 , 潛在問題和評估模型擬合的方法 , 是更復(fù)雜機(jī)器學(xué)習(xí)方法的核心
學(xué)習(xí)了如何在Python中構(gòu)建多元線性回歸模型,這實際上與您在簡單線性回歸的上一課中所做的非常類似怔软。
學(xué)習(xí)了如何編碼虛擬變量螟蒸,并解釋附加到每個變量的系數(shù)茅坛。
了解了更高階項观挎,以及它如何影響您解釋系數(shù)的能力挪凑。
學(xué)習(xí)了如何識別在多元線性回歸模型中需要交互的含義荠瘪,以及如何識別其他更高階項夯巷。但同樣赛惩,這些確實使得解釋系數(shù)不再是優(yōu)先考慮的事情,而是將模型轉(zhuǎn)向一個更傾向于以解釋為代價進(jìn)行預(yù)測的模型趁餐。
了解了模型假設(shè)喷兼,我們仔細(xì)研究了多重共線性。您了解了方差膨脹因子澎怒,以及多重共線性如何影響模型系數(shù)和標(biāo)準(zhǔn)誤差褒搔。
1 簡介
上節(jié)課你學(xué)習(xí)了如何在簡單線性回歸中 , 使用單個解釋變量預(yù)測反應(yīng)變量
In this lesson, you will be extending your knowledge of simple linear regression, where you were predicting a quantitative response variable using a quantitative explanatory variable. That is, you were using an equation that looked like this:
在這節(jié)課中你將繼續(xù)學(xué)習(xí)這一內(nèi)容 , 你將學(xué)習(xí)如何利用多個輸入預(yù)測反應(yīng)變量 , 其中包括定量變量和分類變量
In this lesson, you will learn about multiple linear regression. In these cases, you will be using both quantitative and categorical x-variables to predict a quantitative response. That is, you will be creating equations that like this to predict your response:
此外,您將學(xué)習(xí)如何評估多元線性回歸中可能發(fā)生的問題喷面,如何解決這些問題星瘾,以及如何評估模型的執(zhí)行情況。事實證明惧辈,Rsquared可以使用琳状,但可能會產(chǎn)生誤導(dǎo)。并且盒齿,遺憾的是念逞,相關(guān)系數(shù)只是兩個定量變量之間線性關(guān)系的度量,因此在多元線性回歸的情況下它不會非常有用边翁。
這里有一個很好的額外資源:統(tǒng)計學(xué)習(xí)簡介全文翎承。這是一本非常壯觀的機(jī)器學(xué)習(xí)入門書。
具體來說符匾,第3章討論了本課程中的許多想法叨咖。文本中執(zhí)行的編程在R中,但我們將繼續(xù)在本課程中使用Python啊胶。
2 多元線性回歸
假設(shè)你正打算投資買房 , 特別是想購買一棟 , 你認(rèn)為物超所值的房屋 , 我們收集了近期滿足你需求的在售房屋信息
這是你收集到信息的表格 房屋價格 , 三類社區(qū) A B 和 C , 房屋建筑面積 , 臥室數(shù)量 , 衛(wèi)生間數(shù)量和風(fēng)格 , 包括平房 維多利亞式別墅和林間小屋
在上節(jié)課中 , 你學(xué)會如何使用 , 其中一項定量內(nèi)容 預(yù)測房屋價格 , 但是如果我們想要使用所有這些內(nèi)容會如何呢甸各? , 如果是這些列呢? , 使用斜率 7 乘以街區(qū) A , 或者維多利亞風(fēng)格 這意味著什么焰坪?
實際上 我們使用線性代數(shù) , 同時使用所有這些輸入預(yù)測 y 值 , 這樣做可以創(chuàng)建一個輸入矩陣
所以利用這里的值我們可以創(chuàng)建想要預(yù)測的響應(yīng)矢量 , 這個矩陣通常用符號表示為大寫 X , 響應(yīng)矢量用 Y 表示 , 為了區(qū)分之前看到的符號 , 這些符號都用黑體表示
為了真正掌握 , 多重線性回歸的所有內(nèi)容和原理 , 你需要了解這些矢量和矩陣如何共同運(yùn)行.
如果您需要線性代數(shù)復(fù)習(xí)趣倾,請在下面列出另外兩個資源!
可汗學(xué)院的線性代數(shù)免費(fèi)課程某饰,以便您需要復(fù)習(xí)儒恋。
本課程中課外教材中的線性代數(shù)和NumPy進(jìn)修課程。
3
實際上你可以熟練進(jìn)行擬合 , 多重線性回歸模型和解釋這些模型的結(jié)果 , 我們來看一個例子 , 這是個類似的數(shù)據(jù)集 , 上節(jié)課你見到的房屋數(shù)據(jù)集 可以從資源中獲取 , 在接下來的概念中還會繼續(xù)使用
現(xiàn)在我已經(jīng)寫出合適的庫和數(shù)據(jù)集 , 現(xiàn)在為了擬合線性模型 , 我們首先創(chuàng)建一個截距 , 然后再次使用上節(jié)課的 statsmodels , 但是我們需要把所有變量加入的 X 部分列表中 , 所以這里增加截距 , 我們想要預(yù)測價格 , 在右側(cè)這里 , 我們需要增加所有定量變量 , 如果要增加分類變量 , 你會注意到 , 存儲為 LM 表示線性回歸 , 我們可以擬合模型
如何在多元線性回歸中找到“正確”系數(shù)
在簡單線性回歸部分中露乏,了解了我們對如何使每個實際數(shù)據(jù)點與模型中預(yù)測值之間的平方距離進(jìn)行最小化感興趣碧浊。
但在多元線性回歸中,我們實際上所處理的數(shù)據(jù)點不僅僅是二維空間的點瘟仿。
For a full derivation of how this works, this article provides a break down of the steps.
5
我們可以將每個系數(shù)解釋為解釋變量中每一個單位增加的響應(yīng)的預(yù)測增加,使模型中的所有其他變量保持不變比勉。
但是劳较,通常驹止,系數(shù)可能是正數(shù)或負(fù)數(shù)。因此观蜗,每個系數(shù)是解釋變量中每一個單位增加的響應(yīng)的預(yù)測變化臊恋,使模型中的所有其他變量保持不變。
這種解釋非常類似于您在上一課中看到的簡單添加短語“保持所有其他變量不變”墓捻,這意味著只有附加到系數(shù)的變量會發(fā)生變化抖仅,而所有其他變量保持不變。
6 虛擬變量
所以你發(fā)現(xiàn)把分類解釋變量添加到 X 矩陣 , 無法像添加定量變量一樣順利 , 除了把這樣的列添加到 X 矩陣中 , 這些列包含值 街區(qū) A B C 等 , 我們最后要創(chuàng)建所謂的虛擬變量 , 編碼虛擬變量可以采用多種方式 , 但是最常見的是編碼為 0 和 1
原理:
我們?yōu)檫@一列每個值創(chuàng)建一列 , 對于每一列 , 如果列中存在值 則為 1 否則是 0 , 所以我們可以為 A 值創(chuàng)建這樣一列
然后我們?yōu)?B 值創(chuàng)建的一列 , 可以像是這樣 , 最后一列是這樣的 , 你要對添加到數(shù)據(jù)集中的每個分類變量 , 采用這種方法 , 由于最后一列是根據(jù)前兩列推算出來的 , 并且值 1 只存在于 , 列中不包含 1 的行
也就是說其中任意一列與其他兩列有相關(guān)性, 可以用其他兩列表示.
我們實際上最終要舍棄這一列 , 舍棄哪一列實際上并沒有太大影響 ,
總結(jié):
我們在多元線性回歸模型中添加分類變量的方法是使用虛擬變量(dummy variable)砖第。添加虛擬變量的最常見方式是通過1,0編碼撤卢。在此編碼方法中,您為類別的每個級別(在本例中為A,B或C)創(chuàng)建新列。然后我們的新列保持1或0款青,具體取決于原始列中是否存在級別婆赠。
當(dāng)我們將這些虛擬變量添加到我們的多元線性回歸模型時,我們總是丟棄其中一列岛琼。您刪除的列稱為基線(baseline)。從多元線性回歸模型的輸出中獲得的系數(shù)則表明編碼水平與基線水平(水平下降)的比較。
Text: Dummy Variables
The Math Behind Dummy Variables
In the last video, you were introduced to the idea the way that categorical variables will be changed to dummy variables in order to be added to your linear models.
Then, you will need to drop one of the dummy columns in order to make your matrices full rank.
If you do not drop one of the columns when creating the dummy variables, your solution is unstable and results from python are unreliable. You will see an example of what happens if you do not drop one of the dummy columns in the next concept.
The takeaway is...when you create dummy variables using 0, 1 encodings, you always need to drop one of the columns to make sure your matrices are full rank (and that your solutions are reliable from python).
The reason for this is linear algebra. Specifically, in order to invert matrices, a matrix must be full rank (that is all the columns need to be linearly independent). Therefore, you need to drop one of the dummy columns, to create linearly independent columns (and a full rank matrix).
quiz
對于其他變量惕澎,您將獲得截距加上4個虛擬變量,總共5個系數(shù)颜骤。
7
現(xiàn)在我們練習(xí)一下把虛擬變量添加到線性模型中
首先我們加載必要的庫和數(shù)據(jù) , 為了創(chuàng)建虛擬變量 , Pandas 提供了一種實用方法 叫做 get_dummy
, 通過谷歌快速搜索可以得到這個文檔
如果傳遞街區(qū)(neighborhood)一列
你會發(fā)現(xiàn)得到 A , B 和 C 其中這里有三個 B , 發(fā)現(xiàn)這里有三個 1 然后這有一個 A , 所以我們看到這個 1 表示 A , 其他 0 表示其余這些列 , 我們存儲為輸出結(jié)果 A , B C
正如你在之前練習(xí)所見 , 只使用線性模型中的分類列無法起作用 , 我們來看一下 , 使用虛擬變量和線性回歸模型能不能更成功 , 這里我已經(jīng)創(chuàng)建了街區(qū)
然后采用相同方式創(chuàng)建風(fēng)格 , 分類變量總是以字母順序呈現(xiàn) , 按照字母順序首先出現(xiàn)的 , 也會首先返回到列中 , 所以在你看到這個前 我們不能直接把這些虛擬變量傳遞到線性回歸模型中 , 我們再次嘗試使用這些虛擬變量
記住你總是要舍棄其中一列 , 你舍棄的這列稱為基準(zhǔn)類別 , 我們來舍棄維多利亞一列 只使用另外兩列 , 這樣我們舍棄這一列 使用這兩列 , 同樣我們創(chuàng)建基準(zhǔn)為 A B 和 C , 添加到線性模型時舍棄其中一個
解釋
You can look at the p-values to compare to neighborhood A. In order to compare neighborhood B to neighborhood C, you can compare the confidence intervals. Since the confidence intervals for B and C do not overlap, we have have evidence they differ as well.
為了創(chuàng)建只使用房屋的線性模型 我們可以這樣做 , 我們將要預(yù)測價格 , 增加一個截距 , 然后是在模型中 , 我得到這個截距 , 所以這里你看到我們成功幾率更大 , 這里我們擬合模型 , 最終可以看到包含摘要指令的結(jié)果
這個截距表明如果房屋是維多利亞風(fēng)格 , 預(yù)測價格為 1,046,000 美元 , 林間小屋的價格比維多利亞房屋低 741,000 美元
同樣 平房的價格比維多利亞房屋低471,000 美元 , 這些與基準(zhǔn)類別形成對比 , 可以得出對基準(zhǔn)類別的估算
quiz
解釋
8
不過 還有一種編碼虛擬變量的方法 , 也在編程語言中非常常見 稱為 SAS , 在 SAS 中編碼默認(rèn)值是 1 0 和 -1 , SAS 是健康等相關(guān)領(lǐng)域中非常流行的編程語言 , 值得注意的最大不同點在于 它可以改變 , 你從模型中得到的系數(shù) , 和對這些系數(shù)的解釋方式 , 使用 0 和 1 編碼時 , 對比系數(shù)和基準(zhǔn)分類 進(jìn)行解釋 , 不過如果使用 0 1 和 -1, 你的系數(shù)是與平均數(shù)做對比 而不是整體
9
構(gòu)建多重線性回歸模型時 , 會出現(xiàn)許多問題 , 但是發(fā)現(xiàn)哪些方面成為問題 , 取決于你模型的用途
你將要利用模型了解變量 x 和 y 如何具有相關(guān)性嗎唧喉? , 你將要利用模型較好地預(yù)測反應(yīng)變量嗎? , 還是想要發(fā)現(xiàn) , 哪個變量對預(yù)測反應(yīng)變量有用處呢复哆? , 每個問題都可能存在一些相應(yīng)的問題 , 根據(jù)你最感興趣的方面 , 這有利于決定哪些問題是你想要解決的
在《統(tǒng)計學(xué)習(xí)導(dǎo)論》中 , 提到了下列問題
- 第一反應(yīng)變量和預(yù)測變量之間可能不存在線性關(guān)系
- 第二 可能具有相關(guān)性誤差
- 第三 可能不具有誤差的常數(shù)方差
- 第四 可能具有破壞模型的離群值或杠桿點
- 最后可能存在更多的線性度
附加材料
模型假設(shè)以及如何解決每個問題
以下是在統(tǒng)計學(xué)習(xí)導(dǎo)論中提到的前一個視頻中提到的五個假設(shè):
- 反應(yīng)變量 - 預(yù)測變量關(guān)系的非線性
- 誤差項的相關(guān)性
- 非常數(shù)方差和正態(tài)分布誤差
- 異常值/高杠桿點
- 共線性
本文概述了如何識別這些問題是否存在欣喧,以及如何解決這些問題。在即將到來的概念中梯找,我們將更加密切地關(guān)注我認(rèn)為應(yīng)該得到更多關(guān)注的特定點唆阿,但在下面您將看到對每個主題的更詳盡的介紹。讓我們仔細(xì)看看這些項目锈锤。
線性
線性假設(shè)是線性模型是您的響應(yīng)和預(yù)測變量之間真正存在的關(guān)系驯鳖。如果不是這樣,那么您的預(yù)測將不會非常準(zhǔn)確久免。此外浅辙,與系數(shù)相關(guān)的線性關(guān)系實際上也沒有用。
在本頁底部的圖像中阎姥,這些被認(rèn)為是偏向模型记舆。理想情況下,我們希望看到點的隨機(jī)散布呼巴,如圖像中的左上角殘差圖泽腮。
誤差相關(guān)性
當(dāng)我們的數(shù)據(jù)隨著時間的推移收集時(例如預(yù)測股票價格或未來的利率)或數(shù)據(jù)在空間上相關(guān)(如預(yù)測洪水或干旱地區(qū))御蒲,經(jīng)常會出現(xiàn)誤差相關(guān)。我們通痴锷蓿可以通過使用過去數(shù)據(jù)點(時間)或附近點(空間)的信息來改進(jìn)我們的預(yù)測厚满。
不考慮相關(guān)誤差的主要問題是,您通潮贪酰可以利用此相關(guān)性來更好地預(yù)測未來事件或事件在空間上彼此接近碘箍。
識別是否存在相關(guān)誤差的最常用方法之一是基于收集數(shù)據(jù)的域。如果您不確定鲸郊,有一項稱為Durbin-Watson測試的測試丰榴,通常用于評估誤差的相關(guān)性是否是一個問題。然后通常實施ARIMA或ARMA模型以使用該相關(guān)性來做出更好的預(yù)測严望。
非常數(shù)方差和正態(tài)分布誤差
非常數(shù)方差是指預(yù)測值的差異取決于您嘗試預(yù)測的值多艇。就預(yù)測而言,這不是一個大問題像吻。但是峻黍,它確實會導(dǎo)致置信區(qū)間和p值不準(zhǔn)確。系數(shù)的置信區(qū)間對于實際值更接近預(yù)測值的區(qū)域而言太寬拨匆,但對于實際值更接近預(yù)測值的區(qū)域而言太窄姆涩。
通常,日志(或響應(yīng)變量的一些其他變換)是為了“擺脫”非常數(shù)方差惭每。為了選擇轉(zhuǎn)換骨饿,通常使用Box-Cox。
可以使用殘差圖通過預(yù)測值再次評估非恒定方差台腥。在頁面底部的圖像中宏赘,非常數(shù)方差被標(biāo)記為異方差。理想情況下黎侈,我們需要一個具有同方差殘差的無偏模型(在整個值范圍內(nèi)保持一致)察署。
雖然文本沒有討論殘差的正態(tài)性,但如果您有興趣創(chuàng)建可靠的置信區(qū)間峻汉,這是回歸的一個重要假設(shè)贴汪。此處提供了有關(guān)此主題的更多信息。
異常值/杠桿點數(shù)
異常值和杠桿點是遠(yuǎn)離數(shù)據(jù)常規(guī)趨勢的點休吠。這些要點會對您的解決方案產(chǎn)生很大影響扳埂。在實踐中,這些點甚至可能是拼寫錯誤瘤礁。如果要匯總來自多個源的數(shù)據(jù)阳懂,則可能是某些數(shù)據(jù)值未正確傳輸或未正確聚合。
其他時候異常值是準(zhǔn)確和真實的數(shù)據(jù)點,不一定是測量或數(shù)據(jù)輸入錯誤希太。在這些情況下克饶,“固定”更主觀酝蜒。通常誊辉,使用這些要點的策略取決于分析的目標(biāo)。特別地亡脑,使用普通最小二乘的線性模型不是非常穩(wěn)健堕澄。也就是說,大的異常值可能會大大改變我們的結(jié)果霉咨。有一些技術(shù)可以解決這個問題 - 主要稱為正規(guī)化技術(shù)蛙紫。這些超出了本課程的范圍,但在機(jī)器學(xué)習(xí)的免費(fèi)課程中會很快討論它們途戒。
共線性(多重共線性)
多重共線性是指變量之間彼此相關(guān)的預(yù)測變量坑傅。多重共線性的一個主要問題是它可能導(dǎo)致系數(shù)從我們期望的簡單線性回歸方向翻轉(zhuǎn)。
識別多重共線性的最常見方法之一是使用雙變量圖或使用方差膨脹因子(或VIF)喷斋。這是我們將在下一個概念中深入探討的主題唁毒,因此我們不會在此花費(fèi)太多時間。
10 多重線性回歸模型與方差膨脹因子(或VIF)
多重線性回歸模型的主要假設(shè)之一 , 是我們的預(yù)測變量彼此不相關(guān)
我們希望預(yù)測變量與反應(yīng)變量相關(guān) , 而不是彼此之間具有相關(guān)性
在這個例子中 我們要觀察房屋的特點, 你可以假設(shè)房屋大小 , 臥室數(shù)量 , 衛(wèi)生間數(shù)量都存在相關(guān)性
我們可能認(rèn)為房屋越大 擁有越多的臥室和衛(wèi)生間 , 我們使用 seaborn 快速觀察一下 , 每對變量之間的關(guān)系 , 這里你可以看到我讀取 seaborn
為 sb
,
Seaborn 包含的 pairplot
, 可以讓我們觀察每個變量之間的關(guān)系 , 這里我想要觀察這三個 x 變量之間的關(guān)系 , 即面積 臥室和衛(wèi)生間
可以看到這些關(guān)系 , 彼此之間具有極強(qiáng)的正相關(guān) , 所以你可以發(fā)現(xiàn)衛(wèi)生間和 , 面積具有很強(qiáng)的正相關(guān) , 面積和臥室之間 , 臥室和衛(wèi)生間之間也是如此
現(xiàn)在我們使用者三個系數(shù) , 試著擬合多重線性回歸模型 , 首先我們通常要創(chuàng)建截距 , 我運(yùn)行 statsmodels
簡寫為 sm
, 那么我將要這樣擬合 sm.OLS
所以我們要預(yù)測的內(nèi)容 , 是“價格” 使用截距 , 和所有這些 x 變量 , 然后我們把它存儲在線性模型中
有意思的是 , 雖然我們希望面積 , 臥室和衛(wèi)生間與反應(yīng)變量存在相同的關(guān)系 , 即隨著它們增加 反應(yīng)變量也應(yīng)該增加 , 但臥室與反應(yīng)變量存在負(fù)系數(shù)
如上圖雖然價格和臥室與其他變量存在正相關(guān) , 但是在多重線性回歸模型中 兩者呈現(xiàn)負(fù)相關(guān) , 對這一系數(shù)的解釋與我們直覺上認(rèn)為的是相反的, 在雙變量例子中實際上為真 , 這是模型中多重共線性的一個潛在副作用 , 即這與你認(rèn)為是正確的系數(shù)恰好相反
另一個常見的方式是辨別預(yù)測值之間是否具有相關(guān)性 , 除了我們看到的散點圖 , 還有方差膨脹因子 簡寫為 VIF
這里的dmatrices
矩陣是我們從 patsy
中讀取的 , 可以讓我們創(chuàng)建 x 和 y 的方程式 , 方程式可以得到矩陣
從 statsmodels
中 我們計算得出每個 x 變量的方差膨脹因子 , 然后我們傳遞到方差膨脹因子函數(shù)中 , 方差膨脹因子可以寫入 statsmodels , 利用截距得到價格 , 以及面積 臥室和衛(wèi)生間
我們可以看到每個變量的方差膨脹因子 , 都可以從我創(chuàng)建的方差膨脹因子DataFrame中獲取 , 我們想要刪除兩個變量中的至少一個 , 因為兩者方差膨脹因子都大于 10 , 在接下來將繼續(xù)討論這一話題
11 多重共線性和VIF
在前面的例子中你見到 , X 變量之間具有相關(guān)性 , 這會導(dǎo)致回歸系數(shù)與預(yù)期關(guān)系的反轉(zhuǎn) , 和不準(zhǔn)確的假設(shè)檢驗結(jié)果 , 我們希望 X 變量與 Y 相關(guān)
但是 X 變量之間具有相關(guān)性時 這些結(jié)果具有誤導(dǎo)性
發(fā)現(xiàn)多重線性的兩種方式
分別是散點圖矩陣和方差膨脹因子 , 或簡寫為 VIF
快速檢查是否具有較大的方差膨脹因子 , 一般規(guī)則是如果方差膨脹因子大于 10** , 那么你的模型就會出現(xiàn)多重線性 ,
特定變量的方差膨脹因子可以通過下面的公式得到
其中 R 的平方通過 , 所有其他 X 變量預(yù)測出的 X 變量 R 的平方計算得到 , 所以如果 X 與其他變量高度相關(guān) 那么這部分增加 , 就會減少整個分母 增加其方差膨脹因子
你可以認(rèn)為模型中很少發(fā)現(xiàn)只有一個較大的方差膨脹因子 , 因為兩個或以上 X 變量之間彼此相關(guān) , 你會認(rèn)為這些變量具有較高的方差膨脹因子 , 解決回歸中彼此相關(guān)的變量, 最常見的方法是 刪除最小興趣的變量
如果刪除浴室列
R平方值并沒有發(fā)生變化
重新計算VIF值后
結(jié)論
去除浴室的數(shù)量并沒有損害模型的預(yù)測能力星爪,并且仍然提高了系數(shù)的可解釋性浆西。
總結(jié)
我們希望x變量與響應(yīng)相關(guān),但不要彼此相關(guān)顽腾。 當(dāng)我們的x變量彼此相關(guān)時近零,這被稱為多重共線性。多重共線性有兩個潛在的負(fù)面影響抄肖。
當(dāng)存在多重共線性時久信,x變量和響應(yīng)之間的預(yù)期關(guān)系可能不成立。也就是說漓摩,可能期望解釋變量和響應(yīng)之間存在正相關(guān)關(guān)系(基于雙變量關(guān)系)裙士,但在多元線性回歸情況下,它會將關(guān)系視為負(fù)數(shù)幌甘。
我們的假設(shè)檢驗結(jié)果可能不可靠潮售。事實證明,具有相關(guān)的解釋變量意味著我們的系數(shù)估計值不太穩(wěn)定锅风。也就是說酥诽,與回歸系數(shù)相關(guān)的標(biāo)準(zhǔn)偏差(通常稱為標(biāo)準(zhǔn)誤差)非常大。因此皱埠,特定變量可能對預(yù)測響應(yīng)很有用肮帐,但由于它與其他x變量的關(guān)系,將不再看到此關(guān)聯(lián)。
我們還研究了識別多重共線性的兩種不同方法:
我們可以看一下每個解釋變量與每個其他解釋變量的相關(guān)性(用圖或相關(guān)系數(shù))训枢。
我們可以查看每個變量的VIF
當(dāng)VIF大于10
時托修,這表明多重共線性肯定是模型中的一個問題。一些專家甚至認(rèn)為大于5
的VIF可能會有問題恒界。在大多數(shù)情況下睦刃,不僅一個VIF很高,而且很多VIF都很高十酣,因為它們是相關(guān)變量如何相互作用的度量涩拙。
在多元線性回歸模型中使用相關(guān)解釋變量的最常用方法是簡單地刪除與其他變量最相關(guān)的變量之一。選擇一個您不感興趣或?qū)δ恢匾慕忉屪兞渴且环N常見的選擇耸采。
12高階項
要想擬合類似于非線性模型的模型 , 可以通過在模型中增加高階項 如交叉項 , 二次式 三次多項式和高階值
雖然這些高階項可以讓你較好地預(yù)測反應(yīng)變量 , 我一般避免使用這類條目 , 除非在數(shù)據(jù)中明確觀察到存在關(guān)系 , 增加這些項會使解釋數(shù)據(jù)的結(jié)果更加復(fù)雜 , 對低階項的解釋 , 如建筑面積的斜率 , 或者分類變量水平的斜率 , 如果這些項為高階項時 解釋起來不那么簡單
如何識別高階項?
In a model with no higher order terms, you might have an equation like:
Then we might decide the linear model can be improved with higher order terms. The equation might change to:
In general, these terms can help you fit more complex relationships in your data. However, they also takeaway from the ease of interpreting coefficients, as we have seen so far. You might be wondering: "How do identify if I need one of these higher order terms?"
當(dāng)創(chuàng)建具有二次兴泥,三次或甚至更高階變量的模型時,我們基本上在查看解釋變量和響應(yīng)變量之間的關(guān)系中有多少條曲線虾宇。
如果有一條曲線搓彻,如下圖所示,那么您將需要添加二次曲線嘱朽。顯然旭贬,我們可以看到一條線不適合這種關(guān)系。
然后燥翅,如果我們想要添加一個三次關(guān)系骑篙,那是因為我們在解釋變量和響應(yīng)變量之間的關(guān)系中看到兩條曲線。下圖顯示了這方面的一個例子森书。
13
我們試著把一些高階項添加到你的模型中 , 現(xiàn)在你可以發(fā)現(xiàn)他們?nèi)绾纹鹱饔?以及確定何時使用
有時我們會擬合模型 , 即使反應(yīng)變量與解釋變量并沒有線性相關(guān)性 , 我們可以使用所謂的高階項完成 , 高階項包括二項式 , 三項式 交叉項和其他許多關(guān)系 , 為了把這些項添加到線性模型中 , 我們只需要把列乘以另一列
這里我們創(chuàng)建了臥室數(shù)量的二次關(guān)系 , 通過臥室所有值的平方 , 或列乘以列 , 我們存儲為臥室的平方 , 我們把這些高階項添加到模型中 , 也需要加入低階項, 我們來使用臥室和臥室的平方來預(yù)測價格
這里我們可以觀察到結(jié)果 , 注意 添加二項式表明我們不會采取之前相同的方式解釋臥室相關(guān)的系數(shù) , 即系數(shù)并不是隨著臥室增多所預(yù)測的價格也發(fā)生變化 , 因為改變bedrooms
和這一項, 也表明二項式bedrooms_squared
中發(fā)生變化 , 所以價格改變?nèi)Q于臥室的初始和最終數(shù)量 , 臥室數(shù)量從 3 個變?yōu)?4 個時價格的變化 , 與從 5 個變?yōu)?6 個時價格的變化不一樣 , 所以無法簡單解釋這些項
我們也可以向數(shù)據(jù)集中添加這樣的三項式 , 這里我命名為bedrooms_cubed
臥室的立方 , 然后像這樣添加到模型中, 然后我們得到立方后的結(jié)果
然后我們來觀察下結(jié)果 , 這里你會發(fā)現(xiàn) R 平方實際上只增加了一點 , 不過加入臥室的立方值并不是很大的數(shù)字 , 認(rèn)為臥室的立方值與價格具有相關(guān)性 , 并不恰當(dāng)
另外下面每個系數(shù)都不能很好地得到解釋 , 現(xiàn)在我們來看一下交叉項 , 交叉項是通過兩個變量相乘得到的
我們來創(chuàng)建面積和臥室數(shù)量之間的交互項 , 然后把它添加到這個數(shù)據(jù)集的DataFrame中 , 現(xiàn)在為了把交叉項添加到模型中 , 我們應(yīng)該再次添加低階項 , 這意味著把面積和臥室數(shù)量都添加到線性模型中 , 既然臥室數(shù)量已經(jīng)包含在模型中 , 我這里添加面積和交叉項
14
每次把高階項或交叉項添加到模型中 , 你應(yīng)該確保添加各自的低階項
在我們觀察反應(yīng)變量和解釋變量之間關(guān)系的曲線時 , 你又如何認(rèn)識到應(yīng)該添加交叉項呢靶端? 為什么我們要向模型中添加這樣的內(nèi)容呢?
添加交叉項 , 就是這些斜率非常接近一致的問題 , 如果斜率接近一致 , 我們不需要添加交叉項 , 不過如果斜率不相同 , 表明我們需要向模型中添加交叉項
交互項
在數(shù)學(xué)上凛膏,通過將兩個變量相互相乘并將該項添加到我們的線性回歸模型來創(chuàng)建交互杨名。
The example from the previous video used area (x1) and the neighborhood (x2) of a home (either A or B) to predict the home price (y).
此示例不涉及交互項,如果變量的關(guān)系類似于下圖中的關(guān)系猖毫,則此模型是合適的台谍。
b1是我們估計面積和價格之間關(guān)系的方式,在這個模型中我們認(rèn)為無論neighborhood
鄰域如何都是相同的吁断。
然后b2是價格的差異取決于你所在的neighborhood社區(qū)趁蕊,這是兩條線之間的垂直距離:
Notice, here the way that area is related to price is the same regardless of neighborhood.
AND
The difference in price for the different neighborhoods is the same regardless of the area.
When these statements are true, we do not need an interaction term in our model. However, we need an interaction when the way that area is related to price is different depending on the neighborhood.
在數(shù)學(xué)上,當(dāng)區(qū)域與價格相關(guān)的方式取決于neighborhood鄰域時仔役,這表明我們應(yīng)該添加交互掷伙。通過添加交互,我們允許每個neighborhood鄰域的線的斜率不同又兵,如下圖所示任柜。在這里卒废,我們添加了交互,你可以看到這允許這兩個斜率的差異宙地。
These lines might even cross or grow apart quickly. Either of these would suggest an interaction is present between area and neighborhood in the way they related to the price.
概括
理解多重線性回歸的應(yīng)用 , 潛在問題和評估模型擬合的方法 , 是更復(fù)雜機(jī)器學(xué)習(xí)方法的核心
學(xué)習(xí)了如何在Python中構(gòu)建多元線性回歸模型摔认,這實際上與您在簡單線性回歸的上一課中所做的非常類似。
學(xué)習(xí)了如何編碼虛擬變量宅粥,并解釋附加到每個變量的系數(shù)参袱。
了解了更高階項,以及它如何影響您解釋系數(shù)的能力粹胯。
學(xué)習(xí)了如何識別在多元線性回歸模型中需要交互的含義蓖柔,以及如何識別其他更高階項。但同樣风纠,這些確實使得解釋系數(shù)不再是優(yōu)先考慮的事情,而是將模型轉(zhuǎn)向一個更傾向于以解釋為代價進(jìn)行預(yù)測的模型牢贸。
了解了模型假設(shè)竹观,我們仔細(xì)研究了多重共線性。您了解了方差膨脹因子潜索,以及多重共線性如何影響模型系數(shù)和標(biāo)準(zhǔn)誤差臭增。