天天看點

4、spss做多元線性回歸

回歸一直是個很重要的主題。因為在資料分析的領域裡邊,模型重要的也是主要的作用包括兩個方面,一是發現,一是預測。而很多時候我們就要通過回歸來進行預測。關于回歸的知識點也許不一定比參數檢驗,非參數檢驗多,但是複雜度卻絕對在其上。回歸主要包括線性回歸,非線性回歸以及分類回歸。本文主要讨論多元線性回歸(包括一般多元回歸,含有虛拟變量的多元回歸,以及一點廣義差分的知識)。請大家不要覺得本人偷奸耍滑,居然隻有一個主題,兩個半知識點。相信我,内容會很充實的。

對于線性回歸的定義主要是這樣的:線性回歸,是基于最小二乘法原理産生古典統計假設下的最優線性無偏估計。是研究一個或多個自變量與一個因變量之間是否存在某種線性關系的統計學方法。

這個什麼叫線性回歸,什麼叫最小二乘法,在在高中數學課本裡邊就有涉及。我就不重複了嘿嘿。本質上講一進制線性回歸是多元線性回歸的一個特例,是以我們就直接讨論多元線性回歸了哈。

為了便于叙述,我們先舉個例子,假設我們想研究年齡,體重,身高,和血壓的線性回歸關系。

打開菜單分析——回歸——線性,打開主對話框。很容易可以知道在本例中因變量選擇血壓,自變量選擇年齡,身高,體重。然後注意,在因變量那個框框下邊還有一個寫着方法的下拉的單選菜單。這個方法指的是建立多元線性方程的方法,也就是自變量進入分析的方法。一共包括五種,進入,逐漸,删除,向後,向前。進入是最簡單的一種,就是強迫指定選中的自變量都進入方程。其餘四個方法比較複雜,系統會依照不同的規則自動的幫助你剔除不合格的自變量,以此保證方程的可靠性。

下邊的選擇變量框框是用來指定分析個案的選擇規則,這個一般大家是所有的個案都利用,是以不用管它。再下邊的個案标簽變量,是用來在圖形中标注值得,也不是重點。最下邊的wls權重,是在權重最小二乘法裡邊使用的,這裡不管它。

介紹完主面闆以後我們來看統計量頁籤。這張頁籤比較小,一般勾選的主要有估計,模型拟合度,共線性診斷,dw檢驗統計量。其中前兩個是正常選項,後兩個是用來判斷共線性的。(由于方程中有兩個以上的自變量,如果這些自變量之間存在相關關系,就可能導緻模型的失敗。可能會出現本應該與因變量正相關的變量結果為負相關啊之類的問題。這時候就要看是不是存在多重共線性。)

繼續,單擊繪制。勾選直方圖,正太機率圖。

繼續,單擊儲存。勾選預測值的未标準化,殘差的未标準化,預測區間的均值,單值,最下邊的包含協方差矩陣。

繼續。單擊選項。勾選使用f的機率,在等式中包含常量。

繼續,确定。

結果的解釋也說不上複雜。首先看模型彙總表的r方,這個值介于0和1之間,表示你的方程能解釋你的模型的百分之多少,是以越接近1越好啦。然後要看方差分析表。第一行的回歸對應的最後邊的p值會告訴你這個方程是不是可信(注意,這個是整個方程的基礎,這個p值不合格的話下邊的資料都是無效的)。小于0.05認為就是可信的哈。

然後再看下邊的系數表,這個表裡的p值會告訴你每個自變量在這個方程裡是否可信。小于0.05認為可信哈。在最前邊的b下邊那一列會告訴你每個自變量在方程裡的系數(非标準化系數的意思是用你原來的資料算出來的系數,标準系數的意思是你的資料标準化以後算出的系數。你寫方程時肯定看非标準化的哈)。圖檔的話你的p-p圖上的每個空心圓都要盡量穿在那個線上邊,圓心越靠近那個線越好。

到這裡一般多元線性回歸的基本知識就結束了。操作不是很難,但是遺憾的是,在實際生活中,關于多元線性回歸,還有許多問題。最常見的問題是這樣的。你為了保險,選了十幾個變量在模型裡邊。這樣的話,可能你的方程确實解釋了很大一部分模型,但是這除了使方程過分複雜以外,還會引發嚴重的多重共線性。是以不要選很多的變量在你的方程裡邊。或者你在模型裡選了五六個變量,其中一部分p值小于0.05,另一部分大于。而且最要命的是你覺得你的自變量好像都明顯和你的因變量相關。這個問題在于,有可能你的一部分自變量和你的因變量的相關性非常強,太強了,是以你的其他變量看上去就沒有那麼相關了。這時候你需要試試改變你的進入方法,改成逐漸或者其他什麼的。也許可以解決問題。

