我是一隻正在迭代的分析獅天天。
最近看了B站UP主好好玩量化的視頻《回答沈逸老師,新冠疫情下越民主死越多嗎?》,用到的分析方法就是線性回歸,決定猛學習一下,再來評判視頻裡的結論。
圖片來源:B站視頻截圖
提前預習
定距、定序、定類
線性回歸方程
復相關與決定係數
偏相關係數、標準化偏相關係數
殘差
SPSS操作
01 線性回歸的應用場景
線性回歸,首先應用於定距變量之間,本質上是分析一個因變量和一組自變量之間的相關關係,既可以解釋,也可以做預測。
沈逸老師提出的,新冠疫情下越民主死越多嗎?就是一個用線性回歸解釋相關性的問題。
再舉幾個商業應用的簡單例子:
1、根據投資規模、員工數量,對生產規模進行預測;
2、探索潮牌店的收入,與人均收入水平、年輕人數量的關係;
3、價格、促銷、季節因素等對銷量的影響;
……
02 重要!線性回歸的適用條件
【案例】今天用到的是一個分析交通運輸需求的數據集。在這個案例中,需要預測的是因變量Y「每周乘客數量」,自變量分別是X1至X4。
國內的小夥伴,可以直接在bing國際版 or 搜狗英文裡,搜索第一個變量的名稱「Number of weekly riders」,就可以找到很多提供該數據集的網址,自行下載就好了。
【適用條件】
根據我總結的學SPSS的黃金三步法,區分場景-適用的統計學條件-操作及報告解讀
對於回歸分析,適用條件這一part特別重要,一定要拿小本本記下來!
1、最重要!自變量與因變量之間是線性關係,嚴格要求,如果不滿足,可以做非線性回歸,不要硬上;
2、樣本量要足夠,經驗值是希望分析的自變量數量的20倍。比如根據理論,有5個變量是必須進入模型的,還有6個是可以考慮的,即使最後用不上,希望分析的自變量數量也是11個,20倍就是最少220個樣本;案例是一個練習用的數據集,有4個自變量,但只有27個樣本量,湊合用;
3、因變量和自變量都是定距變量。有時候,定序自變量會作為定距變量處理,或者和定類變量一樣,變換為虛擬變量(啞變量)放入模型;
4、殘差的獨立性、正態性和方差齊性,殘差是估計值與真實測量值之間的差,所以要在構建模型後,才能計算殘差,再分析、調整;如果只是做相關關係的探索,不做預測,這一條可以放寬;
5、強影響點的診斷;
6、自變量的多重共線性問題,即自變量之間有較強的相關性,這條很常見,要根據理論框架和嚴重程度做取捨。
03 建模的流程
回歸分析的SPSS操作特別簡單,但相應的準備、診斷、調整流程比較複雜,我先按教科書上的標準流程分享,日後有機會多應用,再分享經驗。
3.1線性關係的考察
方法:每一個自變量與因變量的散點圖
案例數據裡有四個自變量X1-X4,與因變量的關係基本都滿足線性關係,存在的問題主要是個別數據離擬合曲線有點遠,可能是強影響點,建模時會進一步考察。
X1
X2
X3
X4
3.2因變量的分布觀察
前面提到的適用條件裡,有一條是因變量殘差的正態性,在建模前,也應該先看一下因變量的分布,經驗告訴我們,非常偏態的數據,殘差的正態性也不會太好。
3.3自變量的篩選
下面就進入建模流程了,把哪些自變量放到模型裡呢?
在問卷調研中,數據的採集都是有「預謀」的,也就是說從在設計問卷時,就需要考慮要做哪種分析,哪些問題會作為自變量放進模型裡。
「預謀」的根據首先是已有模型,模型就是分析問題的方法,很多國外的調研公司之所以牛,模型的積累和應用是重要原因。年輕人,有機會還是要進大公司,多見識些模型。
其次,可以根據理論的操作化探索新模型,比如社會學裡講財富、權力和聲望是社會分層的三個關鍵維度,在問卷調研裡,就可以轉換為收入、職業、教育程度、社會影響力等指標建模。所以,數據分析人員也要加強理論學習,並參考一些學術模型。
最後,才是根據自變量的重要性,做篩選和調整。
SPSS裡有自動篩選的功能,即「步進」的方法(或者稱逐步回歸法),把變量放入模型,但有30%+概率不是最優方程,而且也面臨如何解釋模型的問題,所以教程上還是建議手工選擇自變量。
沒有找到這個案例的背景說明,我個人理解,應該是預測公共運輸的乘客數量(如果不對,歡迎指教)
案例數據集裡放了4個自變量,來探索和因變量 Number of weekly riders的關係。
X1→Price per week
X2→Population of city
X3→Monthly income of riders
X4→Average parking rates per month
04 建模後的解讀、診斷和調整
根據殘差分析、強影響點、多重共線性的診斷和調整,才是建模的核心。下面就進入重頭戲的學習。
4.1模型的解讀
紅框裡的方法先用輸入法,將自變量和因變量都選進來即可
第一步,看決定係數。
R平方的意思是因變量的變異能夠通過回歸關係被自變量解釋的比例。
決定係數的大小決定了模型的好壞。如何判斷R平方的大小呢?很不幸,沒有統一的標準,而且各行業的差距很大,醫學上,99%都不夠,做股市分析20-30%就很牛了。
案例數據集的結果,R方達到94.5%,是個不錯的結果。
第二步,看模型的假設檢驗結果。
方差分析的H0假設是,所有X的偏相關係數都是0,這裡的結果是拒絕零假設,即至少一個係數不為0。
第三步,做自變量重要性的比較。
看下圖B值那一列,是方程裡各自變量的係數,稱為偏相關係數,即控制了其他自變量,與因變量的相關關係。因為有量綱的影響,接下來會用標準化後的偏相關係數beta,來衡量自變量的重要性。
在這個案例中,X1(Price per week)的Beta值最高,其次是X4(Average parking rates per month),最後是X3和X2。
看每一行後面的假設檢驗,X2和X3的顯著性值分別為0.456和0.432,>0.05,即接受H0,係數=0,不相關。所以,調整模型的時候可以考慮排除這兩個自變量。
結合實際場景的解讀,影響乘客數量最重要的因素是票價,負相關,票價越高,乘車人數越低。然後是替代方案的成本,即停車費,正相關,停車費越高,乘車人數越高。聽起來也比較合理。
4.2殘差分析
如果只是做相關關係的探索,不做預測,殘差檢驗可以放寬。反之,則需要嚴格的殘差檢驗。
第一步,獨立性。
在定義自變量、因變量的界面,統計選項,勾選Durbin-Watson檢驗。
Durbin-Watson檢驗值在0-4之間,經驗值在1-3之間滿足獨立性,超過這個區間就不太靠譜了。案例結果顯示,數值為1.438,滿足獨立性,符合建模需求。
第二步,正態性。
根據圖形來考察。圖形選項-勾選標準化的直方圖和P-P圖。
先看直方圖,形態比較符合,數值分布在3和-3之間。
再看P-P圖 ,如果滿足正態性,實測累計概率與預期累計概率應該一致,即散點應該分布在主對角線上。考慮到樣本量比較小,案例結果在可接受範圍,理想情況應該是貼合一些。
第三步,方差齊性
還在圖選項裡,畫一張X為標準化預測值,Y為標準化殘差的散點圖。
雙擊圖表,添加一條坐標為0的參考線。
教科書上給出了三張殘差散點圖的常見情況。
案例的數據基本符合標準圖,散點在0附近上下均勻分布,不超過正負3,也沒有明顯的分布規律。其中不超過正負3就是強影響點的考察。
書中的第二張圖屬於方差不齊,即隨著預測值越來越大,方差越來越大,需要做變量變換(超綱啦,以後慢慢學啊)
第三張圖,說明回歸方程裡缺少高次項,比如平方項。即本來是曲線方程,但現在做成了線性方程,所以隱藏的曲線關係就體現在殘差裡了(因為殘差是預測值和真實值之間的差)
4.3強影響點
在前面的殘差散點圖觀察中,提到超過正負3的點,就是非常可疑強影響點。可以在統計選項-個案診斷中設置,然後輸出案例號。
對強影響點的一般處理方法有幾種:
1、先檢查數據是否錄入錯誤;
2、如果有合理的理由,證明樣本沒有代表性,可以直接剔除不放入模型。樣本越大,刪除的影響越小。
3、把這個樣本的數據放入和拿出模型,看一下對模型的影響大不大,如果不大也就無所謂了。
4、用更穩健的回歸分析方法,降低強影響點的影響。(這條超綱啦,以後慢慢學啊)
4.4多重共線性
還是在統計選項裡,為了讓大家一步步理解,所以把殘差、強影響點和多重共線性分開講了,實戰中可同時在統計選項裡設置,然後一起看結果。
容差的含義,用案例的情況舉例,假設X1為因變量,X2-X4為自變量的回歸方程的決定係數為R1平方。容差=1-R12。那麼,容差越小,說明多重共線性越嚴重,所以經驗值要大於0.1。
VIF是容差的倒數,經驗值是<< span="">10。
接著看共線性診斷的表
特徵根(翻譯成了特徵值):原理是對模型的自變量和常數項提取主成分,如果前面的特徵根比較高,後面趨於0,則提示多重共線性比較嚴重。
條件指數(翻譯成了條件指標):如果多個指數值>30,提示有問題。
後面的方差比例,如果某個主成分解釋其他各項的比例較高,提示有問題。
綜合以上標準,本案例數據的多重共線性是比較嚴重的。
可以用逐步回歸(stepwisse,翻譯成步進)的方法自動篩選自變量,將解釋力較小的自變量排除在外。在這個案例中,會自動把X2-X4都排除了,只保留了X1。即只有票價的高低對乘客數量的多少有很大影響。
多重共線性的問題很普遍,在實際數據的診斷和和理論框架之間,應該更聽從理論的召喚,畢竟模型要可解釋。
最後,來回答沈逸老師的問題,新冠疫情下越民主死越多嗎?
根據UP好好玩量化的回歸模型,R平方太小了,只有0.182(雖然做成這樣已經很牛了),所以我覺得這個結論不能成立。
不過這位UP主找數據,做分析的思路還是很贊的,大家可以找來康康~
圖片來源:B站視頻截圖
參考書
張文彤《SPSS20.0統計分析高級教程第2版》
李沛良 《社會研究的統計應用》
軟體版本 | SPSS 25.0
題圖 | Pexels