Main Content

複数の分布近似の比較

この例では、複数の確率分布オブジェクトを同一の一連の標本データにあてはめ、各分布がデータにどの程度あてはまるかを視覚的に比較する方法を示します。

手順 1. 標本データを読み込む。

标本データをます。

load汽车舞

このデータには、さまざまな車種およびモデルのガロンあたりの走行マイル数 (MPG) の測定値が格納され、生産国 (起源)、モデル年 (model_year),その车両のによってグループされてい。。

手順 2. categorical 配列を作成する。

起源を直言配列に変換し,標本データからイタリア車を削除します。イタリア車は 1 台しかないので、fitdistではカーネルをしてこのに分布あてことはできできん。

起源= categorical(cellstr(Origin)); MPG2 = MPG(Origin~='Italy');起源2 = Origin(Origin~='Italy');起源2 = removecats(Origin2,'Italy');

3. 3.复数のをグループに近似させる。

fitdistを使用し、ワイブル分布、正規分布、ロジスティック分布およびカーネル分布をMPGデータの各生産国グループに近似します。

[WeiByOrig,Country] = fitdist(MPG2,'weibull','by',Origin2); [NormByOrig,Country] = fitdist(MPG2,'normal','by',Origin2); [LogByOrig,Country] = fitdist(MPG2,'logistic','by',Origin2); [KerByOrig,Country] = fitdist(MPG2,'核心','by',Origin2);
WeiByOrig
weibyorig =1×5 cell arrayColumns 1 through 2 {1x1 prob.WeibullDistribution} {1x1 prob.WeibullDistribution} Columns 3 through 4 {1x1 prob.WeibullDistribution} {1x1 prob.WeibullDistribution} Column 5 {1x1 prob.WeibullDistribution}
Country
Country =5x1 cell{'France' } {'Germany'} {'Japan' } {'Sweden' } {'USA' }

各国のグループに 4 つの分布オブジェクトが関連付けられました。たとえば、cell 配列WeiByOrigには、標本データに示される各国に 1 つずつ、5 つのワイブル分布オブジェクトが含まれます。同様に、cell 配列 NormByOrigには 5 つの正規分布オブジェクトが含まれ、他も同様になります。各オブジェクトは、データ、分布およびパラメーターについての情報を保持するプロパティを含んでいます。配列Countryは、分布オブジェクトが cell 配列に格納されるのと同じ順番で各グループの生産国をリストします。

手順 4. 各分布の pdf を計算する。

米国の 4 つの確率分布オブジェクトを抽出し、各分布の pdf を計算します。手順 3 に示すように、米国は各 cell 配列の 5 番目の位置になります。

WeiUSA = WeiByOrig{5}; NormUSA = NormByOrig{5}; LogUSA = LogByOrig{5}; KerUSA = KerByOrig{5}; x = 0:1:50; pdf_Wei = pdf(WeiUSA,x); pdf_Norm = pdf(NormUSA,x); pdf_Log = pdf(LogUSA,x); pdf_Ker = pdf(KerUSA,x);

手順 5. 各分布の pdf をプロットする。

標本データのヒストグラムに重ね合わせ、米国のデータにあてはめる各分布の pdf をプロットします。見やすいように、ヒストグラムを正規化します。

米国の標本データのヒストグラムを作成します。

data = mpg(origin2 ===='USA');图直方图(数据,10,'Normalization','pdf','FaceColor',[1,0.8,0]);

あてはめた各分布の確率密度関数をプロットします。

line(x,pdf_Wei,'linestyle','-','Color','r') line(x,pdf_Norm,'linestyle','-.','Color','b') line(x,pdf_Log,'linestyle','--','Color','g')线(x,pdf_ker,'linestyle',':','Color','k') legend('数据','weibull','Normal','Logistic','Kernel','地点','Best') title('MPG for Cars from USA')xlabel('MPG')

Figure contains an axes object. The axes object with title MPG for Cars from USA contains 5 objects of type histogram, line. These objects represent Data, Weibull, Normal, Logistic, Kernel.

標本データのヒストグラムに確率密度関数プロットを重ね合わせると、各種の分布がデータをどの程度近似できるのかを視覚的に比較できるようになります。ノンパラメトリックなカーネル分布KerUSAのみが、元のデータの 2 つの最頻値をほぼ明確にしています。

手順 6. 米国データを年別にさらにグループ化する。

手順 5 で明確になった 2 つの最頻値を調査するには、MPGデータを生産国 (起源) とモデル年 (model_year) の両方でグループ化し、fitdistを使用してカーネル分布を各グループに近似します。

[KerByYearOrig,Names] = fitdist(MPG,'Kernel','By',{Origin Model_year});

生産国とモデル年の固有の各組み合わせには、カーネル分布オブジェクトが関連付けられました。

Names
Names =14x1 cell{'France...' } {'France...' } {'Germany...'} {'Germany...'} {'Germany...'} {'Italy...' } {'Japan...' } {'Japan...' } {'Japan...' } {'Sweden...' } {'Sweden...' } {'USA...' } {'USA...' } {'USA...' }

米国の各モデル年について 3 つの確率分布をプロットします。これらは、cell 配列KerByYearOrigの 12、13 および 14 の位置にあります。

fori = 12 : 14 plot(x,pdf(KerByYearOrig{i},x))endlegend('1970','1976','1982') title('MPG in USA Cars by Model Year')xlabel('MPG') 抓住off

Figure contains an axes object. The axes object with title MPG in USA Cars by Model Year contains 3 objects of type line. These objects represent 1970, 1976, 1982.

モデル年別にさらにグループ化すると、米国で生産された車のMPG2つのははつのなピークが存在ことことがが密度关数プロットプロットからわかりわかりわかりわかりますますますますますますますますます。。。。。。。。。。。。。。つはつはつはつはつはつはつはつはつはつはつはつは170、170 、11982です1982ですですですですですですですデータをたににににににつのピークある理由がわかり。。。

参考

||

関連するトピック