Main Content

qqplot

分位数-分位数プロット

説明

qqplot(x) は、正規分布による理論的な分位数値に対する標本データ x の分位数の分位数-分位数プロットを表示します。x の分布が正規分布である場合、データ プロットは直線になります。

qqplot は、プラス記号 ('+') マーカーを使用して x 内の各データ点をプロットし、理論的な分布を表す 2 本の基準線を描画します。実線の基準線はデータの 1 番目と 3 番目の四分位数を接続し、破線の基準線はデータの端まで実線を伸ばします。

qqplot(x,pd) は、確率分布オブジェクト pd によって指定された分布の理論的な分位数に対する標本データ x の分位数の分位数-分位数プロットを表示します。x の分布が pd で指定された分布と同じである場合、プロットは直線になります。

qqplot(x,y) は、標本データ y の分位数に対する標本データ x の分位数の分位数-分位数プロットを表示します。これらの標本が同じ分布から派生している場合、プロットは直線になります。

qqplot(___,pvec) は、ベクトル pvec で指定された分位数で分位数-分位数プロットを表示します。pvec は、前の構文における入力引数の組み合わせの後に指定します。

qqplot(ax,___) は、Axes オブジェクト ax によって指定されたプロットの座標軸を使用します。ax オプションは、上記の構文における入力引数の組み合わせより前に指定できます。

h = qqplot(___) は、分位数-分位数プロット内のラインに対するハンドル (h) を返します。

すべて折りたたむ

分位数-分位数プロットを使用して、マサチューセッツ州のガソリン価格が正規分布に従うかどうかを判断します。

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

load gas

price1 および price2 の標本データは、マサチューセッツ州の 20 か所のガソリン スタンドにおけるガソリン価格を表します。これらの標本は、2 つの異なる月に収集されました。

分位数-分位数プロットを作成して、price1 のガソリン価格が正規分布に従うかどうかを判断します。

figure
qqplot(price1)

Figure contains an axes object. The axes object with title QQ Plot of Sample Data versus Standard Normal contains 3 objects of type line.

プロットではほぼ直線になっているので、ガソリン価格が正規分布に従うことがわかります。

分位数-分位数プロットを使用して、2 セットの標本データが同じ分布から派生しているかどうかを判断します。

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

load gas

price1 および price2 の標本データは、マサチューセッツ州の 20 か所のガソリン スタンドにおけるガソリン価格を表します。これらの標本は、2 つの異なる月に収集されました。

両方の標本データのセットを使用して分位数-分位数プロットを作成し、異なる時期の価格が同じ分布に従うかどうかを評価します。

qqplot(price1,price2);

Figure contains an axes object. The axes object contains 3 objects of type line.

プロットではほぼ直線になっているので、2 セットの標本データは同じ分布であることがわかります。

分位数-分位数プロットを使用して、標本データがワイブル分布から派生しているかどうかを判断します。

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

load lightbulb

データの 1 列目には 2 種類の電球の寿命 (時間単位) が含まれています。2 列目には、電球のタイプに関する情報が含まれています。1 は蛍光灯電球を、0 は白熱灯電球を示します。3 列目には打ち切り情報が含まれます。1 は打ち切られたデータを示し、0 は正確な故障時間を示します。このデータは、シミュレーションされたものです。

打ち切られたデータを削除します。

lightbulb = [lightbulb(lightbulb(:,3)==0,1),...
    lightbulb(lightbulb(:,3)==0,2)];

電球の各タイプについて変数を作成します。打ち切られていないデータのみを含めます。

fluo = [lightbulb(lightbulb(:,2)==0,1)];
insc = [lightbulb(lightbulb(:,2)==1,1)];

既定のパラメーター A = 1 および B = 1 を使用して、ワイブル確率分布オブジェクトを作成します。

pd = makedist('Weibull');

分位数-分位数プロットを作成して、蛍光灯電球の寿命がワイブル分布に従うかどうかを判断します。

figure
qqplot(fluo,pd)

Figure contains an axes object. The axes object with title QQ Plot of Sample Data versus Distribution contains 3 objects of type line.

プロットでは直線になっていないので、蛍光灯電球の寿命データはワイブル分布に従わないことがわかります。

関数 tiledlayout と関数 nexttile を使用して分位数-分位数プロットのペアを並べて表示します。

patients データセットを読み込みます。患者の拡張期血圧レベルを 2 つのデータ セットに分け、一方に喫煙者の拡張期血圧レベル、もう一方に非喫煙者の拡張期血圧レベルを格納します。

load patients

smokerIndices = (Smoker == 1);
nonsmokerIndices = (Smoker == 0);

smokerDiastolic = Diastolic(smokerIndices);
nonsmokerDiastolic = Diastolic(nonsmokerIndices);

関数 tiledlayout を使用して 2 行 1 列のタイル表示チャート レイアウトを作成します。関数 nexttile を呼び出して、チャート レイアウト内に最初の座標軸のセット ax1 を作成します。この座標軸で、喫煙者の拡張期血圧レベルが正規分布から派生しているかどうかを判定する q-q プロットを表示します。関数 nexttile を呼び出して、タイル表示チャート レイアウト内に 2 つ目の座標軸のセット ax2 を作成します。この座標軸で、非喫煙者の拡張期血圧レベルが正規分布から派生しているかどうかを判定する q-q プロットを表示します。

