ドキュメンテーション

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

biplot

説明

biplot(coefs) は、行列 coefs 内の係数のバイプロットを作成します。バイプロットは、coefs の列数が 2 の場合は 2 次元、3 の場合は 3 次元になります。バイプロットの座標軸は coefs の列を、バイプロットのベクトルは coefs の行 (観測された変数) を表します。

biplot(coefs,Name,Value) では、1 つ以上の名前と値のペアの引数を使用して追加オプションを指定します。たとえば、'Positive','true' を指定すると、バイプロットを正の四分円 (2 次元) または八分円 (3 次元) に制限できます。

h = biplot(___) は、前の構文におけるいずれかの入力引数の組み合わせを使用して、biplot によって作成されたグラフィックス オブジェクトのハンドルの列ベクトルを返します。h を使用して、特定のグラフィックス オブジェクトのプロパティのクエリと変更を行います。詳細については、グラフィックス オブジェクトのプロパティ (MATLAB)を参照してください。

すべて折りたたむ

最初の 3 つの主成分の係数、観測値、および carsmall データセットの観測された変数からバイプロットを作成します。

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

load carsmall

変数 AccelerationDisplacementHorsepowerMPG および Weight から構成される行列を作成します。この行列から、欠損値が含まれている行を削除します。

X = [Acceleration Displacement Horsepower MPG Weight];
X = rmmissing(X);

X を標準化し、主成分分析を実行します。

Z = zscore(X); % Standardized data
[coefs,score] = pca(Z);

5 行 5 列の行列 coefs には、主成分の係数が格納されます (各主成分に対して 1 列)。行列 score には、主成分のスコア (観測値) が格納されます。

最初の 3 つの主成分の係数からバイプロットを作成します。バイプロットの座標軸は coefs の列を、バイプロットのベクトルは coefs の行を表します。

biplot(coefs(:,1:3))

各変数にラベルを付け、最初の 3 つの主成分の空間に観測値をプロットすることにより、より詳細なバイプロットを作成します。

vbls = {'Accel','Disp','HP','MPG','Wgt'}; % Labels for the variables
biplot(coefs(:,1:3),'Scores',score(:,1:3),'VarLabels',vbls);

サポートされている line プロパティの名前と値を指定し、biplot によって作成されたグラフィックス オブジェクトのハンドルを使用することにより、バイプロットの外観を制御します。

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

load carsmall

変数 AccelerationDisplacement および MPG から構成される行列を作成します。この行列から、欠損値が含まれている行を削除します。

X = [Acceleration Displacement MPG];
X = rmmissing(X);

X を標準化し、主成分分析を実行します。

Z = zscore(X); % Standardized data
[coefs,score] = pca(Z);

3 行 3 列の行列 coefs には、主成分の係数が格納されます (各主成分に対して 1 列)。行列 score には、主成分のスコア (観測値) が格納されます。

最初の 2 つの主成分の空間に観測値が含まれているバイプロットを作成します。バイプロットの既定のプロパティを使用します。

h = biplot(coefs(:,1:2),'Scores',score(:,1:2));

h は、グラフィックス オブジェクトのハンドルのベクトルです。biplot によって返された line オブジェクトのプロパティを変更できます。

識別を容易にするため、3 つの変数にラベルを付けます。マーカー記号として円を、すべての line オブジェクトの色として青を指定します。

vbls = {'Accel','Disp','MPG'}; % Array of variable labels
h1 = biplot(coefs(:,1:2),'Scores',score(:,1:2),...
    'Color','b','Marker','o','VarLabels',vbls);

h1 は、グラフィックス オブジェクトのハンドルのベクトルです。h1 の最初のいくつかの要素を表示します。

h1(1:10) % First ten object handles
ans = 
  10x1 graphics array:

  Line    (varline)
  Line    (varline)
  Line    (varline)
  Line    (varmarker)
  Line    (varmarker)
  Line    (varmarker)
  Text    (varlabel)
  Text    (varlabel)
  Text    (varlabel)
  Line    (obsmarker)

変数ラベルのハンドル (h1(7:9)) はテキストです。したがって、line プロパティについて指定した設定はこれらのラベルに影響を与えません。

最初の 2 つの主成分の空間に観測値が含まれている別のバイプロットを作成し、識別を容易にするため 3 つの変数にラベルを付けます。

h2 = biplot(coefs(:,1:2),'Scores',score(:,1:2),'VarLabels',vbls);

h2 は、グラフィックス オブジェクトのハンドルのベクトルです。h2 の最初のいくつかの要素を表示します。

h2(1:10) % First ten object handles
ans = 
  10x1 graphics array:

  Line    (varline)
  Line    (varline)
  Line    (varline)
  Line    (varmarker)
  Line    (varmarker)
  Line    (varmarker)
  Text    (varlabel)
  Text    (varlabel)
  Text    (varlabel)
  Line    (obsmarker)

