因子分析——应用

因子分析——应用

P248

在一项消费者爱好的研究中,随机邀请了一些顾客对某种新食品进行评价,共有5项指标(变量1-5)味道,价格,风味,适于快餐,补充能量。得到他们的相关系数矩阵。

求出载荷矩阵:

clc,clear;
clc,clear
r=[1 0.02 0.96 0.42 0.01
   0.02 1 0.13 0.71 0.85
   0.96 0.13 1 0.5 0.11
   0.42 0.71 0.5 1 0.79
   0.01 0.85 0.11 0.79 1];
[vec1,val,rate] = pcacov(r);
f1 = repmat(sign(sum(vec1)),size(vec1,1),1);
vec2 = vec1.*f1;
f2 = repmat(sqrt(val)',size(vec2,1),1);
a = vec2.*f2;

 

其实从相关系数矩阵中就可以看出,变量1,3之间联系很大,变量2,5之间联系很大。于是可以期望,因子模型可以取2个,至多3个公共因子。

% 公共因子个数
num = 2;
​
% 累积贡献率
con = cumsum(rate(1:num));
​
% 提出两个因子的载荷矩阵
a1 = a(:,[1:num]);
​
% 没有旋转的特殊方差
tcha = diag(r-a1*a1');
% 旋转载荷矩阵,B 为旋转因子载荷矩阵,T 为正交矩阵
[B,T] = rotatefactors(a1,'method','varimax');
​
% 求因子载荷矩阵a1的共同度
gtd1 = sum(a1.^2,2);
​
% 求因子载荷矩阵B的共同度
gtd2 = sum(B.^2,2);
​
% 分别计算两个因子载荷矩阵对应的方差贡献率
w = [sum(a1.^2),sum(B.^2)];

对此整理出表格:

 

从载荷矩阵来看,5个变量的贡献值都比较大,表明了这两个公共因子的确很好的解释了每个变量方差的绝大部分。

很明显,变量2,4,5在旋转因子 上有大载荷,变量 1 ,3 在旋转因子 上有大载荷,因此我们有理由称 为营养因子, 为滋味因子。旋转效果一目了然。

 

原文地址:https://www.cnblogs.com/TreeDream/p/8337765.html