Main Content

jackknife

ジャックナイフ サンプリング

構文

jackstat = jackknife(jackfun,X)
jackstat = jackknife(jackfun,X,Y,...)
jackstat = jackknife(jackfun,...,'Options',option)

説明

jackstat = jackknife(jackfun,X) は、np 列のデータ配列 X からジャックナイフ データの標本を取り出し、関数 jackfun を使用して各標本に対する統計値を計算し、行列 jackstat に結果を返します。関数 jackknife では、X の各行は 1 つのデータ標本と認識されるため、n 個のデータ標本が存在します。jackstatn 行のそれぞれには、jackfun をジャックナイフの 1 つの標本に適用した結果が含まれています。jackfun は、@ で指定した関数ハンドルです。jackstat の行 i には、i 番目の行が省略された X で構成された標本の結果が含まれています。

s = x;
s(i,:) = [];
jackstat(i,:) = jackfun(s);
jackfun が行列または配列を返す場合、この出力は jackstat に保存するために行ベクトルに変換されます。X が行ベクトルの場合、列ベクトルに変換されます。

jackstat = jackknife(jackfun,X,Y,...) は、jackfun への入力として指定される追加の引数を受け取ります。これらの引数は、スカラー、列ベクトル、または行列です。jackknife は、非スカラー データ引数の行からの復元抽出によりジャックナイフの各標本を作成します (これらの行数は同じでなければなりません)。スカラー データは、変更されていない jackfun に渡されます。非スカラー引数の行数は同じでなければなりません。また、ジャックナイフの各標本は、これらの引数から同じ行を省略します。

jackstat = jackknife(jackfun,...,'Options',option) には、Parallel Computing Toolbox™ が使用できる場合、ジャックナイフ反復を並列実行するためのオプションがあります。'Options'を、関数 statset を使用して作成した構造体として設定します。jackknife は、この構造体で以下のフィールドを使用します。

'UseParallel'

true の場合、ジャックナイフ反復の計算に複数のプロセッサを使用します。Parallel Computing Toolbox がインストールされていない場合、計算は逐次モードで行われます。既定の設定は false (逐次計算) です。

jackknife を使用してベクトル y から取り出された無作為標本の MLE 分散推定器のバイアスを推定します。バイアスには、この命題内に既知の式があるため、jackknife 値をこの式と比較できます。

sigma = 5;
y = normrnd(0,sigma,100,1);
m = jackknife(@var,y,1);
n = length(y);
bias = -sigma^2/n % known bias formula
jbias = (n-1)*(mean(m)-var(y,1)) % jackknife bias estimate

bias =
   -0.2500

jbias =
   -0.3378

拡張機能

バージョン履歴

R2006a で導入