Main Content

rotatefactors

因子負荷量の回転

構文

B = rotatefactors(A)
B = rotatefactors(A,'Method','orthomax','Coeff',gamma)
B = rotatefactors(A,'Method','procrustes','Target',target)
B = rotatefactors(A,'Method','pattern','Target',target)
B = rotatefactors(A,'Method','promax')
[B,T] = rotatefactors(A,...)

説明

B = rotatefactors(A) は、dm 列の負荷配列 A を回転して、バリマックス基準を最大化し、B に結果を返します。AB の行は変数に対応し、列は因子に対応します。たとえば、A の (i、j) 番目の要素は、j 番目の因子における i 番目の変数の係数です。配列 A は通常 pca または pcacov で作成された主要要素の係数、または factoran で推定された因子負荷量を含みます。

B = rotatefactors(A,'Method','orthomax','Coeff',gamma) は、A を回転して、係数 gamma をもつオーソマックス基準を最大化します。たとえば、B は以下を最大化する A の直交回転です。

sum(D*sum(B.^4,1) - GAMMA*sum(B.^2,1).^2)

gamma の既定値 1 は、バリマックス回転に対応しています。この他に gamma に設定する可能性がある値には 0、m/2 および d(m - 1)/(d + m - 2) があり、それぞれクォーティマックス、エカマックス、パーシマックスに対応します。また、'method' パラメーターに 'varimax''quartimax''equamax' または 'parsimax' を指定し、'Coeff' パラメーターを省略できます。

'Method''orthomax''varimax''quartimax''equamax'、または 'parsimax' の場合、追加パラメーターは以下のとおりです。

  • 'Normalize' — 回転のために負荷行列を行正規化するかどうかを指定するフラグ。'on' (既定の設定) の場合、A の行は、ユークリッド ノルムをもつために回転前に正規化され、回転後に非正規化されます。'off' の場合、生の負荷は回転されて返されます。

  • 'Reltol'T を見つけるために使用される反復アルゴリズムの収束の相対許容誤差。既定の設定は sqrt(eps) です。

  • 'Maxit'T を見つけるために使用される反復アルゴリズムの反復制限。既定の設定は 250 です。

B = rotatefactors(A,'Method','procrustes','Target',target) は、A から dm 列のターゲット負荷行列 target の斜交プロクラステス回転を行います。

B = rotatefactors(A,'Method','pattern','Target',target) は、負荷行列 A からdm 列のターゲット パターン行列 target の斜交回転を実行し、結果を B に返します。target は、B の "制限された" 要素を定義します。すなわち、target の 0 要素に対応する B の要素は、小さく制限され、target の非ゼロ要素に対応する B の要素は、任意の大きさを取ることが可能です。

'Method''procrustes' または 'pattern' の場合、追加パラメーターは回転の型である 'Type' です。'Type''orthogonal' である場合、回転は直交であり、因子は無相関な状態から変化しません。'Type''oblique' (既定の設定) の場合、回転は斜交で回転した因子は相関となる可能性があります。

'Method''pattern' の場合、target について制限があります。Am 個の列をもつ場合、直交回転では、target の j 番目の列には少なくとも m - j 個のゼロが含まれていなければなりません。斜交回転では、target の各列は、少なくとも m - 1 個のゼロが含まれている必要があります。

B = rotatefactors(A,'Method','promax') は、A を回転して、プロマックス基準を最大化します。これは、オーソマックス回転によって作成されたターゲットをもつ斜交プロクラステス回転に相等します。プロマックスにより内部で使われるオーソマックス回転を制御するために、4 つのオーソマックス パラメーターを利用します。

「プロマックス」の追加パラメーターは、プロマックス ターゲット行列を作成するための指数、'Power' です。'Power'1 以上でなければなりません。既定の設定は 4 です。

[B,T] = rotatefactors(A,...) は、B = A*TB の作成に使用される回転行列 T を返します。inv(T'*T) を使って、回転係数の相関行列を算出できます。直交回転に対しては、これは単位行列で、斜交回転に対しては、単位対角要素をもちますが、これは非ゼロの非対角要素です。

rng('default') % for reproducibility
X = randn(100,10);

% Default (normalized varimax) rotation:
% first three principal components.
LPC = pca(X);
[L1,T] = rotatefactors(LPC(:,1:3));
 
% Equamax rotation:
% first three principal components.
[L2,T] = rotatefactors(LPC(:,1:3),...
                       'method','equamax');
 
% Promax rotation:
% first three factors.
LFA = factoran(X,3,'Rotate','none');
[L3,T] = rotatefactors(LFA(:,1:3),...
                       'method','promax',...
                       'power',2);
 
% Pattern rotation:
% first three factors.
Tgt = [1 1 1 1 1 0 1 0 1 1; ...
       0 0 0 1 1 1 0 0 0 0; ...
       1 0 0 1 0 1 1 1 1 0]';
[L4,T] = rotatefactors(LFA(:,1:3),...
                       'method','pattern',...
                       'target',Tgt);
inv(T'*T) % Correlation matrix of the rotated factors
ans =

    1.0000   -0.9593   -0.7098
   -0.9593    1.0000    0.5938
   -0.7098    0.5938    1.0000

参考文献

[1] Harman, H. H. Modern Factor Analysis. 3rd ed. Chicago: University of Chicago Press, 1976.

[2] Lawley, D. N., and A. E. Maxwell. Factor Analysis as a Statistical Method. 2nd ed. New York: American Elsevier Publishing, 1971.

バージョン履歴

R2006a より前に導入