Jackknife 刀切法

一、簡介

Jackknife(刀切法)是有Maurice Quenouille (1949)提出的一種再抽樣方法,其原始動機是降低估計的偏差。Jackknife爲一種瑞士小折刀,很容易攜帶。通過類比, John W. Tukey (1958)在統計學中創造了這個術語,作爲一種通用的假設檢驗和置信區間計算的方法。

Jackknife類似於“Leave one out”的交叉驗證方法。令X=(X1,X2,…,Xn)爲觀測到的樣本,定義第i個Jackknife樣本爲丟掉第i個樣本後的剩餘樣本即


由此生成的Jackknife樣本集之間的差異很小,每兩個Jackknife樣本中只有兩個單個的原始樣本不同。

二、偏差的Jackknife估計

 

 
代碼如下:
function out=jackbias(theta,orig)
%Estimate the bias using the jackknife
%Theta has to be a character string containg
% a valid function name
[n,p]=size(orig);
lot=feval(theta,orig(2:n,:));
k=length(lot);
lo=zeros(n,k);
lo(1,:)=lot;
lo(n,:)=feval(theta,orig(1:(n-1),:));
for i=(2:(n-1))
   lo(i,:)=feval(theta,orig([1:(i-1),(i+1):n],:)); 
end
thetadot=mean(lo);
out=(n-1)*(thetadot-feval(theta,orig));

三、標準差的Jackknife估計



 

 
代碼如下:
function out=jackstd(theta,orig)
[n,p]=size(orig);
lot=feval(theta,orig(2:n,:));
k=length(lot);
lo=zeros(n,k);
lo(1,:)=lot;
lo(n,:)=feval(theta,orig(1:(n-1),:));
for i=(2:(n-1))
   lo(i,:)=feval(theta,orig([1:(i-1),(i+1):n],:)); 
end

thetadot=mean(lo);
out=sqrt((n-1)/n.*sum((lo-repmat(thetadot,n,[])).^2));


四、Jackknife不適合的場合

統計函數不是平滑函數:數據小的變化會帶來統計量的一個大的變化如極值、中值。如對數據X=(10,27,31,40,46,50,52,104,146)的中值得到的結果爲48,48,48,48,45,43,43,43,43,偶數個數的中值爲最中間兩個數的平均值。

五、Jackknife與Bootstrap自助法的聯繫

Efron1979年文章指出了自助法與刀切法的關係。首先,自助法通過經驗分佈函數構建了自助法世界,將不適定的估計概率分佈的問題轉化爲從給定樣本集中重採樣。第二,自助法可以解決不光滑參數的問題。遇到不光滑(Smooth)參數估計時,刀切法會失效,而自助法可以有效地給出中位數的估計。第三,將自助法估計用泰勒公式展開,可以得到刀切法是自助法方法的一階近似。第四,對於線性統計量的估計方差這個問題,刀切法或者自助法會得到同樣的結果。但在非線性統計量的方差估計問題上,刀切法嚴重依賴於統計量線性的擬合程度,所以遠不如自助法有效。


to be continued...



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章