Main Content

probplot

説明

probplot(y) は、y 内のデータの分布を正規分布と比較する正規確率プロットを作成します。

probplot は、マーカー記号を使用して y 内の各データ点をプロットし、理論的な分布を表す基準線を描画します。標本データが正規分布に従っている場合、データ点は基準線に沿って現れます。基準線は、データの 1 番目と 3 番目の四分位数を結んで、データの端まで伸びます。正規分布ではない場合、データ プロットが曲がります。

probplot(y,cens) は、cens 内の打ち切りデータを使用して確率プロットを作成します。

probplot(y,cens,freq) は、cens 内の打ち切りデータと freq 内の度数データを使用して確率プロットを作成します。

probplot(dist,___) は、前の構文のいずれかの入力引数を使用して、dist で指定された分布の確率プロットを作成します。

probplot(ax,___) は、前の構文のいずれかの入力引数を使用して、ax で指定された既存の確率プロットの座標軸に確率プロットを追加します。

probplot(ax,pd) は、ax で指定された既存の確率プロットの座標軸に近似直線を追加して、確率分布 pd を表します。

probplot(ax,fun,params) は、ax で指定された既存の確率プロットの座標軸に近似直線を追加して、パラメーター params をもつ関数 fun を表します。

probplot(___,'noref') は、プロットの基準線を省略します。

h = probplot(___) は、プロットしたラインに対応するグラフィックス ハンドルを返します。

すべて折りたたむ

標本データを生成し、確率プロットを作成します。

標本データを生成します。標本 x1 には、スケール パラメーターが A = 3 で、形状パラメーターが B = 3 のワイブル分布からの 500 個の乱数が含まれています。標本 x2 には、スケール パラメーターが B = 3 のレイリー分布からの 500 個の乱数が含まれています。

rng('default');  % For reproducibility
x1 = wblrnd(3,3,[500,1]);
x2 = raylrnd(3,[500,1]);

x1 および x2 のデータが、ワイブル分布から派生しているかどうかを評価する確率プロットを作成します。

figure
probplot('weibull',[x1 x2])
legend('Weibull Sample','Rayleigh Sample','Location','best')

Figure contains an axes object. The axes object with title Probability plot for Weibull distribution, xlabel Data, ylabel Probability contains 4 objects of type functionline, line. One or more of the lines displays its values using only markers These objects represent Weibull Sample, Rayleigh Sample.

確率プロットには、x1 データがワイブル分布から派生しており、x2 データはワイブル分布から派生していないことが示されます。

または、wblplot を使用してワイブル確率プロットを作成できます。

確率プロットと追加の近似直線を同じ Figure に作成します。

裾に約 20% の外れ値が含まれる標本データを生成します。標本データの左側の裾には、パラメーターが mu = 1 である指数分布から無作為に生成された 10 個の値が含まれます。右側の裾には、パラメーターが mu = 5 の指数分布からランダムに生成された 10 個の値が含まれます。標本データの中心には、標準の正規分布から無作為に生成された 80 個の値が含まれます。

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];

標本データが正規分布から派生しているかどうかを評価するため、確率プロットを作成します。

probplot(data)

同じ Figure に t 位置-スケール曲線をプロットし、data と比較します。

p = mle(data,'distribution','tLocationScale');
t = @(data,mu,sig,df)cdf('tLocationScale',data,mu,sig,df);
h = probplot(gca,t,p);
h.Color = 'r';
h.LineStyle = '-';
title('{\bf Probability Plot}')
legend('Normal','Data','t','Location','NW')

Figure contains an axes object. The axes object with title blank Probability blank Plot, xlabel Data, ylabel Probability contains 3 objects of type functionline, line. One or more of the lines displays its values using only markers These objects represent Normal, Data, t.

このプロットは、外れ値のため正規分布の直線も t 位置-スケール曲線も裾を十分には近似していないことを示しています。

半正規分布確率プロットを作成して、化学製品製造工程で流量に影響を与える可能性がある因子を調べる実験における有意な効果を特定します。4 つの因子は、反応物 ABC および D です。各因子は、2 つのレベル (高濃度と低濃度) で存在します。この実験では、各因子レベルにおける反復は 1 つだけです。

標本データを読み込みます。

load flowrate

