複数の分布近似の比較
この例では、複数の確率分布オブジェクトを同一の一連の標本データにあてはめ、各分布がデータにどの程度あてはまるかを視覚的に比較する方法を示します。
手順 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')
標本データのヒストグラムに確率密度関数プロットを重ね合わせると、各種の分布がデータをどの程度近似できるのかを視覚的に比較できるようになります。ノンパラメトリックなカーネル分布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
モデル年別にさらにグループ化すると、米国で生産された車のMPG
2つのははつのなピークが存在ことことがが密度关数プロットプロットからわかりわかりわかりわかりますますますますますますますますます。。。。。。。。。。。。。。つはつはつはつはつはつはつはつはつはつはつはつは170、170 、11982です1982ですですですですですですですデータをたににににににつのつのある理由がわかり。。。