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