Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

biplot

説明

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

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

biplot(ax,___)は、Axesオブジェクトaxによって指定されたプロットの座標軸を使用します。axを最初の入力引数として指定し、その後に上記の構文での入力引数の組み合わせが続きます。

h= biplot(___)は、biplotで作成されるグラフィックス オブジェクトへのハンドルの列ベクトルを返します。hを使用して、特定のグラフィックス オブジェクトのプロパティのクエリと変更を行います。詳細については、グラフィックス オブジェクトのプロパティを参照してください。

すべて折りたたむ

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

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

loadcarsmall

変数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))

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

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

vbls = {'Accel','Disp','HP',“英里”,'Wgt'};% Labels for the variablesbiplot(coefs(:,1:3),'Scores',score(:,1:3),'VarLabels',vbls);

Figure contains an axes object. The axes object contains 17 objects of type line, text.

fisheririsデータセットを読み込み、花の測定値をmeasで標準化し、主成分分析を実行します。

loadfisheririsZ = zscore(meas); [coefs,scores] = pca(Z);

2 つのサブプロットを使用して Figure を作成し、ax1およびax2としてAxesオブジェクトを返します。対応するAxesオブジェクトを参照して、各座標軸のセットでバイプロットを作成します。上のサブプロットに、最初の 2 つの主成分を使用してバイプロットを表示します。下のサブプロットに、3 番目と 4 番目の主成分を使用してバイプロットを表示します。対応するAxesオブジェクトを関数xlimylimに渡して、X 軸と Y 軸の範囲を指定します。ax2xlabelylabelに渡して、下のプロットの X 軸と Y 軸のラベルを変更します。

figure('Units','normalized','Position',[0.3 0.3 0.3 0.5]) variables = {'SepalLength','SepalWidth','PetalLength','PetalWidth'}; ax1 = subplot(2,1,1);% Top subplotbiplot(ax1,coefs(:,1:2),'Scores',scores(:,1:2),'VarLabels',variables); xlim(ax1,[-1 1]) ylim(ax1,[-1 1]) ax2 = subplot(2,1,2);% Bottom subplotbiplot(ax2,coefs(:,3:4),'Scores',scores(:,3:4),'VarLabels',variables); xlim(ax2,[-1 1]) ylim(ax2,[-1 1]) xlabel(ax2,'Component 3') ylabel(ax2,'Component 4')

Figure contains 2 axes objects. Axes object 1 contains 14 objects of type line, text. Axes object 2 contains 14 objects of type line, text.

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

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

loadcarsmall

変数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));

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

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

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

vbls = {'Accel','Disp',“英里”};% Array of variable labelsh1 = biplot(coefs(:,1:2),'Scores',score(:,1:2),...'Color','b','Marker','o','VarLabels',vbls);

Figure contains an axes object. The axes object contains 104 objects of type line, text.

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

Figure contains an axes object. The axes object contains 104 objects of type line, text.

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 ハンドルに対応します。

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

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

fork = 1:3 h2(k).Color ='r';% Specify red as the line colorend

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

fork = 7:9 h2(k).FontWeight ='bold';% Specify bold fontend

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

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

Figure contains an axes object. The axes object contains 104 objects of type line, text.

入力引数

すべて折りたたむ

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

データ型:single|double

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

名前と値の引数

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

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

スコア。'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 に対応するハンドル

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

アルゴリズム

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

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

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

バージョン履歴

R2006a より前に導入