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 在旋轉因子 上有大載荷,因此我們有理由稱 為營養因子, 為滋味因子。旋轉效果一目了然。