テーブル flowrate の最初の 4 列には、因子およびその交互作用の計画行列が格納されています。計画行列は、高因子レベルには 1、低因子レベルには -1 を使用して符号化されています。flowrate の 5 列目には、測定された流量が格納されています。

rate を応答変数として使用して、線形回帰モデルを当てはめます。予測子変数 ABCD およびこれらの交互作用項をすべて使用します。

mdl = fitlm(flowrate,'rate ~ A*B*C*D');

因子効果の推定値の絶対値を計算して格納します。因子効果の推定値を取得するため、モデル近似時に取得した係数推定値に 2 を乗算します。回帰係数は x の 1 単位の変化が y の平均に与える影響を測るため、このステップが必要です。ただし、計画行列では -1 と 1 で符号化しているので、効果の推定値は x の 2 単位の変化を測ります。ベースライン尺度は除外します。mdl 内の因子の順序は元の計画行列内の順序と異なる可能性があることに注意してください。

effects = abs(mdl.Coefficients{2:end,1}*2);

ベースラインを除く効果の推定値の絶対値を使用して、半正規確率プロットを作成します。

figure
h = probplot('halfnormal',effects);

Figure contains an axes object. The axes object with title Probability plot for Half Normal distribution, xlabel Data, ylabel Probability contains 2 objects of type functionline, line. One or more of the lines displays its values using only markers

点にラベルを付け、プロットの書式を設定します。まず、昇順で並べ替えられた効果の推定値のインデックス値を返します。次に、これらのインデックス値を使用して、グラフィックス ハンドルに格納されている確率値 (h(1).YData) を並べ替えます。

[b,i] = sort(effects);
prob(i) = h(1).YData;

各点でテキスト ラベルをプロットに追加します。各点で、x 値は効果の推定値、y 値は対応する確率です。

text(effects,prob,mdl.CoefficientNames(2:end),'FontSize',8,...
    'VerticalAlignment','top')
h(1).Color = 'r';

Figure contains an axes object. The axes object with title Probability plot for Half Normal distribution, xlabel Data, ylabel Probability contains 17 objects of type functionline, line, text. One or more of the lines displays its values using only markers

基準線から離れた位置にある点は、有意な効果を表します。

シミュレーションによる度数データを生成します。

y = 1:10;
freq = [2 4 6 7 9 8 7 7 6 5];

度数データを使用して正規確率プロットを作成します。

probplot(y,[],freq)

Figure contains an axes object. The axes object with title Probability plot for Normal distribution, xlabel Data, ylabel Probability contains 2 objects of type functionline, line. One or more of the lines displays its values using only markers

この正規確率プロットは、データが正規分布になっていないことを示しています。

入力引数

すべて折りたたむ

標本データ。数値ベクトルまたは数値行列を指定します。probplot は、'x''o' などのマーカー記号を使用して y 内の各値を表示します。y が行列の場合、probploty の各列について別々のラインを表示します。

すべての分布がすべてのデータ セットに適しているわけではありません。データ セットが特定の分布に適していない場合、probplot でエラーが発生します。各分布に適したデータ範囲については、dist を参照してください。

確率プロットの分布。確率分布オブジェクトまたは次のいずれかの分布名を指定します。

名前プロット タイプデータの範囲
'normal'正規確率プロットすべての値
'exponential'指数確率プロット非負値
'extreme value'極値確率プロットすべての値
'half normal'半正規確率プロットすべての値
'lognormal'対数正規確率プロット正の値
'logistic'ロジスティック確率プロットすべての値
'loglogistic'対数ロジスティック確率プロット正の値
'rayleigh'レイリー確率プロット正の値
'weibull'ワイブル確率プロット正の値

新しい Figure で確率プロットを作成する場合、既定値は 'normal' です。入力引数 ax を使用して既に確率プロットが含まれている Figure に確率プロットを追加する場合、既定値は既存の確率プロットのプロット タイプです。

makedist を使用すると、パラメーター値を指定して確率分布オブジェクトを作成できます。または、fitdist を使用して確率分布オブジェクトを標本データに当てはめます。確率分布オブジェクトの詳細については、確率分布の操作を参照してください。

y 軸のスケールは、選択した分布に基づきます。x 軸は、ワイブル分布、対数ロジスティック分布および対数正規分布の場合は対数スケール、他の場合は線形スケールになります。

