為什麼線性回歸中 要將自變數設定為非隨機變數?伍德里奇的導論好像是設為非隨機變數的 本人學渣求解釋?


謝謝 @Simon Wang 手動@。其實你說的已經很好了,避免條件期望這個概念是一個很重要的原因,不過不是唯一原因,而且伍德里奇導論裡面也講了內生性,所以可能假設自變數非隨機,跟內生性的關係也沒有那麼大。

在我看來,之所以假設自變數非隨機,是為了解決估計係數小樣本分布的一個不得不做的假定。

比如,對於一元線性回歸來說,估計係數

hat{b}=b+frac{sum_{i=1}^N(x_i-ar{x})u_i}{sum_{i=1}^N(x_i-ar{x})^2}=b+sum_{i=1}^N[w(x)cdot u_i]

其中 w(x)=frac{(x_i-ar{x})}{sum_{i=1}^N (x_i-ar{x})^2}

進而,如果假設 u_i sim N(0,sigma^2) ,那麼我們就可以得到 hat{b}|x 是一個正態分布,進而,除以其標準誤,就是t分布了。

那是不是說 hat{b} 就是正態分布了呢?恐怕是不行的。因為上面的結論是給定x的,如果x是隨機的,那麼b的估計服從正態分布的結論是不成立的。

所以,這裡需要假設x是非隨機的,上面的正態分布結論才是對的。

當然,上面的問題只存在於小樣本特性中,大樣本理論裡面是不需要假設 u_i 的分布,也不需要假設 x_i 是不是隨機的,因為我們的大數定律和中心極限定理在大樣本條件下工作了,所以 hat{b} 大樣本條件下的確就是正態分布。

不過,對於 frac{hat{b}}{s.e.(hat{b})}|x sim t ,由於這個t分布是pivotal的,所以相當於不管x取什麼值,t分布都不會變,所以即使不給定 x ,上式仍然是t分布,結論還是靠譜的。

但是對於 hat{b} 的分布就不是這樣了。由於其分布不是pivotal的,所以其分布是跟x有關係的,給定不同的x,其分布都不一樣,所以最後的結果是,其分布不是正態分布。

我們可以用以下模擬驗證以下上面的結論:

