数学建模多元分析实例

原文:http://blog.csdn.net/qq_34861102/article/details/77101690


  • 聚类分析

    • R型聚类法
    • Q型聚类法
    • 相关命令

      • pdist

        • Y = pdist(X,'metric')

          • 矩阵X 必选,'metric'指定计算矩阵中对象的距离的方式
          • pdist(X,'minkowski',p) p在闵氏距离计算矩阵中用到的指数值
      • linkage
        • Z = linkage(Y,'method')

          • Y 上面生成的距离(必选),method按照指定的算法生成聚类树(可选)
      • cluster
        • T = cluster(Z,'cutoff',c)

          • 创建聚类
      • zsore
        • zsore(X)
        • 标准化处理
      • dendrogram
        • H = dendrogram(Z,P)
        • 画聚类树状图,其中P为节点数,默认是30
      • clusterdata
        • 等价于前三个命令
      • squareform
        • pdist转化为方阵
    • 实例

      a = [1,0;1,1;3,2;4,3;2,5];
      y = pdist(a,'cityblock');
      yc = squareform(y);
      z = linkage(y);
      dendrogram(z);
      T = cluster(z,'maxclust',3)
  • 主成分分析(降低维度)

    • 使用步骤

      • 对原始数据进行标准化处理
      • 计算相关系数矩阵R
      • 计算特征值和特征向量
      • 选择p个主成分,计算综合评价值
    • 使用实例:

      • %获取数据
        gj = load('data.txt');
        %数据标准化
        gi = zscore(gj);
        %计算相关系数矩阵
        r = corrcoef(gj);
        %x的列为r的特征向量,即主成分的系数
        %y为r的特征值
        %z为各个主成分的贡献率
        [x,y,z] = pcacov(r);
        %构造与x矩阵同维数的元素为+1或-1的矩阵
        f = repmat(sign(sum(x)),size(x,1),1);
        %使得每个特征向量的分量和为正
        x = x.*f;
        %选取主成分的个数
        num = 3;
        %计算各个主成分的得分
        df = gj*x(:,1:num);
        %计算综合得分
        tf = df*z(1:num)/100;
        [stf,ind] = sort(tf,'descend');
        stf = stf';
        ind = ind';
  • 因子分析

    • 使用步骤

      • 对原始数据进行标准化处理
      • 计算相关系数矩阵R
      • 计算初等荷载矩阵
      • 选择p个主因子
    • 使用实例

      • %获取数据
        gj = load('data.txt');
        %数据标准化
        gi = zscore(gj);
        %计算相关系数矩阵
        r = corrcoef(gj);
        %x的列为r的特征向量,即主成分的系数
        %y为r的特征值
        %z为各个主成分的贡献率
        [x,y,z] = pcacov(r);
        %构造与x矩阵同维数的元素为+1或-1的矩阵
        f = repmat(sign(sum(x)),size(x,1),1);
        %使得每个特征向量的分量和为正
        x = x.*f;
        %初等荷载矩阵
        f2 = repmat(sqrt(y)',size(x,1),1);
        a = x.*f2;
        %主因子个数
        num = input('请选择主因子的个数:');
        am = a(:,[1,num]);
        [b,t] = rotatefactors(am,'method','varimax');
        bt = [b,a(:,[num+1:end])];
        %计算共同度
        degree = sum(b.^2,2);
        %计算因子贡献
        contr = sum(bt.^2);
        %计算因子贡献率
        rate = contr(1:num)/sum(contr);
        %计算得分函数的系数
        coef = inv(r)*b;
        %计算得分
        score = x*coef;
  • 判别分析(判别个体所属类别)

    • 实例:

      • a = [9 7 8 8 9 8 7 4 3 6 2 1 6 8 2;8 6 7 5 9 9 5 4 6 3 4 2 4 1 4;7 6 8 5 3 7 6 4 6 3 5 2 5 3 5];
        train = a(:,[1:12])';
        sample = a(:,[13:end])';
        group = [ones(7,1);2*ones(5,1)];
        %马氏距离分类
        [x1,y1] = classify(sample,train,group,'mahalanobis');
        %线性分类
        [x2,y2] = classify(sample,train,group,'linear');
        %二次分类
        [x3,y3] = classify(sample,train,group,'quadratic');
  • 典型相关分析

    • x = load x.txt;
      y = load y.txt;
      p = size(x,2);
      q = size(y,2);
      %标准化数据
      x = zscore(x);
      y = zscore(y);
      %观测数据的个数
      n = size(x,1);
      %a1,b1返回的是典型变量的系数。r返回的是典型相关系数
      %u1,v1返回的是典型变量的值。status返回的是假设检验的一些统计量的值
      [a1,b1,r,u1,v1,status] = cononcorr(x,y);
      %修正每一列的正负号,使系数和为正
      a = a1.*repmat(sign(sum(a1)),size(a1,1),1);
      b = b1.*repmat(sign(sum(b1)),size(b1,1),1);
      u = u1.*repmat(sign(sum(u1)),size(u1,1),1);
      v = v1.*repmat(sign(sum(v1)),size(v1,1),1);
      %计算x,u y,v x,v x,u的相关系数
      x_u_r = x'*u/(n-1);
      y_v_r = y'*v/(n-1);
      x_v_r = x'*v/(n-1);
      y_u_r = y'*u/(n-1);
      %X组原始变量被u_i解释的方差比例
      %方差累积比例
      ux = sum(x_u_r.^2)/p;
      ux_cum = cumsum(ux);vx = sum(x_v_r.^2)/p;
      vx_cum = cumsum(vx);uy = sum(y_u_r.^2)/q;
      uy_cum = cumsum(uy);vy = sum(y_v_r.^2)/q;
      vy_cum = cumsum(vy);
      %典型相关系数的平方
      val = r.^2;
  • 对应分析(Q型和R型的结合)

    a = [543 342 453 609 261 360 243 183;245 785 630 597 311 233 108 69;300 200 489 740 365 324 327 228;401 396 395 693 350 309 263 143;147 117 410 726 366 447 329 420];
    %行和
    a_i_dot = sum(a,2);
    %列和
    a_dot_j = sum(a);
    %数据和
    T = sum(a_i_dot);
    %对应矩阵
    P = a/T;
    %边缘分布
    r = sum(P,2);
    c = sum(P);
    %计算行轮廓分布阵
    Row_prifile = a./repmat(sum(a,2),1,size(a,2));
    %标准化数据阵
    B = (P - r*c) ./ sqrt((r*c));
    %对标准化后的数据阵作奇异值分解
    [u s v] = svd(B,'econ');
    %修改特征向量的符号矩阵
    w1 = sign(repmat(sum(v),size(v,1),1));
    %使得v中每一个行向量的分量和大于0
    w2 = sign(repmat(sum(v),size(u,1),1));
    %修改特征向量的正负号
    vb = v.*w1;
    ub = u.*w2;
    %计算惯量
    lamda = diag(s).^2;
    %计算卡方统计量的分解
    ksi2square = T*(lamda);
    %计算总卡方统计量
    T_ksi2square = sum(ksi2square);
    %计算贡献率
    con_rate = lamda/sum(lamda);
    %计算累积贡献率
    cum_rate = cumsum(con_rate);
    %求加权特征向量
    beta = diag(r.^(-1/2))*ub;
    %求行轮廓坐标
    G = beta*s;
    %求加权特征向量
    alpha = diag(c.^(-1/2))*vb;
    %求列轮廓坐标
    F = alpha*s;
    %样本点的个数
    num1 = size(G,1);
    %行坐标的取值范围
    rang = minmax(G(:,[1,2])');
    %画图调整
    delta = (rang(:,2)-rang(:,1))/(4*num1);
    chrow = {'A','B','C','D','E'};
    strcol = {'少男','少女','白领','工人','农民','士兵','主管','教授'};
    plot(G(:,1),G(:,2),'*','Color','k','LineWidth',1.3);
    text(G(:,1),G(:,2)-delta(2),chrow);
    hold on;
    plot(F(:,1),F(:,2),'H','Color','k','LineWidth',1.3);
    text(F(:,1)-delta(1),F(:,2)+1.2*delta(2),strcol);
    xlabel('dim1');
    ylabel('dim2');
  • 多维标度分析

    • (有n个由多个指标反映的客体,不清楚反映客体的指标个数)
    • 利用城市之间的距离来绘制地图
    • 实例代码
     D = [0 1 sqrt(3) 2 sqrt(3) 1 1; zeros(1,2) 1 sqrt(3) 2 sqrt(3) 1; zeros(1,3) 1 sqrt(3) 2 1; zeros(1,4) 1 sqrt(3) 1; zeros(1,5) 1 1;zeros(1,6) 1;zeros(1,7)];
    d = D + D';
    [y,eigvals] = cmdscale(d);
    plot(y(:,1),y(:,2),'o','Color','k','LineWidth',1.3)

数学建模多元分析实例相关推荐

  1. 数学建模预测模型实例(一)---大学生体测数据模型

    数学建模预测模型实例–大学生体测数据模型 数学建模预测模型实例(一)-大学生体测数据模型 数学建模预测模型实例(二)-表白墙影响力量化模型 python预测算法-线性回归 建立模型的目的 本篇文章中, ...

  2. 数学建模预测模型实例(三)---双色球概率预测模型

    双色球概率预测模型 数学建模预测模型实例(一)-大学生体测数据模型 数学建模预测模型实例(二)-表白墙影响力量化模型 python预测算法-线性回归 双色球概率预测模型 前言 最近新晋彩民佩瑞对于双色 ...

  3. 数学建模预测模型实例(四)---食堂菜品推荐系统

    数学建模预测模型实例(四)-食堂菜品推荐系统 数学建模预测模型实例(一)-大学生体测数据模型 数学建模预测模型实例(二)-表白墙影响力量化模型 python预测算法-线性回归 数学建模预测模型实例(三 ...

  4. 数学建模——多元分析、综合评价与决策

    一.多元分析 聚类分析 最短距离法+聚类图 [1]Q型聚类(样本) (1)样本之间 闵氏距离: 注意量纲要相同,避免多重相关性 马氏距离: 其中,是p维总体Z的协方差矩阵 不受量纲的影响 (2)聚类之 ...

  5. 资料分享 | 数学建模竞赛备战大全

    全世界只有3.14 % 的人关注了 青少年数学之旅 目前针对数学建模的认知,绝大部分人还停留在数学建模竞赛阶段,并不知道数学建模是数据领域非常重要的一种方法. 数学建模涉及的内容广泛,比如碎纸片问题中 ...

  6. python dendrogram_【聚类分析】《数学建模算法与应用》第十章 多元分析 第一节 聚类分析 python实现...

    第十章 多元分析 第一节 聚类分析 介绍 这里是司守奎教授的<数学建模算法与应用>全书案例代码python实现,欢迎加入此项目将其案例代码用python实现 GitHub项目地址:Math ...

  7. 双层玻璃窗的功效模型matlab,数学建模实例双层玻璃的功效

    <数学建模实例双层玻璃的功效>由会员分享,可在线阅读,更多相关<数学建模实例双层玻璃的功效(4页珍藏版)>请在人人文库网上搜索. 1.数学建模入门双层玻璃窗的功效双层玻璃的功效 ...

  8. 数学建模中的ARMA模型和ARIMA模型的使用实例(含代码)

    数学建模中的ARMA模型和ARIMA模型的使用实例(含代码) 原文地址:http://blog.csdn.net/qq_34861102/article/details/77659399 对于较少时间 ...

  9. 一个实例用matlab分别画出拟合和插值,数学建模培训之四--拟合与插值专题(hzd).doc...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp高等教育&nbsp>&nbsp微积分 数学建模培训之四--拟合与插值专题(hzd).doc6 ...

  10. 饿狼追兔的可视化matlab,高阶常微分方程模型饿狼追兔问题数学建模实例

    高阶常微分方程模型饿狼追兔问题数学建模实例 现有一只兔子.一匹狼,兔子位于狼的正西110米处,假设兔子与狼同时发现对方并一起起跑,兔子往正北70米处的巢穴跑,而狼在追兔子.已知兔子.狼是匀速跑且狼的速 ...

最新文章

  1. 订单管理之获取订单表表列表数据
  2. 畅销书《简明的TensorFlow2》作者李卓桓开讲啦!
  3. python函数详解
  4. 韩顺平php教程笔记,PHP笔记,韩顺平php笔记_PHP教程
  5. 【Redis】Redis Bitmaps
  6. Control Registers(CR0, CR1, CR2, CR3, and CR4)
  7. 《C++游戏编程入门(第4版)》——1.9 本章小结
  8. 53. 使 Ajax 可缓存(14)
  9. 如何制作HTML网页设计【体育运动主题网站——中国篮球NBA】
  10. [Lonlife1031]Bob and Alice are eating food(递推,矩阵快速幂)
  11. Spring Boot 大文件上传(断点上传)、服务端分片下载、客户端分片下载(断点下载)
  12. 【python】类型约束(类型提示的作用)
  13. 远程桌面服务器零售授权许可证,由于没有远程桌面授权服务器可以提供许可证...
  14. 4)自适应滤波(一)[LMS算法]
  15. 计算机专业烧钱妈,“最烧钱”的3类大学专业排行:妈妈,我在学校真的什么都没干...
  16. 信号完整性分析系列2——什么是信号完整性及何时遇到
  17. 如何在群里引流?如何通过别人的群引流?建一个群怎么快速裂变引流
  18. Findora区块链培训课程重磅上线!(附视频)
  19. 浙江大学计算机博士申请考核,考博经验 | 2020年浙江大学博士申请考核经验分享...
  20. 成功需要“十商”(网络转载)

热门文章

  1. Install Anjuta
  2. 中小型工厂如何玩转ERP生产管理系统
  3. 将公式直接转化为Latex代码的神器-snip
  4. 3DGIS地理信息系统设计方案
  5. 工商管理专业知识与实务(初级)【7】
  6. 将excel单元格内的中英文分离
  7. Tbase 源码 (八)
  8. Android Binder -- AIDL 原理
  9. Lync 2010升级到Lync 2013POC计划-过程!
  10. asp.net+扫描仪+图片上传