但是不是所有的問題都可以用調整變量,或者改變變量進入方法可以解決的。有一些問題在于你的自變量的類型。有許多變量都是分類型的,比如你的性别,你是否抽煙,你的健康級别(不健康,一般,健康,非常健康)之類的。通常來講,錄入資料時會使用數字來表示特定含義。比如1是男,2是女,比如1,2,3,4來代表健康級别等等。一般情況下作分析是沒有問題的,但是在回歸裡邊也許不那麼适合。

尤其是對于無序資料來說。

舉個例子。季節。我們用1,2,3,4來表示四季。假設我們把這個變量當做一般變量寫到方程裡邊,那麼我們就有這麼個方程y=x+x1*a,其中x1是四季變量。那麼春季就是x+a,夏季就是x+2a,秋季就是x+3a,冬季就是x+4a,考慮一下,四季之間本來是沒有等級關系的,但是這個方程裡邊顯示的冬季遠遠會比夏季的值大,那麼真實情況是這樣嗎?很可能不是。是以就會造成方程的偏差。為了解決這個問題。我們引入虛拟變量的概念。

虛拟變量的設定方法是這樣的,如果我們有d個水準,那麼我們就設定d-1個虛拟變量,選出一個變量來做參照,虛拟變量全為0時為這個參照變量。虛拟變量有一個為1時代表某一個水準。還拿季節舉例子,我們有四個季節,那麼我們就設定三個虛拟變量,我們使000代表春季,100代表夏,010代表秋,001代表東。那麼春季就是參照變量。(實際上設定四個虛拟變量也是可以的,但是結果一摸一樣)

是以現在我們的一個代表四季的變量就變成了三個虛拟變量。我們的方程就變成了y=x+x1*a+x2*b+x3*c。那麼x就是春季的值x+x1就是夏季的值x+x2就是秋季的值x+x3就是冬季的值,是不是更準确了?

在張文彤老師的spss進階教程裡邊講解到了虛拟變量的用法。但是由于是進階教程,是以并沒有提到如何設定虛拟變量。網上很多部落格裡邊也沒有提到這個問題。但是為了完整性,我還是想寫一下吧(畢竟這個系列的文章沒有資料轉換這個内容)。線上性回歸裡邊,你需要自己設定虛拟變量。打開轉換——重新編碼為不同變量,把季節變量(或者行業,地區,或者别的什麼)選到輸入變量——輸出變量裡邊,名稱裡輸入你的新名稱,标簽要點一下,點一下更改。單擊下邊的舊值和新值,舊值裡邊輸入1,新值輸入1,點添加。然後舊值輸入2,新值輸入0,點添加,以此類推。設定好一個虛拟變量以後,設定第二個的時候,記得先把第一個從右邊的視窗傳回左邊的視窗。有點麻煩,但是在所難免嘛。

然後注意做回歸的時候,在主面闆裡邊自變量的第一張僅選擇你的虛拟變量,方法選進入。你要確定你的虛拟變量都要一塊進到方程裡嘛。然後點下一張,選擇其他的數值變量,方法可以選逐漸啊什麼的。看結果的時候前邊已經講過了,虛拟變量改變的就是截距嘛。其他的結果都和一般的多元線性回歸結果一樣的。要注意的是就算有的虛拟變量p值合格,有的不合格,你選擇變量的時候也必須把一個變量設定出的所有的虛拟變量選到一塊,要麼都要,要麼都不要。

虛拟變量主要就是這樣了。但是除了變量類型導緻的問題以外,還有一個很嚴重的問題就是多重共線性。雖然我們講,我們要少選幾個變量,我們要降維,我們要想辦法消減多重共線性。但是不可避免的,我們總是會碰到變量具有多重共線性的情況。

判斷多重共線性,主要是通過共線性診斷裡的vif值和dw檢驗。vif介于1到5時,就認為沒有多重共線性。大于10時,認為存在嚴重多重共線性。在這裡我們不讨論vif大于10的情況(不然我下篇文章讨論什麼?),我們要讨論的是另一種非常特殊的情況,vif值合格,但是dw檢驗沒有通過。這時候怎麼辦?

當然你可以假裝沒有看見dw檢驗,你繼續做分析的話。很可能别人也看不出來,但是如果你的老師就是想考考你的廣義差分法呢?

是以我們還是讨論一下廣義差分法的操作辦法。

首先你要儲存你的變量的殘差,在時間序列裡邊做滞後一期的殘差(就在主面闆裡),然後把殘差和滞後一期的殘差做回歸,記下它的斜率,在做滞後一期的自變量,因變量。建立新變量=原變量-斜率*滞後一期的變量(所有的自變量,因變量都要算新變量),然後再做回歸。

這上邊就是一次完整的廣義差分法操作過程。檢查dw,如果不合格,還需要在做一次廣義差分。一般至多做兩三次就可以了。過程有點複雜,其實用eviews做廣義差分會簡單許多。

多元線性回歸的内容已經結束了。祝大家學習愉快!