主要内容

factoran

因子分析

描述

factoran计算因子分析模型中因子负荷矩阵Λ的最大似然估计(MLE)

x μ + Λ f + e

在哪里x是观测变量的向量,μ是一个常数向量的均值,Λ是一个常数d——- - - - - -因子负荷矩阵,f向量是独立的,标准化的公因式,和e是一个独立的特定因子向量。xμ,e每个都有长度df长度

或者,因子分析模型可以指定为

x Λ Λ T + Ψ

在哪里 Ψ e 是一个d——- - - - - -d特定方差的对角矩阵。

factoran和它的关系主成分分析,请参阅对考试成绩进行因素分析

例子

λ= factoran (X返回因子加载矩阵λ对于数据矩阵X常见的因素。

例子

λψ=因子an(X还返回特定方差的最大似然估计。

例子

λψT=因子an(X还返回——- - - - - -因子载荷旋转矩阵T

例子

λψT统计数据=因子an(X也返回结构统计数据包含与零假设H相关的信息0公因式的个数是

例子

λψT统计数据F=因子an(X还返回公共因子的预测(因子分数)。

例子

___= factoran (X名称,值对于前面语法中的任何输出参数,使用一个或多个名称-值对参数修改模型拟合和输出。例如,可以指定X数据是一个协方差矩阵。

例子

全部折叠

创建一些伪随机原始数据。

rng默认的%用于再现性N = 100;X1 = 5 + 3*rand(n,1);%因子1X2 = 20 - 5*rand(n,1);%因子2

从原始数据中创建六个数据向量,并添加随机噪声。

Y1 = 2*X1 + 3*X2 + randn(n,1);Y2 = 4*X1 + X2 + 2*randn(n,1);Y3 = X1 - X2 + 3*randn(n,1);Y4 = -2*X1 + 4*X2 + 4*randn(n,1);Y5 = 3*(X1 + X2) + 5*randn(n,1);Y6 = X1 - X2/2 + 6*randn(n,1);

从数据向量创建一个数据矩阵。

X = [y1, y2, y3, y4, y5, y6];

从噪声数据矩阵中提取这两个因子X使用factoran.显示输出。

M = 2;[lambda,psi,T,stats,F] =因子an(X,m);disp(λ)
0.8666 0.4828 0.8688 -0.0998 -0.0131 -0.5412 0.2150 0.8458 0.7040 0.2678 -0.0806 -0.2883
disp (psi)
0.0159 0.2352 0.7070 0.2385 0.4327 0.9104
disp (T)
0.8728 0.4880 0.4880 -0.8728
disp(统计)
Loglike: -0.0531 dfe: 4 chisq: 5.0335 p: 0.2839
disp (F (1:10)):
1.8845 -0.6568 -0.1714 -0.8113 -1.0534 2.0743 1.0390 -1.1784 0.4309 0.9907 -1.1823 0.6570 -0.2129 1.1898 -0.0844 -0.7421 0.5854 -1.1379 0.8279 -1.9624

查看数据的相关矩阵。

corrX = (X)
corrX =6×61.0000 0.7047 -0.2710 0.5947 0.7391 -0.2126 0.7047 1.0000 0.0203 0.1032 0.5876 0.0289 -0.2710 0.0203 1.0000 -0.4793 -0.1495 0.1450 0.5947 0.1032 -0.4793 1.0000 0.3752 -0.2134 0.7391 0.5876 -0.1495 0.3752 1.0000 -0.2030 -0.2126 0.0289 0.1450 -0.2134 -0.2134 -0.2030 1.0000

比较corrX返回的对应值factoranLambda * Lambda ' + diag(psi)

C0 = lambda*lambda' + diag(psi)
C0 =6×61.0000 0.7047 -0.2726 0.5946 0.7094 -0.2091 0.7047 1.0000 0.0426 0.1023 0.5849 -0.0413 -0.2726 0.0426 1.0000 - 0.605 -0.1542 0.1571 0.5946 0.1023 - 0.605 1.0000 0.3779 -0.2611 0.7394 0.5849 -0.1542 0.3779 1.0000 -0.1340 -0.2091 -0.0413 0.1571 -0.2611 -0.1340 1.0000

factoran获得λ而且ψ与原始数据的相关矩阵紧密对应。

不使用旋转查看结果。

[lambda,psi,T,stats,F] =因子an(X,m,“旋转”“没有”);disp(λ)
0.9920 0.0015 0.7096 0.5111 -0.2755 0.4659 0.6004 -0.6333 0.7452 0.1098 -0.2111 0.2123
disp (psi)
0.0159 0.2352 0.7070 0.2385 0.4327 0.9104
disp (T)
1 0 0 1
disp(统计)
Loglike: -0.0531 dfe: 4 chisq: 5.0335 p: 0.2839
disp (F (1:10)):
1.3243 1.4929 -0.5456 0.6245 0.0928 -2.3246 0.3318 1.5356 0.8596 -0.6544 -0.7114 -1.1504 0.3947 -1.1424 -0.4358 0.6065 -0.0444 1.2789 -0.2350 2.1169

的协方差矩阵计算因子X

X2 = cov(X);[lambda2,psi2,T2,stats2] = factoran(X2,m,“Xtype”协方差的“脑袋”, n)
lambda2 =6×20.8666 0.4828 0.8688 -0.0998 -0.0131 -0.5412 0.2150 0.8458 0.7040 0.2678 -0.0806 -0.2883
psi2 =6×10.0159 0.2352 0.7070 0.2385 0.4327 0.9104
T2 =2×20.8728 0.4880 0.4880 -0.8728
stats2 =带字段的结构:Loglike: -0.0531 dfe: 4 chisq: 5.0335 p: 0.2839

结果与原始数据相同,除了factoran无法计算因子得分矩阵F对于协方差数据。

加载样例数据。

负载carbig

定义变量矩阵。

X =[加速度、排量、马力、MPG重量];X = X(all(~isnan(X),2),:);

对于有两个共同因素的因素分析,使用最小均方误差预测估计因素负荷。

[Lambda,Psi,T,stats,F] =因子an(X,2,“分数”“回归”);发票(T ' * T);F的估计相关矩阵,==眼(2)Lambda*Lambda' + diag(Psi);估计相关矩阵λ*发票(T);%取消旋转负载F * T ';取消旋转因子分数

创建两个因素的双线图。

biplot(λ,“线宽”2,“MarkerSize”, 20)

图中包含一个轴对象。axis对象包含11个line类型的对象。

使用协方差(或相关)矩阵估计因子负荷。

[Lambda,Psi,T] = cov(X),2,“Xtype”协方差的
λ=5×2-0.2432 -0.8500 0.8773 0.3871 0.7618 0.5930 -0.7978 -0.2786 0.9692 0.2129
ψ=5×10.2184 0.0804 0.0680 0.2859 0.0152
T =2×20.9476 0.3195 0.3195 -0.9476

(你可以用corrcoef (X)而不是X (X)来创建的数据factoran)。虽然估计是相同的,但使用协方差矩阵而不是原始数据会阻止您要求得分或显著性水平。

使用promax旋转。

[Lambda,Psi,T,stats,F] =因子an(X,2,“旋转”的电子产品品牌“权力”4);发票(T ' * T)%估计F的相关性,不再是眼(2)
ans =2×21.0000 -0.6391 -0.6391 1.0000
λ*发票(T ' * T *λ+诊断接头(Psi)X的估计相关性
ans =5×51.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;图()行([-invT (1, 1) invT(1, 1)南-invT (2, 1) invT(2, 1)]。...[-invT(1,2) invT(1,2) NaN -invT(2,2) invT(2,2)],,...“颜色”“r”“线宽”, 2)网格持有biplot (Lambda0“线宽”2,“MarkerSize”(20)包含“未旋转因子1的负载”) ylabel (“未旋转因子2的负载”

图中包含一个轴对象。axis对象包含11个line类型的对象。

将旋转后的变量画在斜轴上。

图()biplot(λ,“线宽”2,“MarkerSize”, 20)

图中包含一个轴对象。axis对象包含11个line类型的对象。

输入参数

全部折叠

数据,指定为n——- - - - - -d矩阵,其中每一行都是一个观察值d变量。

数据类型:

公因数的个数,指定为正整数。

例子:3.

数据类型:

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:lambda = factoran(X,m,'Start',10,'Scores','Thomson')指定使用10的特定方差的起始点和汤姆森方法来预测因素得分。

输入数据类型X,指定为逗号分隔的对,由“Xtype”和以下其中之一:

  • “数据”- - - - - -X是原始数据。

  • 协方差的- - - - - -X是一个正定的协方差或相关矩阵。

例子:“Xtype”、“协方差的

数据类型:字符|字符串

预测因子分数的方法,指定为逗号分隔的对,由“分数”和以下其中之一:

  • “wls”或等价的“Bartlett”加权最小二乘估计处理F作为固定

  • “回归”或等价的“汤姆森”-最小均方误差预测,相当于山脊回归

例子:“分数”、“回归”

数据类型:字符|字符串

特定方差的起始点ψ在最大似然优化中,指定为由逗号分隔的对组成“开始”和以下其中之一:

  • “Rsquared”-选择起始矢量作为比例因子乘以诊断接头(发票(corrcoef (X)))(默认)。例如,请参见Jöreskog[2]

  • “随机”——选择d在区间[0,1]上的均匀分布值。

  • 正整数-执行给定数量的最大似然拟合,每个初始化的方式相同“随机”factoran返回具有最高可能性的拟合。

  • 矩阵drows -为指定矩阵的每一列执行一个最大似然拟合。factoran初始化的值进行优化列。

例子:‘开始’,5

数据类型:|字符|字符串

方法用于旋转因子加载和分数,指定为由逗号分隔的对组成“旋转”和下表中的值之一。属性的附加名-值对参数来控制旋转rotatefactors函数,如表中所示。详细信息请参见rotatefactors

价值 描述

“没有”

不进行旋转

“equamax”

的特殊情况“orthomax”旋转。使用“正常化”“reltol”,“麦克斯特”参数来控制旋转的细节。

“orthomax”

正交旋转,使基于载荷方差的准则最大化。使用多项式系数的“正常化”“reltol”,“麦克斯特”参数来控制旋转的细节。

“parsimax”

正交旋转的特殊情况。使用“正常化”“reltol”,“麦克斯特”参数来控制旋转的细节。

“模式”

执行倾斜旋转(默认值)或正交旋转,以最佳匹配指定的模式矩阵。使用“类型”参数来选择旋转类型。使用“目标”参数指定模式矩阵。

“普罗克汝斯忒斯之

执行倾斜旋转(默认值)或正交旋转,以最佳地匹配最小二乘意义上的指定目标矩阵。使用“类型”参数来选择旋转类型。使用“目标”参数指定目标矩阵。

的电子产品品牌

对所确定的目标矩阵执行斜凸点旋转factoran作为正正交解的函数。使用“权力”参数指定用于创建目标矩阵的指数。因为的电子产品品牌使用“orthomax”在内部,还可以指定应用于的参数“orthomax”

“quartimax”

的特殊情况“orthomax”旋转。使用“正常化”“reltol”,“麦克斯特”参数来控制旋转的细节。

“最大方差法”

的特殊情况“orthomax”旋转(默认)。使用“正常化”“reltol”,“麦克斯特”参数来控制旋转的细节。

函数处理

窗体的旋转函数的函数句柄

[B,T] =我的旋转(A,…)

在哪里一个是一个d——- - - - - -非旋转因子载荷矩阵,B是一个d——- - - - - -旋转载荷矩阵,和T是对应的——- - - - - -旋转矩阵。

使用factoran论点“UserArgs”将附加参数传递给此旋转函数。看到自定义旋转函数

例子:(λ,psi, T) = factoran (X, m,“旋转”,“电子产品品牌”,“权力”,5,麦克斯特,100)

数据类型:字符|字符串|function_handle

的下界ψ参数,指定为逗号分隔的对,由“δ”和0到1之间的标量值(0 <δ< 1)。

例子:0.02

数据类型:

最大似然优化的选项,指定为逗号分隔的对,由'OptimOpts”这个结构是由statset.你可以进入statset(“factoran”)对于选项列表,下表中也描述了这些选项。

字段名称(statset论点) 意义 {默认值}
“显示”

算法显示的信息量

  • {‘off’}—不显示任何信息

  • “最后一次”—显示最终输出

  • “通路”-对某些功能的命令窗口显示迭代输出;否则显示最终输出

MaxFunEvals

允许的目标函数计算的最大数量

正整数,{400}
麦克斯特

允许的最大迭代次数

正整数,{100}
TolFun

目标函数值的终止容差。当连续函数值小于时,解算器停止TolFun分开。

积极的标量,{1 e-8}
TolX

终止公差参数。当连续的参数值小于时,求解器停止TolX分开。

积极的标量,{1 e-8}

例子:statset(“显示”、“iter”)

数据类型:结构体

用于估计的观察数X,指定为逗号分隔的对,由“脑袋”一个正整数。脑袋仅适用于以下情况Xtype协方差的.指定“脑袋”用于获取统计数据输出结构字段chisq而且p

例子:50

数据类型:

输出参数

全部折叠

因子加载,返回为d——- - - - - -矩阵。d数据的列数是矩阵吗X,第二个输入参数是factoran

(i, j)的第Th元素λ的系数或载荷是j第Th因子变量。默认情况下,factoran调用函数rotatefactors来旋转估计的因子负荷“最大方差法”选择。有关旋转的信息,请参见因子负荷和分数的轮换

具体方差,返回为ad——- - - - - -1向量。d数据的列数是矩阵吗X.的条目ψ是最大似然估计。

因子负载旋转,返回为——- - - - - -矩阵。第二个输入参数是factoran.有关旋转的信息,请参见因子负荷和分数的轮换

关于公共因素的信息,作为结构返回。统计数据包含与零假设H相关的信息0公因式的个数是

统计数据包含以下字段。

描述
loglike

最大化对数似然值

教育部

误差自由度=((d-m)²- (d+m))/2

chisq

零假设的近似卡方统计量

p

零假设的右尾显著性水平

factoran不计算chisq而且p领域,除非教育部是正的,所有的特定方差估计ψ都是积极的(见海伍德案件).如果X是协方差矩阵吗factoran计算chisq而且p字段,则还必须指定“脑袋”名称-值对参数。

因子分数,也称为公共因子的预测,作为一个返回n——- - - - - -矩阵。n数据矩阵中的行数是多少X,第二个输入参数是factoran

请注意

如果X是协方差矩阵(Xtype协方差的),factoran无法计算F

factoran旋转F使用与。相同的标准λ.有关旋转的信息,请参见因子负荷和分数的轮换

更多关于

全部折叠

海伍德案件

If元素ψ等于的值δ参数(也就是说,它们本质上是零),这种拟合被称为海伍德情况,对结果估计的解释是有问题的。特别是,可能存在多个局部似然最大值,每个都有不同的负荷估计和特定方差。海伍德情况可表示过拟合(太大),但也可能是欠拟合的结果。

因子负荷和分数的轮换

方法显式指定不进行旋转“旋转”名值对参数,factoran旋转估计的因子负载λ因素得分F.输出矩阵T用于旋转负载,即,= lambda0*T,在那里lambda0为加载的初始(未旋转)MLE。T是正交旋转的正交矩阵,没有旋转的单位矩阵。的倒数T称为主轴旋转矩阵,而T本身与参考轴旋转矩阵有关。对于正交旋转,两者是相同的。

factoran计算已旋转的因子分数发票(T '),也就是说,F = F0 * inv(T'),在那里F0包含未旋转的预测。的估计协方差F发票(T ' * T),这是正交或不旋转的单位矩阵。因子负荷和分数的旋转是试图在最大似然估计后创建一个更容易在负荷矩阵中解释的结构。

自定义旋转函数

向用户定义的旋转函数传递附加参数的语法是:

(λ,Psi, T) =...factoran (X, 2,“旋转”@myrotation,“UserArgs”, 1“两个”);

参考文献

哈曼,哈里·霍勒斯。现代因素分析.第三版,芝加哥:芝加哥大学出版社,1976年。

[2] Jöreskog, K. G.“最大似然因子分析的一些贡献。”心理测量学32岁的没有。4(1967年12月):443-82。https://doi.org/10.1007/BF02289658

[3]劳利、d.n.和a.e.麦克斯韦。因子分析是一种统计方法.第二版。纽约:美国爱思唯尔出版公司,1971年。

扩展功能

版本历史

R2006a之前介绍

Baidu
map