ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

パレート分布の裾を使用したノンパラメトリック分布の近似

この例では、パレート分布の裾を使用してノンパラメトリック確率分布を標本データにあてはめ、裾の分布を滑らかにする方法を示します。

手順 1. 標本データを生成する。

標準正規分布から想定される以上の外れ値を含む標本データを生成します。

rng('default')  % For reproducibility
left_tail = -exprnd(1,10,1);
right_tail = exprnd(5,10,1);
center = randn(80,1);
data = [left_tail;center;right_tail];

データには、標準正規分布から 80% の値、平均が 5 の指数分布から 10% の値、平均が –1 の指数分布から 10% の値が含まれます。データには、指数分布からの乱数が含まれます。標準正規分布と比較すると、特に上裾の指数値は外れ値になる可能性が高くなります。

手順 2. 確率分布をデータにあてはめる。

正規分布と t 分布の位置-スケール分布をデータにあてはめ、プロットして視覚的に比較します。

figure;
probplot(data);
p = fitdist(data,'tlocationscale');
h = probplot(gca,p); 
set(h,'color','r','linestyle','-');
title('Probability Plot');
legend('Normal','Data','t location-scale','Location','SE');

両方の分布は中央でよく近似しているように見えますが、正規分布と t 分布の位置-スケール分布のどちらも裾を適切に近似していません。

手順 3. 経験的分布を生成する。

より優れた近似を得るためには、ecdf を使用して、標本データに基づいた経験累積分布関数を生成します。

figure;
ecdf(data)

経験的分布は完全に近似しますが、外れ値によって裾の部分がかなり離散的になります。この分布から逆関数法を使用して作成される無作為標本には、4.33 と 9.25 付近の値などが含まれることもありますが、その中間値は含まれません。

手順 4. パレート分布の裾を使用して分布を近似させる。

paretotails を使用して、データの中央 80% に経験累積分布関数を生成し、上下の 10% に生成されたパレート分布を近似します。

pfit = paretotails(data,0.1,0.9)
pfit = 

Piecewise distribution with 3 segments
      -Inf < x < -1.24623    (0 < p < 0.1): lower tail, GPD(-0.334156,0.798745)
   -1.24623 < x < 1.48551  (0.1 < p < 0.9): interpolated empirical cdf
        1.48551 < x < Inf    (0.9 < p < 1): upper tail, GPD(1.23681,0.581868)

より優れた近似を得るため、paretotails は、標本の中央の ecdf またはカーネル分布と裾の滑らかな一般化パレート分布 (GPD) をつなぎ合わせた分布を近似します。関数 paretotailsparetotails 確率分布オブジェクトを作成します。近似に関する情報にアクセスし、paretotails クラスのメソッドを使用してさらにオブジェクトの計算を実行できます。たとえば、分布から cdf を求めたり、乱数を生成することができます。

手順 5. cdf を計算してプロットする。

近似した paretotails 分布の cdf を計算してプロットします。

x = -4:0.01:10;
plot(x,cdf(pfit,x));

paretotails cdf はデータをよく近似しますが、手順 3 で生成された ecdf よりも裾が滑らかです。

この情報は役に立ちましたか?