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

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

Дополнительным параметром для 'промакс.' является 'Power', экспонента для создания промакс. целевой матрицы. '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] Lawley, D. N. и А. Э. Максвелл. Факторный анализ как Статистический метод. 2-й редактор Нью-Йорк: American Elsevier Publishing, 1971.

Смотрите также

| | | |

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