ドキュメンテーション

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

plsregress

構文

[XL,YL] = plsregress(X,Y,ncomp)
[XL,YL,XS] = plsregress(X,Y,ncomp)
[XL,YL,XS,YS] = plsregress(X,Y,ncomp)
[XL,YL,XS,YS,BETA] = plsregress(X,Y,ncomp,...)
[XL,YL,XS,YS,BETA,PCTVAR] = plsregress(X,Y,ncomp)
[XL,YL,XS,YS,BETA,PCTVAR,MSE] = plsregress(X,Y,ncomp)
[XL,YL,XS,YS,BETA,PCTVAR,MSE] = plsregress(...,param1,val1,param2,val2,...)
[XL,YL,XS,YS,BETA,PCTVAR,MSE,stats] = plsregress(X,Y,ncomp,...)

説明

[XL,YL] = plsregress(X,Y,ncomp) は、ncomp PLS コンポーネントを使用して X に対する Y の部分最小二乗 (PLS) 回帰を計算し、XLYL に予測と応答の負荷量をそれぞれ返します。X は予測子の n 行 p 列の行列で、行は観測値に対応しており、列は変数に対応しています。Y は n 行 m 列の応答行列です。XL は p 行 ncomp 列の予測負荷量行列で、各行は元の予測子変数を近似する PLS コンポーネントの線形結合を定義する係数を含んでいます。YL は m 行 ncomp 列の応答負荷量行列で、各行は元の応答変数を近似する PLS コンポーネントの線形結合を定義する係数を含んでいます。

[XL,YL,XS] = plsregress(X,Y,ncomp) は、予測スコア XS、つまり X の変数の線形結合である PLS コンポーネントを返します。XS は n 行 ncomp 列の正規直交行列で、行は観測値に対応しており、列はコンポーネントに対応しています。

[XL,YL,XS,YS] = plsregress(X,Y,ncomp) は、応答スコア YS、つまり PLS コンポーネント XS が最大共分散をもつ応答の線形結合を返します。YS は n 行 ncomp 列の行列で、行は観測値に対応しており、列はコンポーネントに対応しています。YS は直交ではなく、正規化もされていません。

plsregress は SIMPLS アルゴリズムを使用して、まず XY を中心化します。これは、これらの値を列平均から減算して中央の変数 X0 および Y0 を求めることで行います。ただし、列の再スケーリングは行いません。標準化された変数を使用して PLS を実行するには、zscore を使用して XY を正規化します。

ncomp が省力された場合の既定値は min(size(X,1)-1,size(X,2)) です。

スコア、負荷量、および中央化された変数 X0Y0 間の関係は次のとおりです。

XL = (XS\X0)' = X0'*XS

YL = (XS\Y0)' = Y0'*XS

XLYLXS における X0Y0 の回帰係数で、XS*XL'XS*YL'X0Y0 への PLS 近似です。

plsregress は最初に YS を次のように計算します。

YS = Y0*YL = Y0*Y0'*XS

ただし慣例では、plsregress はその後 YS の各列を XS の前の列と直交させ, XS'*YS が下三角になるようにします。

[XL,YL,XS,YS,BETA] = plsregress(X,Y,ncomp,...) は、PLS 回帰係数 BETA を返します。BETA は (p+1) 行 m 列の行列で、最初の行に切片の項を含んでいます。

Y = [ones(n,1),X]*BETA + Yresiduals

Y0 = X0*BETA(2:end,:) + Yresiduals。ここで Yresiduals は応答残差のベクトルです。

[XL,YL,XS,YS,BETA,PCTVAR] = plsregress(X,Y,ncomp) は、モデルで説明される分散の比率を含む 2 行 ncomp 列の行列 PCTVAR を返します。PCTVAR の最初の行は各 PLS コンポーネントによって X で説明される分散の比率を含んでおり、2 番目の行は Y で説明される分散の比率を含んでいます。

