前面寫了leverage 槓桿的計算以及其意義
主要是爲後面的內容做一些鋪墊.Cook’s distance起源於提出這個名詞的統計學家Cook,用於刪除一個樣本後,對模型的影響。
假設有如下模型
y=Xβ+ϵ,X∈Rm×p
β^=(XTX)−1XTy⇒y^=Xβ^
X(−i),y(−i)表示從原來數據中去掉第i行數據
β(−i)^=(X(−i)TX(−i))−1X(−i)Ty⇒y^(−i)=Xβ^(−i)
e=y−y^⇒s2=(y−y^)T(y−y^)/(n−p)=n−peTe
n-p表示自由度,顯然,這個公式不適合n<=p的情況,對於高維的情況可以參考相應的擴展版。
對第i個樣本的cook距離表示如下
Di=ps2(y^(−i)−y^)T(y^(−i)−y^)=ps2(β(−i)^−β^)TXTX(β(−i)^−β^)
上式的變量的平方和,讓人很容易想起卡方分佈X2。
兩個卡方的相除又讓人想到方差齊性檢測F(p,m−p,1−α)分佈,這是Di的主要意義所在。利用了分佈的概率Di<=F(p,m−p,1−α)去估計樣本的異常情況,顯然更加科學,有技術含量。
從表面上看,如果要實現這個功能,需要藉助留一法去處理,顯然這樣做會帶來很大的運算量,使得算法的實現變得困難。藉助以下公式,使得運算簡單
β^−β^−i=1−vi(XTX)−1xi(yi−xiTβ^)
這裏,xi表示第i個樣本,即X的第i行。vi=xiT(XTX)−1xi
簡略證明如下:
我們對X做行交換,y做相應的變換,是不會影響β的估計。因此,有
X=[X(−i)xiT],y=[y(−i)yi]
由於 X=⎣⎡x1T⋯xmT⎦⎤,得到
XTX=[x1,⋯,xm]⎣⎡x1T⋯xmT⎦⎤=i=1∑mxixiT=X(−i)TX(−i)+xixiT
由於(A+UV′)−1=A−1−(A−1UV′A−1)/(1+V′A−1U)
令 A=X(−i)TX(−i)
(XTX)−1=(X(−i)TX(−i)+xixiT)−1=A−1−A−1xixiTA−1/(1+xiTA−1xi)
XTy=[X(−i)xiT]T[y(−i)yi]=X(−i)Ty(−i)+xiyi
令wi=xiT(A)−1xi
β^=(XTX)−1XTy=A−1X(−i)Ty(−i)−A−1xixiTA−1X(−i)Ty(−i)/(1+xiTA−1xi)+A−1xiyi−A−1xixiTA−1xiyi/(1+xiTA−1xi)=(I−A−1xixiT/(1+wi))β(−i)+A−1xiyi/(1+wi)
由此推得
xiTβ^=(xiT−wixiT/(1+wi))β^(−i)+wiyi/(1+wi)⇒xiTβ^=xiTβ^(−i)/(1+wi)+yi−yi/(1+wi)⇒xiTβ^−yi=(xiTβ^(−i)−yi)/(1+wi)
β^−β^(−i)=A−1xi(yi−xiTβ^(−i))/(1+wi)=A−1xi(yi−xiTβ^)
由於X(−i)TX(−i)=XTX−xixiT
(X(−i)TX(−i))−1=(XTX)−1+(XTX)−1xixiT(XTX)−1/(1−vi)
vi=xiTXTXxi,可以推得
(X(−i)TX(−i))−1xi=(XTX)−1xi+(XTX)−1xixiT(XTX)−1xi/(1−vi)=(XTX)−1xi/(1−vi)
得到
β^−β^(−i)=1−vi(XTX)−1xi(yi−xiTβ^)
代入 Di公式得到
Di=(s1−viyi−xiTβ^)2p(1−vi)vi
可以看出Di考慮了樣本i的兩部分信息,前者是學生化後的殘差,後者反應了該樣本的槓桿值