主成分分析法_数学建模 || 葡萄酒的评价(1)主成分分析法

首先要说一下,这篇文章我在其他的平台发过,也是本人亲自写的,如果大家觉得眼熟的话放弃轻松,没有抄袭,主要是因为与我这 “葡萄酒的评价” 题目成系列了,因此在这里再把这个贴出来。


2012 年 A 题葡萄酒的评价,关于评价指标体系的构建,由于变量过多可以使用主成分分析法,对变量进行“降维”处理,使得分析计算结果得到简化。大家今天先学习方法吧,各种方法介绍全了会专门有一篇讲解这些方法在葡萄酒评价题目中的使用。

1

主成分分析法原理

主成分分析法:核心思想是根据原始数据的 n 个变量,重新组合成k个变量,而且这 k 个变量能最大程度的涵盖原始数据的信息。

依据:某一维的方差越大,其所包含的信息越多,也就是说越重要。转换坐标系的方法,可以将二维数据降为一维数据,将三维数据降为二维数据。

主成分分析法,可以通过线性变换的方法将多个变量组合成几个少数的重要变量的多元统计方法。在数学上,这种思想是“降维”。简单的描述一下计算的过程,假设现在有 20 个变量,通过相关性计算,将 20 个变量通过线性表示的方法简化成 4 个新变量,而整理出的4个新变量包含了原来 20  个变量的大部分信息。这句话包含了两个比较重要的点。第一点是整理出出来的是 4 个新变量,也有可能是在 20 个变量中选择出 4 个比较重要的变量。第二点是包含了原变量的大部分信息。而后就可以使用这 4 个新变量进行打分评价,主成分分析法最重要的作用是用于评价。现在可能就会有这么一个问题,既然 20 个变量都有,为什么不直接使用 20 个量进行评价,而是将20个变量简化成了4个新变量。这里就涉及到表述信息的重复。最初的20个变量,可能是从研究主体上直接提取到20个原始数据,可能有两个量之间包含的信息重复,当然也有不同的信息之处。如果第20个变量所展现出来的信息完全可以由其他的19个变量线性表示,那第20个变量的存在完全是没有意义的。这就是在处理中简化变量个数的意义。

新的主成分与原始变量具有不可分割的联系,如下:

1、主成分保留了原始变量绝大多数信息。

2、主成分的个数大大少于原始变量的数目。

3、各个主成分之间互不相关。

4、每个主成分都是原始变量的线性组合。

然后给出一个应用的例子,美国统计学家stone研究国民经济的发展状况,他利用1929年—1938年的的数据得到了17个指标变量,包括雇主补贴,公共支出,利息等,通过主成分分析法,将17个变量简化成了三个新变量,依据自身经济学的背景知识,将三个每变量分别定名为:总收入,总收入变化量,经济发展趋势。这也是主成分分析法需要注意的一个问题,你需要根据背景知识将新变量进行重新命名,这个对于大部分人是很难做到的,也是一个使用受限的一个地方。

2

主成分分析的计算及特点

主成分分析的步骤:

1、初始变量

2、根据初始变量特性选择使用协方差矩阵还是相关矩阵求主成分。

3、计算协方差矩阵或相关矩阵的特征值和特征向量。

①解特征方程,常用雅可比法求出特征值,并使其按大小顺序排列

②分别求出对应于特征值的特征向量

③ 计算主成分贡献率及累计贡献率

④ 计算主成分载荷

⑤ 各主成分的得分

4、确定主成分个数

5、对主成分的含义做解释。

主成分分析的特点:

1、变量间需要有较强相关性,保证能起到很好的降维的效果。

2、新的指标体系无法包含原数据的所有信息。

3、计算前需要进行标准化处理,具体的含义会发生变化,自己进行指标命名时会发生较大的困难。

3

主成分分析的案例分析

一、从将Excel中的数据导入spss

95b016e67084f735152a23a2cf646c38.png

1、启动spss软件

2、操作一下步骤

50b23e40381449d51529404b527a4863.png

3、注意修改文件类型,找到你的文件

6d5bce6f113ad8ea47a6e9c2e7e58654.png

