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...



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