一、简介
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...
时间: 2024-10-05 21:16:30