4、属性修改

010852292c33a058cdd150ce48a60f6c.png

5、完成导入

d39a451ab09038c37f33731ce7dbfa88.png

二、主成分分析步骤

1、如下操作,降维

a472e9f6ac22aa477350883cea54a85a.png

2、将左侧的变量导入到右侧,修改“描述、提取、得分”三项

7fe922e46fb2ac442635275b9381f122.png

3、修改三项

#描述:

128dda6e2371d849bec1fb112f4d462e.png

#提取,选中比较直观的碎石图

a4b7841bffa44c4fb0b7259de1d2f873.png

#得分,选中得分系数矩阵,并点击继续

efb1772c7d41b88540cdc36734adfe74.png

4、回到初始的界面,点击确定,开始计算

7bf88d0ea5424f341f1cbcf4c6750894.png

三、计算结果的保存

1、右击,选择导出

905fae8c02d1ed5b212d05c635a10a56.png

2、命名,确定即可

de3a37c22866cc419160b0c2610c2941.png

3、在word里可以直接复制分析出来的了

4

主成分分析的计算结果分析

计算结果是很多的图表,这也是说这是个傻瓜软件的原因,通过操作得到这些图表的过程是很简单的,但是能把这些图表分析清楚需要你有一定的统计学的知识背景。原始数据如下:

a1f96964bfef7fb2b5615d95ab1a7f37.png

1、相关系数矩阵

a0f7d120053c5f7bd5ffe3bd7559a614.png

相关系数矩阵能表示任意两个指标之间的关系( spss 中,0.01,它只写个 .01),比如 GDP 跟 GDP 相关性,自身与自身的相关性是1了; GDP 与工业增加值相关性为 0.967 ,大于0.9的数,表示相关性程度已经非常强了。

2、总方差解释

89853c2f603a4f5c53fb932beebb3485.png

总方差解释图表是主成分分析中最重要的一个表格。在这个案例分析汇总,主成分是两个,第一主成分占比重 72.205% (可以这么理解),第二主成分占比重 12.346% ,这两个主成分达到 85.551% ,超过了 80% ,可以说用这两个指标评价各省份的经济完全可以代替原来的10个指标。碎石图原理基本相同。

e5cb7e9c8bea6ea98090159c6f0204cd.png

3、系数获取

系数指的是在获得两个主成分后,用 10 个原变量线性表示新的 2 个主变量的过程, spss 软件给出的“成分得分系数矩阵”中可以直接得到系数。

2d0b6980fce7e98bd4e3a8393f6fc0df.png

十个变量的位置大家摆清楚,通过以上表格得到这个线性表示的方程,但是大家一定要清楚,由新求出来的 2 个主成分表示总得分的时候一定记得,利用主成分各自占的比重重新求,而不是原来的简单的权重,从下边公式中看的比较清楚,直接看下边的图片吧。

d5cda44561d15c5b357791766d50d47e.png

4、计算得分

计算的得分过程也是有很多技巧的,有的人用计算器按,有的人用 Excel 计算,有的人直接拿 MATLAB 矩阵相乘,效率也不一样的,强烈建议大家使用 MATLAB 进行计算,矩阵相乘大家还记得吧,行向量乘以列向量等于位次相同的元素相乘再加和,跟上边这个公式计算过程一模一样,建议大家回去试一试。当然用 Excel 计算也是比较方便。

acb166eaf5a9da8d6926b1db86e3fd7a.png

从结果上看,广东排名第一,江苏次之。但是天津作为直辖市排名第十,原因可以结合题目背景进行讨论,比如人口数量等因素。

大家先把这方法看明白,到最后的时候会综合的联系到 “葡萄酒评价” 一题上。

5

资源分享

本次主要有三个要分享的东西。

1、这次案例用到的原始数据。

2、用到的软件 spss 版本 24,今天的第二篇推文是 spss24 的安装教程。

3、我自己看过的 spss 的教程,简单易懂的那种。

链接:  https://pan.baidu.com/s/1YuGUnIqbampc8Ag6XV8lfg 

