factoran

Факторный анализ

Синтаксис

lambda = factoran(X,m)
[lambda,psi] = factoran(X,m)
[lambda,psi,T] = factoran(X,m)
[lambda,psi,T,stats] = factoran(X,m)
[lambda,psi,T,stats,F] = factoran(X,m)
[...] = factoran(...,param1,val1,param2,val2,...)

Описание

lambda = factoran(X,m) возвращает оценку наибольшего правдоподобия, lambda, из матрицы факторных нагрузок, в аналитической модели общего множителя с m общие множители. X n- d матрица, где каждая строка является наблюдением за d переменные. (i,j)элемент th d- m матричный lambda коэффициент или загрузка, jфактор th для iпеременная th. По умолчанию, factoran вызывает функциональный rotatefactors вращать предполагаемые факторные нагрузки с помощью 'varimax' опция.

[lambda,psi] = factoran(X,m) также возвращает оценки наибольшего правдоподобия определенных отклонений как вектор-столбец psi из длины d.

[lambda,psi,T] = factoran(X,m) также возвращает m- m матрица вращения факторных нагрузок T.

[lambda,psi,T,stats] = factoran(X,m) также возвращает структуру stats содержа информацию, относящуюся к нулевой гипотезе, H0, что количеством общих множителей является mстатистика включает следующие поля:

Поле Описание
loglike

Максимизируемое значение логарифмической правдоподобности

dfe

Ошибочные степени свободы = ((d-m)^2 - (d+m))/2

chisq

Аппроксимируйте статистическую величину в квадрате хи для нулевой гипотезы

p

Уровень значения правильного хвоста для нулевой гипотезы

factoran не вычисляет chisq и p поля, если dfe положительно и все определенные оценки отклонения в psi положительны (см. Случай Хейвуда ниже). Если X ковариационная матрица, затем необходимо также задать 'nobs' параметр, если вы хотите factoran вычислить chisq и p поля .

[lambda,psi,T,stats,F] = factoran(X,m) также возвращается, в F, прогнозы общих множителей, известных как факторные баллы. F n- m матрица, где каждая строка является прогнозом m общие множители. Если X ковариационная матрица, factoran не может вычислить F. factoran вращает F использование того же критерия что касается lambda.

[...] = factoran(...,param1,val1,param2,val2,...) позволяет вам задать дополнительное название параметра / пары значения, чтобы управлять подгонкой модели и выходными параметрами. Следующее является допустимыми парами параметра/значения.

ПараметрЗначение
'xtype'

Тип входа в матричном X. 'xtype' может быть один из:

'data'

Необработанные данные (значение по умолчанию)

'covariance'

Положительная определенная ковариация или корреляционная матрица

'scores'

Метод для предсказания факторных баллов. 'scores' проигнорирован если X не необработанные данные.

'wls'
'Бартлетт'

Синонимы для метод взвешенных наименьших квадратов оценивает, что обрабатывает F как зафиксировано (default)

'регрессия'
'Томсон'

Синонимы для минимального прогноза среднеквадратической ошибки, который эквивалентен гребенчатой регрессии

'start'

Начальная точка для определенных отклонений psi в оптимизации наибольшего правдоподобия. Может быть задан как:

'random'

Выбирает d равномерно распределенные значения на интервале [0,1].

'Rsquared'

Выбирает стартовый вектор в качестве масштабного коэффициента времена diag(inv(corrcoef(X))) (значение по умолчанию). Для примеров смотрите Jöreskog [2].

Положительное целое число

Выполняет возмущенное количество наибольшего правдоподобия, каждый инициализированный как с 'random'. factoran возвращает подгонку с самой высокой вероятностью.

Матрица

Выполняет одно наибольшее правдоподобие, подходящее для каждого столбца заданной матрицы. iоптимизация th инициализируется со значениями от iстолбец th. Матрица должна иметь d 'Строки' .

'rotate'

Метод раньше вращал факторные нагрузки и баллы. 'rotate' может иметь те же значения как 'Method' параметр rotatefactors. Смотрите страницу с описанием для rotatefactors для полного описания доступных методов.

 

'none'

Не выполняет вращения.

 

'equamax'

Особый случай ортомакс. вращения. Используйте 'normalize''RelTol' , и 'maxit' параметры, чтобы управлять деталями вращения.

 

'orthomax'

Ортогональное вращение, которое максимизирует критерий на основе отклонения загрузок.

Используйте 'coeff', 'normalize''RelTol' , и 'maxit' параметры, чтобы управлять деталями вращения.

 

'parsimax'

Особый случай ортомакс. вращения (значение по умолчанию). Используйте 'normalize''RelTol' , и 'maxit'параметры, чтобы управлять деталями вращения.

 

'pattern'

Выполняет любого наклонное вращение (значение по умолчанию) или ортогональное вращение, чтобы лучше всего совпадать с заданной матрицей шаблона. Используйте 'type' параметр, чтобы выбрать тип вращения. Используйте 'target' параметр, чтобы задать матрицу шаблона.

 

'procrustes'

