Вращайте факторные нагрузки
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.
biplot
| factoran
| pca
| pcacov
| procrustes