作者anovachen (囧)
看板Statistics
標題[問題] 共線性對迴歸係數的影響-實例探討
時間Tue Apr 9 01:21:46 2013
這是今天去聽某場報告聽到的問題...
有四個model,憂鬱量表分數為反應變項,
某行為是需要探討的解釋變項。
model4把所有可能的confounder都放入迴歸分析,
model3則是還沒放入某健康狀態。
在model3的年齡的迴歸係數顯著大於零,
但是在model4,年齡的迴歸係數卻顯著小於零。
統計老師宣稱這是不太可能發生的事情,
就算是共線性也只會讓顯著變不顯著。
但是,共線性真的不會造成這種從"顯著>0"變成"顯著<0"的現象嗎?
是否會顯著,除了要看迴歸係數的點估計值和零差了多少以外,
還要考慮到該迴歸係數的標準誤吧?
有沒有可能標準誤在共線性發生後增加幅度不夠大*,
但點估計值從>0變成<0?
(*某書上說共線性會讓標準誤變大?但是下列模擬數據x1的標準誤似乎沒這樣變?)
要如何從比較數學的方式來證明或否證我的論述呢?
我目前設計的一個反例長這樣:(與該生研究完全無關,只是模擬而已)
SAS程式碼:
data test;
input y x1 x2 x3;
cards;
100 0 20 -50
95 0 19 -49
99 1 22 -51
200 0 30 -60
188 1 31 -64
204 1 29 -58
250 1 60 -130
240 1 59 -125
244 1 61 -135
...(重複上列數字多次)
(這九筆資料重複七次共得63筆資料,藉此衝高樣本數,讓迴歸係數更易達到顯著)
;
run;
proc reg data=test ; model y= x1; run;
proc reg data=test ; model y= x1 x2; run;
proc reg data=test ; model y= x1 x2 x3; run;
proc reg data=test ; model y= x1 x2 x3/ selection=forward; run;
proc corr data=test; var x1 x2 x3; run;
經分析後:
Pearson 相關係數, N = 63
Prob > |r| (位於 H0 底下): Rho=0
x1 x2 x3
x1 1.00000 0.57590 -0.54105
<.0001 <.0001
x2 0.57590 1.00000 -0.99240
<.0001 <.0001
x3 -0.54105 -0.99240 1.00000
<.0001 <.0001
參數估計值
參數 標準
變數 DF 估計 誤差 t 值 Pr
> |t|
Intercept 1 131.66667 11.28602 11.67
<.0001
x1 1 72.50000 13.82250 5.25
<.0001
參數估計值
參數 標準
變數 DF 估計 誤差 t 值 Pr
> |t|
Intercept 1 62.26136 9.02900 6.90
<.0001
x1 1 10.13581 9.75699 1.04
0.3031
x2 1 3.01762 0.27189 11.10
<.0001
參數估計值
參數 標準
變數 DF 估計 誤差 t 值 Pr
> |t|
Intercept 1 86.07193 3.91508 21.98
<.0001
x1 1 -11.85460 4.16085 -2.85
0.0060
x2 1 16.70657 0.79250 21.08
<.0001
x3 1 6.38974 0.36631 17.44
<.0001
也就是說,
x1的迴歸係數從72.5變成10.14再變成-11.85。
而且這三個迴歸係數都是顯著不為零的。
(其他的迴歸診斷還沒做...待會再分析看看)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
剛看了一下殘差的圖,x1有可能會有heteroscedasticity,
但就算這樣也只是會高估標準誤而已吧?(變得更不易顯著?)
1F:→ andrew43:何不比較看看y=x1+x2和y=x1+x3說不定就明白了? 04/09 01:49
2F:→ andrew43:何況你的三個IV都有相關, 係數不穩定可說是必然的. 04/09 02:07
我故意設計會讓係數不穩定的數據,藉此否證老師的說法。
我認為共線性導致某變數迴歸係數顯著大於零變成顯著小於零是可能的。
但是那些情況下會發生這問題?
有辦法用數學方法證明嗎?
想從基本的公式:
b=(X'X)^-1X'Y
V(b)=(X'X)^-1σ^2
寫出證明...實在很難下手。
※ 編輯: anovachen 來自: 114.27.252.171 (04/10 02:01)