zoukankan      html  css  js  c++  java
  • 主成分分析案例

    主成分分析案例——我国各地区普通高等教育发展水平综合评价

    主成分分析步骤

    • 对原始数据进行标准化处理

    • 计算相关系数矩阵

    • 计算特征值和特征向量

    • 选择 个主成分,进行综合评价

    分析

    clc,clear;
    load gj.txt;
    ​
    % 标准化数据 计算相关系数矩阵
    gj = zscore(gj);
    r = corrcoef(gj);
    ​
    % 利用相关系数矩阵进行主成分分析
    % vec1 的列是 r 的特向量,即主成分系数
    % lamda 为 r 的特征值
    % rate  为各个主成分的贡献率
    [vec1,lamda,rate] = pcacov(r);
    ​
    % 对贡献率累加求和
    contr = cumsum(rate);
    ​
    % 构造与 vec1 同维数的元素为+1,-1的矩阵
    f = repmat(sign(sum(vec1)),size(vec1,1),1);
    ​
    % 修改特征向量的正负号,使得每个特征向量的分量和为正
    vec2 = vec1.*f;
    ​
    % 选取 4 个主成分元素
    num = 4;
    ​
    % 计算各个主成分得分 30*10 10*4 -> 30 * 4
    % y1 y2 y3 y3 ———— 北京
    df = gj*vec2(:,1:num);      
    ​
    % 计算综合得分
    tf = df*rate(1:num)/100;
    ​
    % 排序
    [stf,ind] = sort(tf,'descend');
    stf = stf';         % 得分
    ind = ind';         % 名次

    看程序应该是目前学过的最复杂的MATLAB程序了。

    先看  vec1 列,他是主成分系数,也就是特征向量。

    也就是说前几个主成分分别为:

     

    从表中可以看出第一主成分主要反映了前6个指标,第二主成分主要反映第7,第8个指标,等等。

    然后是 rate 参数:

    他是各个主成分对综合评价的比例:

    累加求和,要选取的主成分可以辨别  %90 以上的数据样本,可知选4个主成分较好。

    可以构建主成分综合评价模型

     

    然后代入样本数据,看每个地区的得分情况。

    需要注意的是,后面的  y5 , y6 ,..., y10都不要算咯。

  • 相关阅读:
    CentOS 8.2上安装Cassandra Web部署
    CentOS 8.2上安装Apache Cassandra 3.11.9
    CentOS 8.2使用pgAdmin安装PostgreSQL 13.1
    windows 服务器报错处理,TLS升级为1.2
    网站跳转index.html
    安装fail2ban,防止ssh爆破及cc攻击
    服务器数据盘挂载
    2条命令在centos7.5中安装谷歌浏览器
    部署安装python3.7
    部署安装snort--入侵检测工具
  • 原文地址:https://www.cnblogs.com/TreeDream/p/8329808.html
Copyright © 2011-2022 走看看