tiledlayout(2,1)

% Top axes
ax1 = nexttile;
qqplot(ax1,smokerDiastolic)
ylabel(ax1,'Diastolic Quantiles for Smokers')
title(ax1,'QQ Plot of Smoker Diastolic Levels vs. Standard Normal')

% Bottom axes
ax2 = nexttile;
qqplot(ax2,nonsmokerDiastolic)
ylabel(ax2,'Diastolic Quantiles for Nonsmokers')
title(ax2,'QQ Plot of Nonsmoker Diastolic Levels vs. Standard Normal')

Figure contains 2 axes objects. Axes object 1 with title QQ Plot of Smoker Diastolic Levels vs. Standard Normal contains 3 objects of type line. Axes object 2 with title QQ Plot of Nonsmoker Diastolic Levels vs. Standard Normal contains 3 objects of type line.

2 つ目のプロットは直線に近く、非喫煙者の血圧値の標本はほぼ正規分布になっていることがわかります。一方、1 つ目のプロットは左側の点がラインの下にあり、正規分布よりも裾が厚くなっている (外れ値が多い) ことがわかります。

入力引数

すべて折りたたむ

標本データ。数値ベクトルまたは数値行列を指定します。x が行列の場合、qqplot は各列に対して別々のラインを表示します。

qqplot は、プロット記号 '+' を使用して標本データを表示します。各分布の 1 番目および 3 番目の四分位数を結ぶラインがプロットに重ね合わせられます。このラインは、x 内のデータに対する順序統計量のロバスト線形近似を表します。データの直線性を評価しやすくするため、このラインは x の最小値および最大値まで外挿されます。

データ型: single | double

2 番目の標本データのセット。数値ベクトルまたは数値行列を指定します。xy が同じ長さである必要はありません。ただし、xy が行列の場合は列数が同じでなければなりません。xy が行列の場合、qqplot は列の各ペアに対して別々のラインを表示します。

qqplot は、小さい方のデータセットのサイズに基づいて、プロットする分位数を選択します。

データ型: single | double

仮定の確率分布。確率分布オブジェクトを指定します。qqplot は、pd で指定された分布の理論的な四分位数に対して入力データ x の分位数をプロットします。

パラメーター値を指定して makedist を使用することにより確率分布オブジェクトを作成するか、fitdist を使用して確率分布オブジェクトをデータにあてはめます。

プロットに使用する分位数。範囲 [0,100] の数値またはそのベクトルを指定します。

標本データが 1 セット (x) の場合、qqplotx の分位数を使用します。標本データが 2 セット (xy) の場合、qqplot は小さい方のデータセットの分位数を使用します。

データ型: single | double

プロットの座標軸。Axes オブジェクトとして指定します。ax を指定しない場合、qqplot は、現在の座標軸を使用してプロットを作成します。Axes オブジェクトを作成する方法の詳細については、axes を参照してください。

出力引数

すべて折りたたむ

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

  • データ点を表す線。qqplot は、プラス記号 ('+') マーカーを使用して x 内の各データ点を表します。

  • x の各列の 1 番目および 3 番目の四分位数を結合するライン。実線として表されます。

  • x の最小値および最大値まで伸びる四分位線の外挿。破線として表されます。

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

詳細

すべて折りたたむ

分位数-分位数プロット

"分位数-分位数プロット" ("q-q プロット" とも呼ばれます) では、標本データが特定の分布から派生しているかどうかを視覚的に評価します。また q-q プロットは、2 セットの標本データが同じ分布から派生しているかどうかを評価します。

q-q プロットでは、標本データの値が昇順で並べ替えられてから、標本データの各分位数における指定された分布の期待値に対してこれらの値がプロットされます。入力された標本の分位数値は y 軸に沿って表示され、同じ分位数における指定された分布の理論的な値は x 軸に沿って表示されます。生成されるプロットが直線の場合、指定された分布から標本データが派生していると考えられます。

q-q プロットでは、標本データに含まれている値の個数に基づいて分位数が選択されます。標本データに n 個の値が含まれている場合、プロットでは n 個の分位数が使用されます。順序付けられた i 番目の値 (i 番目の "順序統計量" とも呼ばれます) は、指定された分布の i0.5n 番目の分位数に対してプロットされます。

また、q-q プロットでは、基になる分布が不明な場合でも、2 セットの標本データが同じ分布に従っているかどうかを評価できます。1 番目のデータセットの分位数値は x 軸に表示され、2 番目のデータセットの対応する分位数値は y 軸に表示されます。q-q プロットでは分位数を使用するので、2 つの標本のデータ点の数が同じである必要はありません。標本サイズが異なる場合、小さい方のデータセットに基づいて分位数が選択されます。生成されるプロットが直線の場合、2 セットの標本データは同じ分布から派生していると考えられます。

バージョン履歴

R2006a より前に導入