提取码:  sv8f 复制这段内容后打开百度网盘手机App,操作更方便哦

撰文 / 科研狗Doggy

排版 / 科研狗Doggy

-数学与物理-原创内容  转载请联系后台

往期精彩回顾

———————————————

经验 | 数学建模中数据归一化处理
狗子荐题| 2012 年 建模国赛 A 题
软件 | MATLAB2014a软件及安装教程

————————————————————————

40d17efa138df86aea30e988d9edd59c.png

6c1078a58c4048aca9953fe8b3839fa4.png公众号ID:maths-physics*****************************************数学建模 || 物理学术竞赛

软件安装 || 资料大礼包   

数学、物理的历史  

认知、逻辑的提升  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/288300.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信jssdk开发,PHP,必要步骤

微信的文档几个重叠在一起,有点乱,自己用到就统计一下,减少字数直接上,毕竟懒。 一般说明步骤一:微信jssdk使用必须在微信公众平台进入其公众号设置,打开配置安全域名才可以。 安全域名则是请求调用微信接…

imagePreview接口调用微信自带图片播放器

2019独角兽企业重金招聘Python工程师标准>>> 在微信浏览器中,出现在网页上的图片通过点按一小段时间,可以调出微信隐藏的图片播放器,在播放器中看图可以随意放大缩小,体验更炫酷。不过这个功能默认只对通过微信后台编辑…

使用IdentityServer出现过SameSite Cookie这个问题吗?

原文作者:Sebastian Gingter原文链接:https://reurl.cc/Dygrgd译者:沙漠尽头的狼译文链接:https://reurl.cc/1ZYNoQ本文是作者2019年的一篇分享,里面的一些观点和使用的技术,对我们现在的开发依然有效&…

windows下sc create命令行添加/创建/修改服务

C:\Users\Administrator>HELP SC 描述: SC 是用于与服务控制管理器和服务进行通信的命令行程序。 用法: sc <server> [command] [service name] <option1> <option2>... 选项 <server> 的格式为 "\\ServerName"…

TypeError: 'MongoClient' object is not callable

在声明数据库的时候&#xff0c;将中括号[ ]换成了圆括号&#xff08;&#xff09;错误&#xff1a;修改完成后的代码&#xff1a;client pymongo.MongoClient(localhost)db client[my_database]#注意这里用中括号&#xff01;&#xff01; 之后再运行程序&#xff0c;就能存…

微信JSSDK分享页面自定义当前链接最简单示例

这个是使用微信原本的Deom修改 但是一定要注意几个注意事项&#xff0c;代码很简单&#xff0c;却让我一周mmp 在微信开发者工具调试&#xff0c;有时候你代码正确但是会报错 一定要真机调试 appid和secret一定要正确 一定要在在微信公众号后台设置正确的安全目录&#xff0c;…

信息系统开发有管理

做了一套题&#xff0c;又总结了下《信息系统开发与管理》。感觉又有了新的认识。这本书应该说总体的设计都是非常具有逻辑性的。内容设计的有些水到渠成。要说结构的话&#xff0c;应该算是总—分结构吧。一開始就以一篇概述全面的介绍了此书。我总结了以下的图。 信息、系统、…

C语言之字符数组在if{}里面赋值给char *引发的问题

1 问题 我的buff在if{}里面&#xff0c;然后对buff进行内存操作&#xff0c;最后赋值给char *类型的url,发现url最后没有得到数据 如下代码 #include <stdio.h> #define TRUE 1void set_value(char *p) {*p c;*(p 1) h;*(p 2) e;*(p 3) n; }int main() {char *…

python编译器如何设置中文_如何使setup.py test使用特定的fortran编译器?

我正在尝试测试一个包含一些f90文件的package。如果我构建或安装并指定fortran编译器&#xff0c;它可以正常工作。但是&#xff0c;当我尝试测试时&#xff0c;会出现以下错误&#xff1a;C:\Users\jsalvatier\workspace\scikits.bvp_solver>python setup.py config_fc --f…

memwatch内存泄露检测工具