cap program drop random_b_reg
program define random_b_reg, rclass
version 12
syntax [,obs(integer 4) random(real 0)]
drop _all
set obs `obs"
tempvar x y u
gen `x"=_n+(rnormal()^2-1)/sqrt(2)*`random"
gen `u"=rnormal()
gen `y"=`x"+`u"
reg `y" `x"
return scalar b=(_b[`x"]-1)
return scalar std_b=(_b[`x"]-1)/_se[`x"]
end

simulate b=r(b) std_b=r(std_b), reps(10000): random_b_reg, random(1)

// dist. of b
quietly: su b
replace b=(b-r(mean))/r(sd)
sort b
gen b_empirical=_n/_N
gen dist_normal=normal(b)
label variable dist_normal "Normal Distribution"
twoway (line b_empirical b)/*
*/ (line dist_normal b) /*
*/, graphr(fcolor(white) color(white)) xtitle("") /*
*/saving(reg_small_b_random, replace)

// dist. of standarized b
sort std_b
gen std_b_empirical=_n/_N
gen t_den=t(2,std_b)
label variable t_den "t(2) Distribution"
twoway (line std_b_empirical std_b)/*
*/ (line t_den std_b) /*
*/, graphr(fcolor(white) color(white)) xtitle("") /*
*/saving(reg_small_stdb_random, replace)

simulate b=r(b) std_b=r(std_b), reps(10000): random_b_reg, random(0)
// dist. of b
quietly: su b
replace b=(b-r(mean))/r(sd)
sort b
gen b_empirical=_n/_N
gen dist_normal=normal(b)
label variable dist_normal "Normal Distribution"
twoway (line b_empirical b)/*
*/ (line dist_normal b) /*
*/, graphr(fcolor(white) color(white)) xtitle("") /*
*/saving(reg_small_b_fixed, replace)

// dist. of standarized b
sort std_b
gen std_b_empirical=_n/_N
gen t_den=t(2,std_b)
label variable t_den "t(2) Distribution"
twoway (line std_b_empirical std_b)/*
*/ (line t_den std_b) /*
*/, graphr(fcolor(white) color(white)) xtitle("") /*
*/saving(reg_small_stdb_fixed, replace)

graph combine reg_small_b_random.gph reg_small_stdb_random.gph/*
*/ reg_small_b_fixed.gph reg_small_stdb_fixed.gph,/*
*/ graphr(fcolor(white) color(white)) col(2)
graph export reg_small.png, replace

結果:

上面兩張是隨機的x,下面兩張是固定的x,左邊一列是b的,右邊一列是b/se的。紅色的是理論上的分布,左邊一列理論上應該是正態,右邊一列理論上應該是t分布。可以看到,除了左上角的有出入外,其他三個都幾乎是完美擬合。其實左上角的兩個分布是不一樣的,比如你們可以自己把random()的數字改大一點試試。

總結一下:

  1. 大樣本條件下,b服從正態,b/se服從正態
  2. 小樣本、x固定的條件下,b服從正態,b/se服從t
  3. 小樣本、x隨機的條件下,b不服從正態也不服從t,b/se服從t

因而為了方便說明b的小樣本分布,假設x是固定的是必須的,否則我們也不知道b是什麼分布。這也就是為什麼我們做假設檢驗之類的時候,必須用pivotal的統計量。


這是因為如果自變數 X 「因果導致」(cause)了 Y的話(注意這個因果導致不是你理解的因果關係,而是模型係數是不是獨立於X的分布,下面我會說到這個因果導致怎麼定義),在擬合模型時可以不考慮X的分布,只需要考慮Y|X這樣的條件分布,此時X就是等價於非隨機的。

一般來說,統計學研究是在得到 (x,y) 的數據之後探索它們的joint distribution f(x,y) 像什麼這樣的問題。這樣的joint distribution可以用Bayes Law 分解。

令x是自變數,y是因變數,b是你關心的未知係數,最一般的情況就是這三者都是隨機變數,那麼根據Bayes law, int_{}^{}f(y|x,b)f(x|b)f(b)db=f(x,y)。其中 f() 是概率密度。

x 因果導致了y的定義是f(x|b)=f(x) 。如果x因果導致了y,關注 f(x,y) 的joint distribution的問題,就轉化成了固定住x, 只關注 f(x,y) 作為y的函數,因為:

int_{}^{}f(y|x,b)f(x|b)f(b)db=f(x)int_{}^{}f(y|x,b)f(b)db ,此時你只用研究 int_{}^{}f(y|x,b)f(b)db 就行了,因為f(x)對於joint distribution f(x,y)的影響是呈正比的,不影響你怎麼去估計係數的分布。這時候x其實就等價於一個非隨機變數。

進一步的,頻率學派是認為 b 不是隨機的,也就是說 b=b_0 那麼這個問題轉化成了關注 int_{}^{}f(y|x,b)f(b)db=f(y|x,b_0)

而OLS不關注 f(y|x,b_0) 作為y的函數樣子是什麼樣的,只關注這個條件分布的某個「特徵」,也就是這個分布的期望 Ey|x,b_0=int f(y|x,b_0)dy=b_0x

總結一下,從最一般的研究joint distribution到OLS模型,我們做了三次簡(偷)化(懶)。

1,通過假設 x 「因果導致 y」,從而可以等價認為x 非隨機。

2,頻率學派認為係數不是隨機的,從而問題轉化為只研究y 的條件分布 on (x,b_0)

3,OLS只關注這個條件分布的期望的函數形式。並且假設這個函數是線性的。


沒關係,你也可以考慮X,Y是隨機變數時候的情形。既然是隨機變數,那麼它們就應該有一個聯合概率分布,用mle也可以求出來。比如這個最簡單的一元回歸:  y=eta_{0} +eta_{1}x+epsilon , (x,y) 有一個聯合分布,不妨假設服從正太 N(mu_{x},mu_{y},sigma_{x}^{2},sigma_{y}^{2},
ho) ,那麼給定 X=x 時y的條件分布是一維正太分布,其中條件均值為 E(Y|X=x)=eta_{0}+eta_{1}x ,條件方差為 Var(y|X=x)=sigma_{y,x}^{2}=sigma_{y}^{2}(1-
ho^{2}) ,其中 eta_{0}=mu_{y}-mu_{x}eta_{1}eta_{1}=frac{sigma_{y}}{sigma_{x}}
ho

那麼此時估計參數就轉化為估計已知條件分布 y|X 下的參數估計問題,用MLE求出的結果與X,Y非隨機時候的結果一樣: b_{0}=ar{y}-b_{1}ar{x}b_{1}=frac{SXY}{SXX}

相關係數 
ho=frac{E(y-mu_{y})(x-mu_{x})}{sigma_{x}sigma_{y}}可以用

frac{SXY}{sqrt{SXXcdot SYY}}=b_{1}sqrt{frac{SXX}{SYY}} 來估計,恰好 b_{1}^{2}frac{SXX}{SYY}=R^{2},所以用X,Y固定非隨機回歸時候的R^2也能衡量隨機時的模型擬合。

所以隨機、非隨機在如上模型設定下估計結果是一樣的,中間省略了部分推導,自己去看

C.R.Rao,H.outenberg,Shalabh,C.Heumann. Linear Models and Generalizations: Least Squares and Alternatives[M].Springer, 30-31.吧


非隨機變數非常省事,這樣就不用讓你們接觸條件期望的相關概念了,但是一般來說,解釋變數是被看做是隨機變數的。一個最可能接觸到為什麼解釋變數被看做非隨機變數是有必要的現象是內生性問題,如果解釋變數是非隨機變數,那就不存在內生性問題了,但是內生性問題會影響參數估計的一致性。小碩一枚手動幫你 @慧航


不知道你看的哪一版,我看的第五版已經沒有非隨機的假定了,每次都是說conditional on x,也就是相當於固定x

對於非隨機設定的問題,古扎拉蒂有解釋(而國內李子奈的教材雖然採用了這個假設,卻對原因沒有提及),見下圖,就算X是非隨機的,內生性也是不一定能被排除的,看假設3就可以知道u還是可以隨X變化,所以指標i不能省略


一般的假定是解釋變數和隨機誤差不相關即外生性假定。特殊的不相關就是確定的解釋變數(非隨機),這樣設定便於理解和處理。


推薦閱讀:

如何通俗地解釋多重比較謬誤(Familywise error rate)?
國內外經濟學研究差距有多大?在哪一方面?為什麼會存在差距?

TAG:數學 | 統計學 | 計量經濟學 |