[XL,YL,XS,YS,BETA,PCTVAR,MSE] = plsregress(X,Y,ncomp) は、0:ncomp コンポーネントをもつ PLS モデルに対して予測される平均二乗誤差を含む 2 行 (ncomp+1) 列の行列 MSE を返します。MSE の最初の行は、X 内の予測子変数の平均二乗誤差を含んでおり、2 番目の行は Y 内の応答変数の平均二乗誤差を含んでいます。

[XL,YL,XS,YS,BETA,PCTVAR,MSE] = plsregress(...,param1,val1,param2,val2,...) は、MSE の計算を制御するための、次の表に示すオプションのパラメーターの名前と値のペアを指定します。

パラメーター
'cv'

MSE の計算に使用する方法。

  • 値が正の整数 k である場合、plsregressk 分割交差検証を使用します。

  • この値が cvpartition クラスのオブジェクトの場合、他の形式の交差検証を指定できます。

  • 値が'resubstitution' である場合、plsregress は交差検証を使用せずに、XY の両方を使用してモデルを近似し、平均二乗誤差を予測します。

既定の設定は、'resubstitution' です。

'mcreps'

交差検証用のモンテカルロ反復回数を示す正の整数。既定値は 1 です。'cv' の値が 'resubstitution' である場合、値は 1 でなければなりません。

options

並列実行するかどうかを指定し、乱数ストリームを指定する構造体。statset を使用して options 構造体を作成します。以下のオプションのフィールドがあります。

  • UseParallel — 並列計算する場合は true に設定します。既定値は false です。

  • UseSubstreams — 再生成可能な方法で並列計算する場合は true に設定します。既定値は false です。再現性のある計算を行うには、Streams をサブストリームを許可する型、'mlfg6331_64' または 'mrg32k3a' に設定します。

  • StreamsRandStream オブジェクトまたはそのようなオブジェクトで構成される cell 配列。Streams を指定しないと、plsregress には既定のストリームが使用されます。

並列計算を行うには、Parallel Computing Toolbox™ が必要です。

[XL,YL,XS,YS,BETA,PCTVAR,MSE,stats] = plsregress(X,Y,ncomp,...) は、以下のフィールドをもつ stats 構造体を出力します。

  • WXS = X0*W となる p 行ncomp 列の PLS 重み行列

  • T2XS の各点に対する T2 統計量

  • Xresiduals — 予測残差、つまり X0-XS*XL'

  • Yresiduals — 応答残差、つまり Y0-XS*YL'

すべて折りたたむ

ガソリン 60 標本に対する、近赤外線 (NIR) 401 波長でのスペクトル強度とそのオクタン価のデータを読み込みます。

load spectra
X = NIR;
y = octane;

10 の成分を使用して PLS 回帰を実行します。

[XL,yl,XS,YS,beta,PCTVAR] = plsregress(X,y,10);

応答変数で説明される分散の比率を成分の数の関数としてプロットします。

plot(1:10,cumsum(100*PCTVAR(2,:)),'-bo');
xlabel('Number of PLS components');
ylabel('Percent Variance Explained in y');

近似応答を計算し、残差を表示します。

yfit = [ones(size(X,1),1) X]*beta;
residuals = y - yfit;
stem(residuals)
xlabel('Observation');
ylabel('Residual');

参照

[1] de Jong, S. “SIMPLS: An Alternative Approach to Partial Least Squares Regression.” Chemometrics and Intelligent Laboratory Systems. Vol. 18, 1993, pp. 251–263.

[2] Rosipal, R., and N. Kramer. “Overview and Recent Advances in Partial Least Squares.” Subspace, Latent Structure and Feature Selection: Statistical and Optimization Perspectives Workshop (SLSFS 2005), Revised Selected Papers (Lecture Notes in Computer Science 3940). Berlin, Germany: Springer-Verlag, 2006, pp. 34–51.

拡張機能

R2008a で導入