工具介绍 官网 http://www.linkdata.se/sourcecode/memwatch/ 其功能如下官网介绍&#xff0c;挑选重点整理&#xff1a; 1、 号称功能&#xff1a; 内存泄露检测 &#xff08;检测未释放内存&#xff0c; 即 动态内存开辟未释放的情况&#xff09; 2、 检测 多次调用free&…

Windows命令大全

C:\Users\Administrator>help 有关某个命令的详细信息,请键入 HELP 命令名 ASSOC 显示或修改文件扩展名关联。 ATTRIB 显示或更改文件属性。 BREAK 设置或清除扩展式 CTRL+C 检查。 BCDEDIT 设置启动数据库中的属性以控制启动加载。 CACL…

command not found Operation not permitted

mysql -uroot -p 报错误:command not found因为苹果在OS X 10.11中引入的SIP特性使得即使加了sudo&#xff08;也就是具有root权限&#xff09;也无法修改系统级的目录&#xff0c;其中就包括了/usr/bin。要解决这个问题有两种做法&#xff1a;比较不安全的就是关闭SIP&#x…

Main 和 静态构造函数 到底谁先执行?

最近被问到一个很有意思的问题&#xff0c;到底是 Main函数 先执行还是 静态构造函数 先执行&#xff1f;参考如下代码&#xff1a;class Program{static Program(){Console.WriteLine("我是 静态构造 函数&#xff01;");}static void Main(string[] args){Console.…

c 正则提取html,c – 正则表达式以获取HTML表格内容

确实没有可能的正则表达式解决方案适用于任意数量的表数据,并将每个单元格放入单独的后向引用中.这是因为通过反向引用,您需要为要创建的每个backref创建一个独特的开放式窗口,并且您不知道自己有多少个单元格.使用一种或另一种循环来提取数据没有任何问题.例如,在最后一个,在P…

(五)python3 只需3小时带你轻松入门—— 逻辑运算符

如果if判断中存在多个表达式判断&#xff0c;需要使用逻辑运算符。 例如有一个变量a&#xff0c;需要判断是否在1到5之间&#xff0c;那么则需要判断a是否大于1且a小于5。这个时候需要使用and逻辑运算符进行判断。 and python中使用and判断左右两边表达式是同时正确&#xff0c…

[linux]unixODBC的安装配置说明

什么是unixODBC&#xff1a; ODBC(Open Database Connect)是由Microsoft 公司于1991 年提出的一个开放的&#xff0c;用于访问数据库的统一接口规范。 unixODBC的是为非Window平台的系统实现ODBC规范接口的中间件。 unixODBC的安装 有GUI的用户可以使用ODBCConfig tool 安装。教…

linux之systemctl设置自定义服务

1 问题 在linux系统上设置自定义服务,或者让我的服务开机就运行起来,比如我们就以tomcat服务为例子 /usr/local/tomcat/bin/startup.sh 启动tomcat的脚本/usr/local/tomcat/bin/shutdown.sh 关闭tomcat的脚本/usr/local/tomcat/bin/restart.sh 重启tomcat的脚本 2 解决方法 …

ASP.NET MVC入门(一)---MVC的Hello World

简单的MVC Hello world,着重处理Controller。 Step1 创建一个Asp.Net MVC 5项目打开Visual studio 2013 点“文件”->新建->项目。

for循环批量写文件 shell_shell脚本:for循环批量重命名带空格文件名的文件

今天在学习shell脚本攻略第二章2.13 批量重命名和移动时,由于我的文件命令有的文件名字中出现空格,出现了许多问题,因此将解决问题的过程记录了下来,希望能够和大家交流学习,共同进步,谢谢!问题代码问题代码最终成功代码最终代码步骤一思路: 由于在shell中运行此脚本时,发现将找…

HDU 4864 Task(贪心或高斯消元)

题意&#xff1a;n台机器工作时间为ai,等级bi,m个任务需要时间ai&#xff0c;等级bi,一台机器只能完成一个任务&#xff0c;完成一个任务收益为500*ai2*bi,求最大收益&#xff1b;(n,m>100000) 思路&#xff1a;先从大到小排时间&#xff0c;再从大到小排等级&#xff0c;借…