exponenta event banner

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) поворачивает матрицу нагрузок d-by-m A для максимизации критерия varimax и возвращает результат в B. Ряды A и B соответствуют переменным и столбцам соответствуют факторам, например, (i, j) -й элемент A - коэффициент для i-й переменной в j-ом коэффициенте. Матрица 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)

Значение по умолчанию 1 для gamma соответствует вращению варимакса. Другие возможности включают gamma = 0, m/2 и d (m-1 )/( d + m-2), соответствующие quartimax, equamax и parsimax. Вы также можете поставлять'varimax', 'quartimax', 'equamax', или 'parsimax' для 'method' параметр и опустить '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 в матрицу целевых нагрузок d-by-m target.

B = rotatefactors(A,'Method','pattern','Target',target) выполняет наклонное вращение матрицы нагрузок A к матрице целевого шаблона d-by-m targetи возвращает результат в B. target определяет «ограниченные» элементы B, т.е. элементы B соответствующие нулевым элементам target ограничены малой величиной, в то время как элементы B соответствующие ненулевым элементам target разрешается принимать любую величину.

Если 'Method' является 'procrustes' или 'pattern', дополнительный параметр - 'Type', тип вращения. Если 'Type' является 'orthogonal'поворот является ортогональным, а коэффициенты остаются некоррелированными. Если 'Type' является 'oblique' (по умолчанию), поворот является наклонным, и коэффициенты поворота могут быть коррелированы.

Когда 'Method' является 'pattern', существуют ограничения на target. Если A имеет m столбцов, затем для ортогонального поворота j-й столбец target должен содержать не менее m-j нулей. Для поворота под наклоном каждый столбец target должен содержать не менее m-1 нулей.

B = rotatefactors(A,'Method','promax') поворачивает A, чтобы максимизировать критерий promax, эквивалентный наклонному вращению Прокруста с целью, созданной вращением ортомакса. Используйте четыре параметра orthomax для управления поворотом orthomax, используемым внутри promax.

Дополнительным параметром для promax является 'Power', экспонента для создания целевой матрицы promax. 'Power' должно быть 1 или больше. Значение по умолчанию: 4.

[B,T] = rotatefactors(A,...) возвращает матрицу поворота T используется для создания B, то есть B = A*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] Харман, Х. Х. Современный факторный анализ. 3-й ред. Чикаго: Чикагский университет прессы, 1976.

[2] Лоули, Д. Н. и А. Э. Максвелл. Факторный анализ как статистический метод. 2-й ред. Нью-Йорк: American Elsevier Publishing, 1971.

См. также

| | | |

Представлен до R2006a