すべての分布がすべてのデータ セットに適しているわけではありません。データ セットが特定の分布に適していない場合、probplot でエラーが発生します。

例: 'weibull'

打ち切りデータ。数値ベクトルを指定します。cens は、長さが y と同じであり、右側打ち切りの観測値に対しては値 1、正確に測定された観測値に対しては値 0 が格納されていなければなりません。

データ型: single | double

度数データ。整数値のベクトルを指定します。freq の長さは y と同じでなければなりません。freq には、y 内の対応する要素に対する整数の度数を格納します。

打ち切りデータではなく度数データを使用して確率プロットを作成するには、cens として空の大かっこ ([]) を指定します。

データ型: single | double

ターゲットの座標軸。Axes オブジェクトまたは UIAxes オブジェクトを指定します。probplot は、ax で指定された座標軸にプロットを追加します。詳細については、Axes のプロパティUIAxes のプロパティを参照してください。

現在の Figure の現在の座標軸を取得するには、gca を使用します。

基準線の確率分布。確率分布オブジェクトを指定します。probplot は、ax で指定された座標軸に近似直線を追加して、pd で指定された確率分布を表します。

確率分布オブジェクトを作成し、makedist を使用してパラメーター値を指定します。または、fitdist を使用して確率分布オブジェクトを標本データに当てはめます。確率分布オブジェクトの詳細については、確率分布の操作を参照してください。

基準線の関数。関数ハンドルを指定します。probplot は、ax で指定された座標軸に近似直線を追加して、fun で指定された関数を params で指定されたパラメーターで評価して表します。

fun は、関数ハンドル演算子 @ を使用して指定される cdf 関数の関数ハンドルです。関数は、1 番目の引数として入力値のベクトルを受け入れ、各入力値で評価した cdf が格納されているベクトルを返さなければなりません。引数 params を使用して、fun を評価するために必要なパラメーター値を指定します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。

例: @wblpdf

データ型: function_handle

基準線関数のパラメーター。数値のベクトルまたは cell 配列を指定します。probplot は、ax で指定された座標軸に近似直線を追加して、fun で指定された関数を params で指定されたパラメーターで評価して表します。

fun は、関数ハンドル演算子 @ を使用して指定される cdf 関数の関数ハンドルです。関数は、1 番目の引数として値のベクトルを受け入れ、各値で評価した cdf 値が格納されているベクトルを返さなければなりません。引数 params を使用して、fun を評価するために必要なパラメーター値を指定します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。

出力引数

すべて折りたたむ

line オブジェクトのグラフィックス ハンドル。line グラフィックス ハンドルのベクトルとして返されます。グラフィックス ハンドルは、プロットの特定のラインのプロパティをクエリおよび変更するために使用できる一意な識別子です。y は、probplot の各列について 2 つずつのハンドルを返します。

  • データ点を表すライン。probplot'+''o' などのマーカー記号を使用して y 内の各データ点を表します。

  • 確率プロットの理論的な分布を示すライン。破線として表されます。

line オブジェクトのプロパティを表示および設定するには、ドット表記を使用します。ドット表記の使用法の詳細については、プロパティ値へのアクセスを参照してください。設定できる Line オブジェクトのプロパティの詳細については、Line のプロパティ を参照してください。

アルゴリズム

probplot は、与えられた確率分布の分位数に標本データの分位数を一致させます。標本データは並べ替えられ、dist の選択に従ってスケーリングされ、x 軸に対してプロットされます。dist'lognormal''loglogistic' または 'weibull' である場合、スケーリングは対数になります。それ以外では、スケーリングは線形です。y 軸は、dist で指定された分布の分位数を、確率値に変換して表します。スケーリングは与えられた分布によって異なり、線形ではありません。

サイズが N の標本を並べ替えた i 番目の値が x 軸の値である場合、y 軸の値はデータの経験的累積分布関数に対する評価点間の中点です。データが打ち切られていない場合、中点は (i0.5)N に等しくなります。

probplot は、プロットの線形性を評価するため、基準線を重ね合わせます。データが打ち切られていない場合、この線はデータの 1 番目と 3 番目の四分位数を通過します。データが打ち切られている場合、それに従って線が移動します。データが打ち切られておらず、dist'half normal' である場合、probplot は 0 番目と 2 番目の四分位数を代わりに使用します。

バージョン履歴

R2006a より前に導入