h2 には 104 個のオブジェクト ハンドルが含まれています。

  • 最初の 3 つのハンドル (h(1:3)) は、3 つの変数の line ハンドルに対応します。

  • ハンドル h(4:6) は、3 つの変数のマーカー ハンドルに対応します。

  • ハンドル h(7:9) は、3 つの変数のテキスト ハンドルに対応します。

  • 次の 94 個のハンドルは、観測値の line ハンドルに対応します。

  • 最後のハンドルは、座標軸の line ハンドルです。

グラフィックス オブジェクトのハンドルを使用して、バイプロットの特定のプロパティを変更します。

変数 (ベクトル) のラインの色を変更します。

for k = 1:3
    h2(k).Color = 'r'; % Specify red as the line color
end

変数ラベルのフォントを変更します。

for k = 7:9
    h2(k).FontWeight = 'bold';  % Specify bold font
end

観測値マーカーの色を変更します。

for k = 10:103
    h2(k).MarkerEdgeColor = 'k';  % Specify black color for the observations
end

入力引数

すべて折りたたむ

係数。2 列または 3 列の行列を指定します。coefs が 2 列である場合、バイプロットは 2 次元になります。coefs が 3 列である場合、バイプロットは 3 次元になります。通常、coefs の列には、pca または pcacov で作成した主成分の係数、または factoran で推定した因子負荷量を格納します。バイプロットの座標軸は coefs の列を、バイプロットのベクトルは coefs の行 (観測された変数) を表します。

データ型: single | double

名前と値のペアの引数

オプションの Name,Value 引数のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

例: biplot(coefs,'VarLabels',varlabels) は、配列 varlabels 内のテキストで各ベクトル (変数) にラベルを付けます。

スコア。'Scores' と、列数が coefs と同じである行列から構成されるコンマ区切りのペアとして指定します。通常、Scores には、pca で作成した主成分のスコアまたは factoran で推定した因子スコアを格納します。関数 biplot は、Scores (観測値) の各行を点として、coefs (観測された変数) の各行をベクトルとして表します。

例: 'Scores',score(:,1:3)

データ型: single | double

変数のラベル。'VarLabels' と文字配列、string 配列または cell 配列から構成されるコンマ区切りのペアとして指定します。biplot は、この配列内のテキストを使用して各ベクトル (観測された変数) にラベルを付けます。

例: 'VarLabels',varlabels

データ型: char | string | cell

観測値のラベル。'ObsLabels' と文字配列、string 配列または cell 配列から構成されるコンマ区切りのペアとして指定します。biplot は、データ カーソルを表示するときに、この配列内のテキストを観測値の名前として使用します。

例: 'ObsLabels',obslabels

データ型: char | string | cell

正の座標におけるプロットのインジケーター。'Positive' と次のいずれかの logical 値から構成されるコンマ区切りのペアとして指定します。

説明
false

すべての座標で範囲 +/– max(coefs(:)) に対してバイプロットを作成します (既定)。

true

バイプロットを正の四分円 (2 次元) または八分円 (3 次元) に制限します。

例: 'Positive',true

データ型: logical

プロパティ名。プロパティ名と、サポートされる 1 つ以上の Line のプロパティに関連付けられている値から構成されるコンマ区切りのペアとして指定します。これらのプロパティは、biplot によって作成されるすべてのプリミティブな line グラフィックス オブジェクトの名前と値です。指定したプロパティ名は、グラフィックス オブジェクトの外観と動作を制御します。

例: 'Marker','square','MarkerSize',10

出力引数

すべて折りたたむ

biplot によって作成されたグラフィックス オブジェクトのハンドル。列ベクトルとして返されます。このベクトルには、次の順序でハンドルが格納されます。

  1. 変数に対応するハンドル (line ハンドル、マーカー ハンドル、テキスト ハンドルの順)

  2. 観測値に対応するハンドル (マーカー ハンドル、テキスト ハンドルの順)

  3. 座標軸の line に対応するハンドル

これらのハンドルを使用して、特定のグラフィックス オブジェクトのプロパティのクエリと変更を行うことができます。詳細については、グラフィックス オブジェクト ハンドル (MATLAB)およびグラフィックス配列 (MATLAB)を参照してください。

アルゴリズム

バイプロットを使用すると、最初の 2 つまたは 3 つの主成分に対する各変数の寄与の大きさおよび符号を可視化することと、これらの主成分に関して各観測値を表すことができます。関数 biplot は、以下を行います。

  • 符号規則を適用して、coefs の各列で大きさが最大である要素を正にします。この処理により、coefs のベクトルの一部が逆方向に反転しますが、多くの場合はプロットが読みやすくなります。係数ベクトルの符号を変更しても意味は変わらないため、プロットの解釈は影響を受けません。

  • プロットに収まるようにスコアをスケーリングします。つまり、各スコアをすべてのスコアの最大絶対値で除算してから、coefs の最大係数長を乗算します。次に、biplot は係数の符号規則に従ってスコア座標の符号を変更します。

R2006a より前に導入