Выполняет любого наклонное (значение по умолчанию) или ортогональное вращение, чтобы лучше всего совпадать с заданной целевой матрицей в смысле наименьших квадратов.

Используйте 'type' параметр, чтобы выбрать тип вращения. Используйте 'target' задавать целевую матрицу.

 

'promax'

Выполняет наклонное procrustes вращение к целевой матрице, определенной factoran как функция ортомакс. решения.

Используйте 'power' параметр, чтобы задать экспоненту для создания целевой матрицы. Поскольку 'promax' использование 'orthomax' внутренне, можно также задать параметры, которые применяются к 'orthomax'.

 

'quartimax'

Особый случай ортомакс. вращения (значение по умолчанию). Используйте 'normalize''RelTol' , и 'maxit'параметры, чтобы управлять деталями вращения.

 

'varimax'

Особый случай ортомакс. вращения (значение по умолчанию). Используйте 'normalize''RelTol' , и 'maxit' параметры, чтобы управлять деталями вращения.

 

Функция

Указатель на функцию к функции вращения формы

[B,T] = 
myrotation(A,...)

где A d- m матрица невращаемых факторных нагрузок, B d- m матрица вращаемых загрузок и T соответствующий m- m матрица вращения.

Используйте factoran параметр 'userargs' передать дополнительные аргументы этой функции вращения. Смотрите Пользовательскую Функцию Вращения.

'coeff'

Коэффициент, часто обозначаемый как γ, задавая определенный 'orthomax' критерий. Должен быть от 0 к 1. Значение 0 соответствует quartimax и 1 соответствует varimax. Значением по умолчанию является 1.

'normalize'

Отметьте указание, должна ли матрица загрузки быть нормирована строкой (1) или оставлена ненормированная (0) для 'orthomax' или 'varimax' вращение. Значение по умолчанию равняется 1.

'reltol'

Относительный допуск сходимости для 'orthomax' или 'varimax' вращение. Значением по умолчанию является sqrt(eps).

'maxit'

Предел итерации для 'orthomax' или 'varimax' вращение. Значением по умолчанию является 250.

'target'

Целевая матрица факторной нагрузки для 'procrustes' вращение. Требуемый для 'procrustes' вращение. Никакое значение по умолчанию.

'type'

Тип 'procrustes' вращение. Может быть 'oblique' (значение по умолчанию) или 'orthogonal'.

'power'

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

'userargs'

Обозначает начало дополнительных входных значений для пользовательской функции вращения. factoran добавляет все последующие значения, в порядке и без обработки, к списку аргументов функции вращения, после невращаемой матрицы факторных нагрузок A. Смотрите, что пользовательское вращение функционирует.

'nobs'

Если X ковариационная или корреляционная матрица, указывает на количество наблюдений, которые использовались по его оценке. Это позволяет вычисление значения для нулевой гипотезы, даже когда исходные данные не доступны. Нет никакого значения по умолчанию. 'nobs' проигнорирован если X необработанные данные.

'delta'

Нижняя граница для определенных отклонений psi во время оптимизации наибольшего правдоподобия. Значением по умолчанию является 0.005.

'optimopts'

Структура, которая задает параметры управления для итеративного алгоритма функция, используется для расчета оценок наибольшего правдоподобия. Создайте эту структуру с функциональным statset. Введите statset('factoran') видеть имена и значения по умолчанию параметров что factoran принимает в options структура. Смотрите страницу с описанием для statset для получения дополнительной информации об этих опциях.

Примеры

свернуть все

Загрузите выборочные данные.

load carbig

Задайте переменную матрицу.

X = [Acceleration Displacement Horsepower MPG Weight]; 
X = X(all(~isnan(X),2),:);

Оцените факторные нагрузки с помощью минимального прогноза среднеквадратической ошибки в факторном анализе с двумя общими множителями.

