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 在旋转因子 上有大载荷,因此我们有理由称 为营养因子, 为滋味因子。旋转效果一目了然。