前面我們講過了多元線性回歸。這一篇我們來講講逐步回歸。什麼是逐步回歸呢?就是字面意思,一步一步進行回歸。
我們知道多元回歸中的元是指自變量,多元就是多個自變量,即多個x。這多個x中有一個問題需要我們考慮,那就是是不是這多個x都對y有作用。答案就是有的時候都管用,有的時候部分管用。那對於那些沒用的部分我們最好是不讓它加入到回歸模型裡面。我們把這個篩選起作用的變量或者剔除不起作用變量的過程叫做變量選擇。
我們剛提到自變量有用沒用,那怎麼來評判一個自變量到底有用沒用呢?判斷依據就是對自變量進行顯著性檢驗。具體方法是將一個自變量加入到模型中時,有沒有使殘差平方和顯著減少,如果有顯著減少則說明這個變量是有用的,可以把這個變量加入到模型中,否則說明時無用的,就可以把這個變量從模型中刪除。有沒有顯著減少的判斷標準就是根據F統計量來判斷。
關於判斷F統計量的顯著性我們在方差分析裡面講過,大家可以去看看。
變量選擇主要有:向前選擇、向後踢出、逐步回歸、最優子集等,我們這一篇主要講前三種。
02.向前選擇向前選擇可以理解成從零開始選擇,因為模型最開始的時候是沒有自變量的,具體的步驟如下:
Step1:拿現有的k個變量分別和y建立回歸模型,最後會得到k個模型以及每個模型中變量對應的F統計量和其p_value,然後從顯著的模型中挑選出F統計量最大模型對應的自變量,將該自變量加入到模型中,如果k個模型都不顯著,則選擇結束。
Step2:通過第一步我們已經得到了一個顯著性變量,並把這個變量加入到了模型中。接下來再在已經加入一個變量的模型裡面繼續分別加入剩下的變量,能夠得到k-1個模型,然後在這k-1個模型裡面挑選F值最大且顯著的變量繼續加入模型。如果沒有顯著變量,則選擇結束。
重複執行上面兩步,直到沒有顯著性變量可以加入到模型為止,這就是向前選擇。
03.向後剔除向後剔除是與向前選擇相對應的方法,是向前選擇的逆方法,具體的步驟如下:
Step1:將所有的自變量都加入到模型中,建立一個包含k個自變量的回歸模型。然後分別去掉每一個自變量以後得到k個包含k-1個變量的模型,比較這k個模型,看去掉哪個變量以後讓模型的殘差平方和減少的最少,即影響最小的變量,就把這個變量從模型中刪除。
Step2:通過第一步我們已經刪除了一個無用的變量,第二步是在已經刪除一個變量的基礎上,繼續分別刪除剩下的變量,把使模型殘差平方和減少最小的自變量從模型中刪除。
重複上面的兩個步驟,直到刪除一個自變量以後不會使殘差顯著減少為止。這個時候,留下來的變量就都是顯著的了。
04逐步回歸逐步回歸是向前選擇和向後踢除兩種方法的結合。是這兩種方法的交叉進行,即一遍選擇,一邊剔除。
逐步回歸在每次往模型中增加變量時用的是向前選擇,將F統計量最大的變量加入到模型中,將變量加入到模型中以後,針對目前模型中存在的所有變量進行向後剔除,一直循環選擇和剔除的過程,直到最後增加變量不能夠導致殘差平方和變小為止。
關於逐步回歸的Python實現,網上有很多現成代碼的,只要原理清楚了,代碼就很好懂了。
你還可以看:
多元回歸分析