1

ランダムに分布しておらず、右に大きく歪んでいる一連のデータの信頼区間を作成しようとしています。サーフィンをしているときに、(私のデータの) 97.5% パーセンタイルを上限 CL に使用し、2.5% パーセンタイルを下限 CL に使用する、かなり失礼な方法を発見しました。残念ながら、もっと洗練された方法が必要です!

次に、bootstrap、正確には MATLAB bootci 関数を発見しましたが、それを適切に使用する方法を理解するのに苦労しています。

それMが私のデータ (19x100) を含む私のマトリックスであるとしましょう。

Mean = mean(M,2);
StdDev = sqrt(var(M'))';

bootci を使用して、ベクトルのすべての行の非対称CIを計算するにはどうすればよいですか?Mean

注: 以前、私はこの非常に間違った方法で CI を計算していました:Mean +/- 2 * StdDev残念なことに!

4

1 に答える 1

1

100x19データセットがあるとしましょう。各列の分布は異なります。対数正規分布を選択して、右に歪むようにします。

means  = repmat(log(1:19), 100, 1);
stdevs = ones(100, 19);
X = lognrnd(means, stdevs);

は同じ分布からのものであり、は別々の観測値であることに注意してください。MATLAB のほとんどの関数は既定で行を操作するため、データをこのように保持することが常に望ましいです。

関数を使用して、平均のブートストラップ信頼区間を計算できbootciます。

ci = bootci(1000, @mean, X);

これは、データの 1000 回のリサンプリングを行い、各リサンプリングの平均を計算してから、2.5% と 97.5% の分位数を取得します。平均に関する非対称信頼区間であることを示すために、各列の平均と信頼区間をプロットできます。

plot(mean(X), 'r')
hold on
plot(ci')

ここに画像の説明を入力

于 2013-10-30T15:24:37.897 に答える