[Lambda,Psi,T,stats,F] = factoran(X,2,'scores','regression');
inv(T'*T);   % Estimated correlation matrix of F, == eye(2)
Lambda*Lambda' + diag(Psi); % Estimated correlation matrix
Lambda*inv(T);              % Unrotate the loadings
F*T';                       % Unrotate the factor scores

Создайте побочную сюжетную линию двух факторов.

biplot(Lambda,'LineWidth',2,'MarkerSize',20)

Оцените факторные нагрузки с помощью ковариации (или корреляция) матрица.

[Lambda,Psi,T] = factoran(cov(X),2,'xtype','cov')
Lambda = 5×2

   -0.2432   -0.8500
    0.8773    0.3871
    0.7618    0.5930
   -0.7978   -0.2786
    0.9692    0.2129

Psi = 5×1

    0.2184
    0.0804
    0.0680
    0.2859
    0.0152

T = 2×2

    0.9476    0.3195
    0.3195   -0.9476

% [Lambda,Psi,T] = factoran(corrcoef(X),2,'xtype','cov')

Несмотря на то, что оценки являются тем же самым, использование ковариационной матрицы, а не необработанных данных не позволяет вам запросить уровень значения или баллы.

Используйте промакс. вращение.

[Lambda,Psi,T,stats,F] = factoran(X,2,'rotate','promax',...
                                      'powerpm',4);
inv(T'*T)                            % Estimated correlation of F, 
ans = 2×2

    1.0000   -0.6391
   -0.6391    1.0000

                                     % no longer eye(2)
Lambda*inv(T'*T)*Lambda'+diag(Psi)   % Estimated correlation of X
ans = 5×5

    1.0000   -0.5424   -0.6893    0.4309   -0.4167
   -0.5424    1.0000    0.8979   -0.8078    0.9328
   -0.6893    0.8979    1.0000   -0.7730    0.8647
    0.4309   -0.8078   -0.7730    1.0000   -0.8326
   -0.4167    0.9328    0.8647   -0.8326    1.0000

Постройте невращаемые переменные с наклонными наложенными осями.

invT = inv(T);
Lambda0 = Lambda*invT;
figure()
line([-invT(1,1) invT(1,1) NaN -invT(2,1) invT(2,1)], ...
     [-invT(1,2) invT(1,2) NaN -invT(2,2) invT(2,2)], ...
     'Color','r','linewidth',2)
grid on
hold on
biplot(Lambda0,'LineWidth',2,'MarkerSize',20)       
xlabel('Loadings for unrotated Factor 1')
ylabel('Loadings for unrotated Factor 2')

Постройте вращаемые переменные против наклонных осей.

figure()
biplot(Lambda,'LineWidth',2,'MarkerSize',20)

Синтаксис для передачи дополнительных аргументов к пользовательской функции вращения:

[Lambda,Psi,T] = ...
     factoran(X,2,'rotate',@myrotation,'userargs',1,'two');

Больше о

свернуть все

Модель факторного анализа

factoran вычисляет оценку наибольшего правдоподобия (MLE) матрицы факторных нагрузок Λ в модели факторного анализа

x=μ+Λf+e

где x является вектором наблюдаемых переменных, μ является постоянным вектором средних значений, Λ является постоянной d-by-m матрицей факторных нагрузок, f является вектором независимых, стандартизированных общих множителей, и e является вектором независимых специфических факторов. x, μ и e имеют длину d. f имеет длину m.

В качестве альтернативы модель факторного анализа может быть задана как

cov(x)=ΛΛT+Ψ

где Ψ=cov(e) d-by-d диагональная матрица определенных отклонений.

Советы

Наблюдаемые переменные данных

Переменные в наблюдаемой матрице данных X должно быть линейно независимым, т.е. cov(X) должен иметь полный ранг, для оценки наибольшего правдоподобия, чтобы успешно выполниться. factoran уменьшает оба необработанных данные и ковариационную матрицу к корреляционной матрице прежде, чем выполнить подгонку.

factoran стандартизирует наблюдаемые данные X обнулять среднее значение и модульное отклонение прежде, чем оценить загрузки lambda. Это не влияет на подгонку модели, потому что MLEs в этой модели являются инвариантными, чтобы масштабироваться. Однако lambda и psi возвращены в терминах стандартизированных переменных, т.е. lambda*lambda'+diag(psi) оценка корреляционной матрицы исходных данных X (несмотря на то, что не после наклонного вращения). Смотрите Факторные нагрузки Оценки и Графика и Пользовательскую Функцию Вращения.

Случай Хейвуда

Если элементы psi равны значению 'delta' параметр (т.е. они - по существу нуль), подгонка известна как случай Хейвуда, и интерпретация получившихся оценок проблематична. В частности, может быть несколько локальных максимумов вероятности, каждого с различными оценками загрузок и определенных отклонений. Случаи Хейвуда могут указать на сверхподбор кривой (т.е. m является слишком большим), но может также быть результат underfitting.

Вращение факторных нагрузок и баллов

Если вы явным образом не задаете вращения с помощью 'rotate' параметр, factoran вращает предполагаемые факторные нагрузки, lambda, и факторные баллы, F. Выходная матрица T используется, чтобы вращать загрузки, т.е.   lambda = lambda0*T, где lambda0 начальная буква (невращаемый) MLE загрузок. T ортогональная матрица для ортогональных вращений и единичная матрица ни для какого вращения. Инверсия T известен как первичную матрицу вращения оси, в то время как T самостоятельно связан со ссылочной матрицей вращения оси. Для ортогональных вращений эти два идентичны.

factoran вычисляет факторные баллы, которые вращались inv(T'), т.е.     F = F0 * inv(T'), где F0 содержит невращаемые прогнозы. Предполагаемая ковариация F inv(T'*T), который, для ортогонального или никакого вращения, единичная матрица. Вращение факторных нагрузок и баллов является попыткой создать более легко поддающуюся толкованию структуру в матрице загрузок после оценки наибольшего правдоподобия.

Ссылки

[1] Харман, H. H. Современный факторный анализ. 3-й Эд. Чикаго: нажатие Чикагского университета, 1976.

[2] Jöreskog, K. G. “Некоторые Вклады в Факторный анализ Наибольшего правдоподобия”. Psychometrika. Издание 32, Выпуск 4, 1967, стр 443–482.

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

Расширенные возможности

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