zoukankan      html  css  js  c++  java
  • 因子分析——应用

    因子分析——应用

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

     

  • 相关阅读:
    WinDbg符号表设置的基础
    Mysql的用户管理与授权
    Django的models由数据库表生成
    Spring框架第一天(搭建项目)
    Python中的参数
    Java集合
    Mysql的锁
    # django通过操作admin对原有的数据库进行操作
    数据库连接池与SQL工具类
    MySql的事务及数据的导入导出
  • 原文地址:https://www.cnblogs.com/TreeDream/p/8337765.html
Copyright © 2011-2022 走看看