清风课程总结

文章目录

问题

1 . 回归那里

先标准化数据再回归,和不标准化然后回归是否有差异。

聚类的肘部图也用累积贡献率来选择聚类中心的个数

1 . 插值

(1)插值法

image-20230810154101065

image-20230810154253994

一般不使用高阶的 n个点构造n次的

(2)拉格朗日插值法

基本不用——有龙格现象,插值多项式次数越高误差不一定越小。

image-20230810154909908

(3)分段低次插值

image-20230810155416252

(4)牛顿插值法 也有龙格现象

image-20230810155949162

(5)埃尔米特插值

一阶导数相等

分段三次埃尔米特插值

image-20230810155614788

(6)三次样条插值

挺复杂的,不管了

image-20230810160433748

最常使用三次埃尔米特插值和三次样条插值

三次样条插值很好的保持数据光滑性和连续性

x = -pi:pi; 
y = sin(x); 
new_x = -pi:0.1:pi;
p1 = pchip(x,y,new_x);   %分段三次埃尔米特插值
p2 = spline(x,y,new_x);  %三次样条插值
figure(2);
plot(x,y,'o',new_x,p1,'r-',new_x,p2,'b-')
legend('样本点','三次埃尔米特插值','三次样条插值','Location','SouthEast')   %标注显示在东南方向

2 . 拟合算法

(1)插值和拟合的区别

插值必须经过所有的点,拟合不需要,拟合要求足够接近。

image-20230810162240120

(2)最小二乘法解释

image-20230810162853199

(3)拟合好坏指标

image-20230810163502463

SSE会有量纲的影响,不能滥用R^2,

image-20230810164621369

(4)曲线拟合工具箱 cftool命令

中心化就是zscore标准化。

image-20230810165603083

人口预测

image-20230810171151191

3 . 相关系数

(1)皮尔逊相关系数

默认是皮尔逊相关系数

image-20230810173624558

只是用来衡量2个变量线性相关程度的指标

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZDOQtc4J-1692281957321)(image/image-20230810174323577.png)]

image-20230810174346203

image-20230810174558190

image-20230810174535363

比起相关系数大小我们更关注显著性

(2)描述性统计

SPSS,Excel,matlab

(3)相关系数解释

image-20230811181707791

(4)皮尔逊相关系数进行假设检验

<1> 常规方法

image-20230811181825324

image-20230811182158515

tpdf函数 画t分布 28是自由度

image-20230811182254300

<2> 更好的方法——p值判断法

image-20230811182526963

星号是显著水平,没有就是不显著;

显著水平:

* 90%置信水平上显著

** 95%显著

*** 99%显著

(5)皮尔逊相关系数检验的条件

image-20230811184005817

①正态分布 ②差异小 ③样本独立

正态分布检验

<1> 偏度和峰度

image-20230811184428726

正态分布的偏度为0,峰度为3

<2> (雅克-贝拉检验)JB检验 大样本

image-20230811184341440

matlab实现

image-20230811185116400

<3> 夏皮洛-威尔克检验 样本[3,50]个

image-20230811185802366

<4>QQ图 基本不用

image-20230811190516903

image-20230811190908349

(6)斯皮尔曼相关系数

image-20230811191113447

<1> matlab实现

image-20230811191332500

<2> 斯皮尔曼相关系数的假设检验
① 小样本 <=30

image-20230811192200546

斯皮尔曼相关系数 Rs,通过查表,必须大于等于临界值,才能说明斯皮尔曼相关系数Rs显著异于零,含义就是否定原假设。

② 大样本

image-20230811192758733

代码: [R,P]=corr(Test, ‘type’ , ‘Spearman’)

(7)皮尔逊和斯皮尔曼相关系数的区别

image-20230811193035805

4 . 假设检验

(1)假设检验步骤

image-20230811165437394

image-20230811165409442

(2)示例部分

把样本带进去落到外面就是小概率事件,所以就拒绝

image-20230811180824710

image-20230811181133543

(3)结论部分

image-20230811181314259

5 .多元回归分析

什么时候用回归

image-20230815214400259

(1)回归分析

回归分析:研究X和Y之间相关性的分析。

相关性不是因果性

<1> 回归分析的使命

image-20230811222735300

三个使命:

① 识别重要变量;②判断相关性的方向;

③估计权重(回归系数)

<2> 回归分析的分类

GLS 广义的最小二乘

(2)数据分类

image-20230811223308033

① 横截面数据: 某一个时间点收集到不同对象的数据。

比如: 问卷,同一年的gpd数据等等。

② 时间序列数据:对同一对象在不同时间连续观察取得的数据。

比如 从出生到现在,我的体重等等,历年来中国的GDP等等。

③面板数据:横截面数据与时间序列数据综合起来的一种数据资源。

比如 2008‐2018年,我国各省份GDP的数据。

(3)一元线性回归

<1> 一元线性回归基本思想

image-20230811224602394

利用了最小二乘的思想

残差是 yi - yih

<2> 线性的理解

image-20230811225030655

<3> 回归系数的解释

image-20230811225830926

内生性解释

image-20230811230150707

上述只有一个x的时候,u包含所有与y相关,但未添加到回归模型中的变量。

如果这些变量和我们已经添加的自变量相关,则有内生性。

蒙特卡洛对内生性的验证

image-20230811230723015

image-20230811232106861

只用保证核心解释变量和u不相关就行

image-20230811232845327

什么时候取对数?

image-20230811232935060

<4>计量经济学中 四类模型回归系数解释

① 一元线性回归

② 双对数模型

image-20230811233221899

image-20230811233419505

定性变量变成虚拟变量 用数字替代

image-20230811233530319

image-20230811233932089

image-20230811234324062

有交互项:

image-20230811235207971

(4)Stata软件的使用

尽量命令都放到do文件里面

数据的描述性统计

<1> 定量数据

summarize 变量1 变量2 … 变量n

image-20230812002159198

<2> 定性数据

tabulate 变量名,gen(A)
返回对应的这个变量的频率分布表,并生成对应的虚拟变量(以A开头)。

image-20230812002256267

Page Up返回上一条命令

Excel数据透视表(学习)

Stata一般回归

<1>变量展示方式

image-20230812103108290

image-20230812103304493

df 是自由度 MS (平均) SS / df

Model -> SSR K

Residual -> SSE N-K-1

Total -> SST N-1

F检验的假设检验的原假设 :H0 就是各个系数都为0.根据P值来看。

回归系数 Coef β1 β2 β3

表格的自变量由上到下(不包括最后一个)

最后一个是 _cons -> β0 常数项

Std.Err 标准误 -> 用来计算t值。

t值等于 Coef / Std.Err.

t检验的假设检验的原假设: 对应回归系数β等于0;

p小于0.05,代表95%置信区间上,回归系数显著不为0

<2> 虚拟变量回归和多重共线性

image-20230812120257335

<3> 拟合优度R^2

image-20230812123717249

Stata标准化回归

​ 为了更为精准的研究影响评价量的重要因素(去除量纲的影响),我们可考虑使用标准化回归系数。
对数据进行标准化,就是将原始数据减去它的均数后,再除以该变量的标准差,计算得到新的变量值,新变量构成的回归方程称为标准化回归方程,回归后相应可得到标准化回归系数。
​ 标准化系数的绝对值越大,说明对因变量的影响就越大(只关注显著的回归系数哦)。

<1> 命令

regress y x1 x2 … xk,beta

简化 reg y x1 x2 … xk,b

image-20230812124457364

<2> 例题提示
  • 不要上去就归一化数据,不然不好分析系数。
  • 引入交叉项和高次项要解释原因

清风论文优点

可视化作图

数据透视表的应用

中国地图的可视化

(5)扰动项、异方差

<1>扰动项

image-20230812142919591

<2>异方差

image-20230812143255637

检验异方差

image-20230812143934663

残差和拟合值的散点图 出现负数的原因

使用命令 summarize y**,d** 多了这个d 结果出现了百分位数和最大最小四个数

image-20230812144253458

异方差假设检验——BP检验或者怀特检验(推荐)

回归结束使用

BP检验命令 estat hettest ,rhs iid

image-20230812144629521

原假设H0是 不存在异方差。

怀特检验命令: estat imtest,white

<3>异方差最终解决方法

image-20230812145102087

Stock and Watson (2011)推荐,在大多数情况下应该使用“OLS + 稳健标准误”。

使用OLS + 稳健的标准误 命令
regress y x1 x2 … xk,robust

必须进行异方差检验之后才能解释回归系数。

在异方差情况下,所有与参数估计量方差有关的相关计算都会受到影响。 t检验、多元回归的 F检验都会因此变得不再准确。 其次,异方差条件下参数的OLS估计量不再有效(仍然具有线性和一致性),会导致对 Y的预测也失去有效性。

(6)多重共线性

<1> 多重共线性

image-20230812150000055

<2> 检验多重共线性——方差膨胀因子VIF

image-20230812150208852

经验规则: VIF>10,回归方程存在严重的多重共线性

回归结束后使用

检验方差膨胀因子VIF命令:estat vif

<3>多重共线性处理方法 不懂

如果发现存在多重共线性,可以采取以下处理方法。
(1)如果不关心具体的回归系数,而只关心整个方程预测被解释变量的能力,则通常可以不必理会多重共线性(假设你的整个方程是显著的)。这是因为,多重共线性的主要后果是使得对单个变量的贡献估计不准,但所有变量的整体效应仍可以较准确地估计。
(2)如果关心具体的回归系数,但多重共线性并不影响所关心变量的显著性,那么也可以不必理会。即使在有方差膨胀的情况下,这些系数依然显著;如果没有多重共线性,则只会更加显著。
(3) 如果多重共线性影响到所关心变量的显著性,则需要增大样本容量,剔除导致严重共线性的变量(不要轻易删除哦,因为可能会有内生性的影响),或对模型设定进行修改。

(7)逐步回归分析

<1> 逐步回归分析简介

**向前逐步回归Forward selection:**将自变量逐个引入模型,每引入一个自变量后都要进行检验,显著时才加入回归模型。
(缺点:随着以后其他自变量的引入,原来显著的自变量也可能又变为不显著了,但是,并没有将其及时从回归方程中剔除掉。)

image-20230812153201600

向后逐步回归Backward elimination:(推荐)与向前逐步回归相反,先将所有变量均放入模型,之后尝试将其中一个自变量从模型中剔除,看整个模型解释因变量的变异是否有显著变化,之后将最没有解释力的那个自变量剔除;此过程不断迭代,直到没有自变量符合剔除的条件。(缺点:一开始把全部变量都引入回归方程,这样计算量比较大。若对一些不重要的变量,一开始就不引入,这样就可以减少一些计算。当然这个缺点随着现在计算机的能力的提升,已经变得不算问题了)

image-20230812153216797

<2> Stata实现

#1,#2是显著性水平

向前逐步回归Forward selection:
stepwise regress y x1 x2 … xk, pe(#1)
pe(#1) specifies the significance level for addition to the model; terms with p<#1 are
eligible for addition(显著才加入模型中).
向后逐步回归Backward elimination:
stepwise regress y x1 x2 … xk, pr(#2)
pr(#2) specifies the significance level for removal from the model; terms with p>= #2
are eligible for removal(不显著就剔除出模型).
如果你觉得筛选后的变量仍很多,你可以减小#1或者#2
如果你觉得筛选后的变量太少了,你可以增加#1或者#2

注:
(1)x1 x2 … xk之间不能有完全多重共线性(和regress不同哦);需要自己去剔除,所以先用reg回归一下看看哪个是有多重共线性,剔除掉然后用逐步回归
(2)可以在后面再加参数b和r,即标准化回归系数或稳健标准误

<3>逐步回归的说明

(1)向前逐步回归和向后逐步回归的结果可能不同。
(2)不要轻易使用逐步回归分析,因为剔除了自变量后很有可能会产生新的问题,例如内生性问题。
(3)有没有更加优秀的筛选方法?有的,那就是每种情况都尝试一次,最终一
共有2^n - 1种可能。如果自变量很多,那么计算相当费时。

回归结果详细解释

img

上图为基本线性回归的结果图,具体解释如下:

1.方差分析

Number of obs 为样本观测值数量,共20964条数据观测值,

F(3,20960)=MSR/MSE,显示的为F检验-方差检验结果,为整个模型的全局检验,来表明拟合方程是否有意义,其中,3是回归自由度,20960是残差自由度

Prob>F 表示的是F检验的显著性

R-squared=SSR/SST 为相关系数R的平方,值在0-1之间,表示模型的拟合优度,越大说明模型预测越准确

Adj R-squared 表示的为调整后的拟合优度,因为R2会随着变量的变化而变化,但拟合优度不会随其改变,所以需要进行调整来正确衡量模型的拟合优度。

Root MSE指的是残差标准差=根号下MSE

img

SS指的是误差平方和

其中,model行对应的是模型可以解释的偏差,又称回归平方和SSR,为预测值对平均值的总偏差,回归自由度dfr=3,为解释变量数目,MS对应的为均方差MSR,即平方和除以其自由度

Resuidual行指的是模型不可以解释的偏差,即残差平方和SSE,为实际值对预测值的总偏差,残差自由度dfe=20964-3-1=样本数目-自变量数目-1,MSE为SSE/dfe

TOTAL行对应的是总偏差,即SST离差平方和

2.系数分析

下方表格中左列指的是变量名,greniva为被解释变量-绿色发明专利申请量,rdsub为核心解释变量-政府研发补助,size-企业规模与lev-资产负债率为控制变量,_cons为常数项

Coef指的是模型预测的各对应变量的系数值,Std.Err.指的是标准误,t值=Coef. / Std. Err.,P值:指比t值更极端结果发生的概率,如果P值过小,小于0.1,即小于小概率事件发生的概率,则拒绝原假设,选择备择假设。[95% Conf,Interval]指的是预测系数的95%置信区间=预测系数+-1.96*标准误


3.标准误、t值、p值及置信区间之间的关系?

对于估计系数的正确性,需要进行有关考量。假设检验,原假设一般是假定系数值为0,或某一常数,在假设成立的情况下,如果有小概率事件发生,则说明原假设不成立,拒绝原假设,备择假设成立,即与原假设相反的假设

对于检验统计量的选取,有以下两个原则:1.该检验统计量可由样本观测值计算出 2.其概率分布已知,从而可以便于分辨抽样结果为小概率事件还是大概率事件

根据已有研究对扰动项的分析,可以得出如果把扰动项看作为遗漏变量与测量误差之和,由中心极限定理得其近似服从正态分布,对其近似标准化处理可得t值,且第k个变量的t值近似服从t分布,且其值可由观测值得到,初步预定其越小,越符合原假设,越大,越倾向于拒绝原假设

t检验:

1.计算t值

2.计算显著性水平为a的临界值-其中显著性水平是指当原假设为正确时人们却把它拒绝了的概率或风险–弃真概率。它是公认的小概率事件的概率值,必须在每一次统计检验之前确定,通常取α=0.05或α=0.01。根据已知t分布及小概率事件的概率值算出t值的临界值

3.判定tk落于拒绝域还是接受域。如果tk观测值落于临界值区间-也称接受域内,说明接受原假设,若落于临界值外-拒绝域,则拒绝原假设,说明假设成立情况下,抽样所得结论落在了小概率事件上,原假设不成立,备择假设成立—通常是通过利用小概率原理反证法即拒绝原假设来验证某一假设–备择假设的正确性。

P值检验:

P值是指当原假设为真时,比所得到的样本观察结果更极端的结果出现的概率。如果P值很小,说明原假设情况的发生的概率很小,而如果出现了,根据小概率原理,我们就有理由拒绝原假设,P值越小,我们拒绝原假设的理由越充分

P18 陈强高级计量经济学

以下引用自【214】回归模型的总体显著性检验:t检验 - 知乎 (zhihu.com)
该文具体目录:1.t检验的原理 2.t检验的具体步骤 3.t检验与F检验的异同

image-20230812131207843

  • 在多元线性回归模型中, � 检验与 � 检验是不同的

$$
(1)检验对象不同:\
t检验为H_0:b_j=0, H_1:b_j≠0(j=1,2,⋯,k) ;\
F检验为:H_0不全为零:b_1=b_2=⋯=b_k=0, \ H_1:b_j(j=1,2,⋯,k)不全为零 。\

(2)当对参数 b_1,b_2,⋯,b_k 检验显著时,
F检验一定是\
显著的。F检验显著即P值小于0.1,H_1假设成立\

(3)但当 t检验显著时,并不意味着对每一个回归系数\
的F检验一定都是显著的。
$$

【提示】倘若某个解释变量对因变量的影响不显著,则应在模型中剔除该解释变量,重新建立多元线性回归模型。

在显著性水平α =0.05的情况下,p>0.05接受原假设,p值<0.05拒绝原假设。

https://www.cnblogs.com/hdu-zsk/p/6293721.html

6 . 图论

(1)图的基本概念

image-20230812153932023

%% Matlab作无向图
% (1)无权重(每条边的权重默认为1)
% 函数graph(s,t):可在 s 和 t 中的对应节点之间创建边,并生成一个图
% s 和 t 都必须具有相同的元素数;这些节点必须都是从1开始的正整数,或都是字符串元胞数组。
s1 = [1,2,3,4];
t1 = [2,3,1,1];
G1 = graph(s1, t1);
plot(G1)
% 注意哦,编号最好是从1开始连续编号,不要自己随便定义编号
s1 = [1,2,3,4];
t1 = [2,3,1,1];
G1 = graph(s1, t1);
plot(G1)

% 注意字符串元胞数组是用大括号包起来的哦
s2 = {'学校','电影院','网吧','酒店'};
t2 = {'电影院','酒店','酒店','KTV'};
G2 = graph(s2, t2);
plot(G2, 'linewidth', 2)  % 设置线的宽度
% 下面的命令是在画图后不显示坐标
set( gca, 'XTick', [], 'YTick', [] );  

% (2)有权重
% 函数graph(s,t,w):可在 s 和 t 中的对应节点之间以w的权重创建边,并生成一个图
s = [1,2,3,4];
t = [2,3,1,1];
w = [3,8,9,2];
G = graph(s, t, w);
plot(G, 'EdgeLabel', G.Edges.Weight, 'linewidth', 2) 
set( gca, 'XTick', [], 'YTick', [] );  

%% Matlab作有向图
% 无权图 digraph(s,t)
s = [1,2,3,4,1];
t = [2,3,1,1,4];
G = digraph(s, t);
plot(G)
set( gca, 'XTick', [], 'YTick', [] );  

% 有权图 digraph(s,t,w)
s = [1,2,3,4];
t = [2,3,1,1];
w = [3,8,9,2];
G = digraph(s, t, w);
plot(G, 'EdgeLabel', G.Edges.Weight, 'linewidth', 2) 
set( gca, 'XTick', [], 'YTick', [] );  

(2)有权重的邻接矩阵

image-20230812155257129

image-20230812155308972

(3)迪杰斯特拉算法

<1> 演示

image-20230812162733566

<2> 缺点

迪杰斯特拉算法的一个缺点:

可以用于有向图,不能处理负权重

image-20230812162949319

<3> 解决负权重 用Bellman-Ford算法(贝尔曼-福特)

不支持含负权回路的图 —— 比赛里面一般不会出

比如 2和3 一个起点一个终点就求解不了。

image-20230812163327647

有兴趣的同学可以参考下面两份资料弄懂其实现原理:
https://blog.csdn.net/a8082649/article/details/81812000
https://www.bilibili.com/video/av43217121

<4> Matlab实现 起点和终点最短距离

image-20230812163830187

% 注意哦,Matlab中的图节点要从1开始编号,所以这里把0全部改为了9
% 编号最好是从1开始连续编号,不要自己随便定义编号
s = [9 9 1 1 2 2 2 7 7 6 6  5  5 4];
t = [1 7 7 2 8 3 5 8 6 8 5  3  4 3];
w = [4 8 3 8 2 7 4 1 6 6 2 14 10 9];
G = graph(s,t,w);
plot(G, 'EdgeLabel', G.Edges.Weight, 'linewidth', 2) 
set( gca, 'XTick', [], 'YTick', [] );  
[P,d] = shortestpath(G, 9, 4)  %注意:该函数matlab2015b之后才有哦

% 在图中高亮我们的最短路径
myplot = plot(G, 'EdgeLabel', G.Edges.Weight, 'linewidth', 2);  %首先将图赋给一个变量
highlight(myplot, P, 'EdgeColor', 'r')   %对这个变量即我们刚刚绘制的图形进行高亮处理(给边加上r红色)

% 求出任意两点的最短路径矩阵
D = distances(G)   %注意:该函数matlab2015b之后才有哦
D(1,2)  % 1 -> 2的最短路径
D(9,4)  % 9 -> 4的最短路径

% 找出给定范围内的所有点  nearest(G,s,d)
% 返回图形 G 中与节点 s 的距离在 d 之内的所有节点
[nodeIDs,dist] = nearest(G, 2, 10)   %注意:该函数matlab2016a之后才有哦

返回任意两点的距离矩阵

d = distances(G [,‘Method’,algorithm])

image-20230812164319904

找给定范围内所有的点

[nodeIDs,dist] = nearest(G,s,d [,‘Method’,algorithm])
返回图形G 中与节点s 的距离在d 之内的所有节点。
nodeIDs是符合条件的节点
Dist是这些节点与s的距离

7 . 分类

(1)数据预处理- 虚拟变量的生成

image-20230814175216007

本示例只设置了一个变量 isapple

(2)逻辑回归Logistic regression

image-20230814181502473

对于因变量为分类变量的情况,我们可以使用逻辑回归进行处理。把y看成事件发生的概率,y≥0.5表示发生;y<0.5表示不发生

原理介绍

<1> 线性概率模型

image-20230814181552689

<2> 两点分布(伯努利分布)

image-20230814181635443

<3>连续函数的选择

image-20230814181657570

通过极大似然估计计算出β,然后代入改进的Sigmoid函数,求出y的估计值

(1)SPSS操作逻辑回归 二分类

<1> 选择Logistic 回归模型
<2> 导入变量

image-20230814182545969

因变量 -> y值 (虚拟变量处理)

协变量 -> x (指标)

方法

  • 输入 -> 全部变量参与
  • 向前逐步回归 (不同的统计量)
  • 向后逐步回归 (不同的统计量)

image-20230814182854673

<3> 分类选项——定性变量的处理

可以将定性自变量虚拟化处理。

image-20230814183044074

<4> 保存——展示结果 有概率和组成员

image-20230814183201375

<5> 选项—— 模型超参数的设置

进入 —— 向前逐步回归

除去 —— 向前逐步回归

分类分界值 —— 顾名思义

最大迭代次数

image-20230814183427487

(2)结果分析

预测成功率

image-20230814190743463

逻辑回归系数表

image-20230814190822957

预测结果

image-20230814190835349

(3)模型改进

预测结果较差怎么办?

​ 可在logistic回归模型中加入平方项、交互项等。——注意防止过拟合

image-20230814191030961

(4)选择合适的模型

把数据分为训练组和测试组,用训练组的数据来估计出模型,再用测试组的数据来进行测试。(训练组和测试组的比例一般设置为80%和20%)
​ 已知分类结果的水果ID为1-38,前19个为苹果,后19个为橙子。每类水果中随机抽出3个ID作为测试组,剩下的16个ID作为训练组。(比如:17-19、36-38这六个样本作为测试组)比较设置不同的自变量后的模型对于测试组的预测效果。

(注意:为了消除偶然性的影响,可以对上述步骤多重复几次,最终对每个模型求一个平均的准确率,这个步骤称为交叉验证。)

(3)Fisher线性判别分析

<1> 原理简述

image-20230814193208314

详细证明和求解步骤:https://www.bilibili.com/video/av33101528/?p=3

核心问题:找到线性系数向量 W T 核心问题:找到线性系数向量W^T 核心问题:找到线性系数向量WT

<2> SPSS操作Fisher线性判别分析

① 分析中找到判别式——Fisher线性判别分析

② 定义范围

image-20230814194023922

③ 统计中选择费希尔和未标准化

image-20230814193914890

④ 分类—— 摘要表

预测准确率

image-20230814194122968

⑤ 保存 预测组成员和组成员概率

预测的属于不同类的概率

image-20230814194232925

<3>结果分析

image-20230814194734434

线性系数向量w,分类准确率,预测结果放到论文中

image-20230814194936632

(4)多分类问题

<1> Fisher线性判别分析

https://blog.csdn.net/z962013489/article/details/79918758

虚拟化变量以后,相较二分类多了一个范围设置

image-20230814195517493

分类结果

image-20230814195928189

<2> Logistic regression

将连接函数:Sigmoid函数推广为Softmax函数
https://www.cnblogs.com/bonelee/p/8127411.html
https://blog.csdn.net/Gamer_gyt/article/details/85209496

① 选择多元逻辑回归

image-20230814200203673

② 模型

步进——逐步回归(一般默认主效应)

image-20230814200543589

③ 统计 -> 多勾选一些

image-20230814200500237

④ 结果分析

image-20230814200841681

8 .聚类

聚类,就是将样本划分为由类似的对象组成的多个类的过程。聚类后,我们可以更加准确的在每个类中单独使用统计模型进行估计、分析或预测;也可以探究不同类之间的相关性和主要差异。
聚类和上一讲分类的区别:分类是已知类别的,聚类未知。

(1)K-means算法

<1> 原理

K-means聚类的算法流程:
一、指定需要划分的簇[cù]的个数K值(类的个数);
二、随机地选择K个数据对象作为初始的聚类中心(不一定要是我们的样本点);
三、计算其余的各个数据对象到这K个初始聚类中心的距离,把数据对象划归到距离它最近的那个中心所处在的簇类中;
四、调整新类并且重新计算出新类的中心;
五、循环步骤三和四,看中心是否收敛(不变),如果收敛或达到迭代次数则停止循环;
六、结束。

<2> 图示

image-20230814230226841

<3> 优缺点

优点:
(1)算法简单、快速。
(2)对处理大数据集,该算法是相对高效率的。
缺点:
(1)要求用户必须事先给出要生成的簇的数目K。
(2)对初值敏感。
(3)对于孤立点数据敏感。
K-means++算法可解决2和3这两个缺点。

(2)K-means++

k-means++算法选择初始聚类中心的基本原则是:初始的聚类中
心之间的相互距离要尽可能的远。
算法描述如下:
(只对K-means算法“初始化K个聚类中心” 这一步进行了优化)
步骤一:随机选取一个样本作为第一个聚类中心;
步骤二:计算每个样本与当前已有聚类中心的最短距离(即与最近一个聚类中心的距离),这个值越大,表示被选取作为聚类中心的概率较大;最后,用轮盘法(依据概率大小来进行抽选)选出下一个聚类中心;
步骤三:重复步骤二,直到选出K个聚类中心。选出初始点后,就继续使用标准的K-means算法了。

(3)SPSS操作K-means

<1> 分类中找到k-means算法(默认使用的是k-means++算法)

image-20230814230930909

<2> 输入变量和个案标注依据,并在迭代中设置最大迭代次数。

image-20230814231146845

<3> 保存中,保存聚类成员和 与聚类中心的距离

image-20230814231313627

<4> 在选项中,多选一个每个个案的聚类信息

image-20230814231439464

(4)K-means算法的一些讨论

<1>聚类的个数K值怎么定?

答:分几类主要取决于个人的经验与感觉,通常的做法是多尝试几个K值,
看分成几类的结果更好解释,更符合分析目的等。

<2>数据的量纲不一致怎么办?

答:如果数据的量纲不一样,那么算距离时就没有意义。例如:如果X1
单位是米,X2单位是吨,用距离公式计算就会出现“米的平方”加上“吨的平方”
再开平方,最后算出的东西没有数学意义,这就有问题了。

标准化数据

image-20230814232159554

image-20230814232419793

描述统计结果

image-20230814232454717

(5)系统(层次)聚类

<1> 系统(层次)聚类简介

系统聚类的合并算法通过计算两类数据点间的距离,对最为接近的两类数据点进行组合,并反复迭代这一过程,直到将所有数据点合成一类,并生成聚类谱系图。

image-20230815113008782

<2> 系统(层次)聚类算法流程

系统(层次)聚类的算法流程:
一、将每个对象看作一类,计算两两之间的最小距离;
二、将距离最小的两个类合并成一个新类;
三、重新计算新类与所有类之间的距离;
四、重复二三两步,直到所有类最后合并成一类;
五、结束。

<3> SPSS操作层次聚类

① 在分类中找到层次聚类

image-20230815113941581

② 选择变量

image-20230815113346212

③ 图中,勾选谱系图 (冰状图基本不用)

image-20230815113438141

④ 方法中,如果单位不统一,数据相差较大就标准化。

image-20230815113635282

<4> 结果分析

可以根据自己的想法选择分成几类,哪种好解释就选哪种

image-20230815114037818

<5> 肘部图选择最佳的聚类个数K

肘部法则(Elbow Method):通过图形大致的估计出最优的聚类数量

image-20230815114508279

一般情况下,K越大,J越小。

肘部图操作步骤
① 取出SPSS聚类的一个部分——集中计划

系数就是聚合系数J

image-20230815114632632

② 先对聚合系数进行降序,因为阶段1有30个类,阶段30有1个类,随着阶段数目不断增加,越来越多的类被合并。

image-20230815115432045

③ 然后插入图表

image-20230815115501334

根据图来进行解释:
(1)根据聚合系数折线图可知,当类别数为5时,折线的下降趋势趋缓,故可将类别数设定为5.
(2)从图中可以看出, K值从1到5时,畸变程度变化最大。超过5以后,畸变程度变化显著降低。因此肘部就是K=5,故可将类别数设定为5.(当然,K=3也可以解释)

<6> 确定K,显示聚类的结果(每个样本的结果)

image-20230815120057482

其他步骤不变,结果如下

image-20230815120537460

(6)画示意图(高维数据不行,可以画2-3个变量的)

<1> 在图形中,选择图表构造器

image-20230815120905261

<2> 选择各个部分

image-20230815121855307

<3> 修改图例,点的填充颜色,标题,网格线等结果如下:

image-20230815122040648

(7)DBSCAN算法

DBSCAN(Density-based spatial clustering of applications
with noise)是Martin Ester, Hans-PeterKriegel等人于1996年提出的一种基于密度的聚类方法,聚类前不需要预先指定聚类的个数,生成的簇的个数不定(和数据有关)。该算法利用基
于密度的聚类的概念,即要求聚类空间中的一定区域内所包
含对象(点或其他空间对象)的数目不小于某一给定阈值。
该方法能在具有噪声的空间数据库中发现任意形状的簇,可
将密度足够大的相邻区域连接,能有效处理异常数据。

基本概念

DBSCAN算法将数据点分为三类:
• 核心点:在半径Eps内含有不少于MinPts数目的点
• 边界点:在半径Eps内点的数量小于MinPts,但是落在核心
点的邻域内
• 噪音点:既不是核心点也不是边界点的点

image-20230815123021465

在这幅图里,MinPts = 4,点A 和其他红
色点是核心点,因为它们的ε-邻域(图中红色
圆圈)里包含最少4 个点(包括自己),由于
它们之间相互相可达,它们形成了一个聚类。
点B 和点C 不是核心点,但它们可由A 经其
他核心点可达,所以也和A属于同一个聚类。
点N 是局外点,它既不是核心点,又不由其他
点可达。

优缺点

优点:

1 .基于密度定义,能处理任意形状和大小的簇;

2 .可在聚类的同时发现异常点;

3 .与K-means比较起来,不需要输入要划分的聚类个数。

缺点:

1 .对输入参数ε和Minpts敏感,确定参数困难;

2 .由于DBSCAN算法中,变量ε和Minpts是全局唯一的,当聚类的密度不均匀时,聚类距离相差很大时,聚类质量差;

3 .当数据量大时,计算密度单元的计算复杂度大。

老师的建议:
只有两个指标,且你做出散点图后发现数据表现得很“DBSCAN”,这时候你再用DBSCAN进行聚类。其他情况下,全部使用系统聚类吧。K-means也可以用,不过用了的话你论文上可写的东西比较少。

9 . 时间序列分析

​ 时间序列也称动态序列,**是指将某种现象的指标数值按照时间顺序排列而成的数值序列。**时间序列分析大致可分成三大部分,分别是描述过去、分析规律和预测未来,本讲将主要介绍时间序列分析中常用的三种模型:季节分解、指数平滑方法和ARIMA模型,并将结合Spss软件对时间序列数据进行建模。

​ 时间序列由两个组成要素构成: 时间要素数值要素

​ 时间序列根据时间和数值性质的不同,可以分为时期时间序列时点时间序列

  • 时期序列中,数值要素反映现象在一定时期内发展的结果

  • 时点序列中,数值要素反映现象在一定时点上的瞬间水平

例如:
(1)从出生到现在,你的体重的数据(每年生日称一次)。
(2)中国历年来GDP的数据。
(3)在某地方每隔一小时测得的温度数据。
(1)和(3)是时点时间序列;(2)是时期时间序列
时期序列可加,时点序列不可加。

10 . 灰色预测

​ 灰色预测是对既含有已知信息又含有不确定信息的系统进行预测,就是对在一定范围内变化的、与时间有关的灰色过程进行预测。

​ 灰色预测对原始数据进行生成处理来寻找系统变动的规律,并生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而预测事物未来发展趋势的状况。

预测题目小套路

① 看到数据后先画时间序列图并简单的分析下趋势(例
如:我们上一讲学过的时间序列分解);
② 将数据分为训练组和试验组,尝试使用不同的模型对
训练组进行建模,并利用试验组的数据判断哪种模型的预测效
果最好(比如我们可以使用SSE这个指标来挑选模型,常见的
模型有指数平滑、ARIMA、灰色预测、神经网络等)。
③ 选择上一步骤中得到的预测误差最小的那个模型,并
利用全部数据来重新建模,并对未来的数据进行预测。
④ 画出预测后的数据和原来数据的时序图,看看预测的
未来趋势是否合理。

(1)GM(1,1)模型

​ GM(1,1)是使用原始的离散非负数据列,通过一次累加生成削弱随机性的较有规律的新的离散数据列,然后通过建立微分方程模型,得到在离散点处的解经过累减生成的原始数据的近似估计值,从而预测原始数据的后续发展。
(我们在此课件中只探究**GM(1,1)**模型,第一个‘1’表示微分方程是一阶的,后面的‘1’表示只有一个变量

<1> 原理简述

image-20230815154239071

image-20230815155447735

image-20230815211609341

<2> 使用GM模型前提——准指数规律的检验

image-20230815155147889

对累加序列进行求解 级比 -> 求解原始数据的光滑比

发展系数与预测情形的探究

image-20230815155615821

慎用结论: -a发展系数越小越准确

<3> 模型评价

① 残差检验

image-20230815155847665

② 级比偏差检验

image-20230815160030961

​ 结论:
x 结论: η ( k ) 越小,说明 x ( 0 ) ( k ) 和 x ^ ( 0 ) ( k ) 越接近 ; 特别的,当 η ( k ) = 0 时,可以得到: σ ( k ) = 1 − 0.5 a ^ 1 + 0.5 a ^ = x ^ ( 0 ) ( k ) x ( 0 ) ( k − 1 ) {x}结论:\eta(k) 越小,说明{x}^{(0)}(k)和\widehat{x}^{(0)}(k)越接近;\\特别的,当 \eta(k) = 0时,可以得到:\\ \sigma(k) = \frac{1-0.5\widehat{a}}{1+0.5\widehat{a}}= \frac{\widehat{x}^{(0)}(k)}{{x}^{(0)}(k-1)} x结论:η(k)越小,说明x(0)(k)x (0)(k)越接近;特别的,当η(k)=0时,可以得到:σ(k)=1+0.5a 10.5a =x(0)(k1)x (0)(k)

<4> GM(1,1)模型的扩展

image-20230815162332400

image-20230815162338622

思想:新陈代谢模型的预测效果最好,每次去掉一个老数据,加入一个新数据

<5> 什么时候用灰色预测

① 数据是以年份度量的非负数据(如果是月份或者季度
数据一定要用我们上一讲学过的时间序列模型);
② 数据能经过准指数规律的检验(除了前两期外,后面
至少90%的期数的光滑比要低于0.5);
数据的期数较短且和其他数据之间的关联性不强(小
于等于10,也不能太短了,比如只有3期数据),要是数据
期数较长,一般用传统的时间序列模型比较合适。

(2)灰色预测例题

对长江水质污染的预测
2005年国赛A题中给出长江在过去10年中废水排放总量,如果不采取保护措施,请对今后10年的长江水质污染的发展趋势做出预测。

年份1995199619971998199920002001200220032004
排污总量174179183189207234220.5256270285

代码讲解

  1. 画出原始数据的时间序列图,并判断原始数据中是否有负数或期数是否低于4期,如
    果是的话则报错,否则执行下一步;
  2. 对一次累加后的数据进行准指数规律检验,返回两个指标:
    指标1:光滑比小于0.5的数据占比(一般要大于60%)
    指标2:除去前两个时期外,光滑比小于0.5的数据占比(一般大于90%)
    并让用户决定数据是否满足准指数规律,满足则输入1,不满足则输入0
  3. 如果上一步用户输入0,则程序停止;如果输入1,则继续下面的步骤。
  4. 让用户输入需要预测的后续期数,并判断原始数据的期数:
    4.1 数据期数为4:
    分别计算出传统的GM(1,1)模型、新信息GM(1,1)模型和新陈代谢GM(1,1)模型对于
    未来期数的预测结果,为了保证结果的稳健性,对三个结果求平均值作为预测值。
    4.2 数据期数为5,6或7:
    取最后两期为试验组,前面的n-2期为训练组;用训练组的数据分别训练三种GM
    模型,并将训练出来的模型分别用于预测试验组的两期数据;利用试验组两期的真实
    数据和预测出来的两期数据,可分别计算出三个模型的SSE;选择SSE最小的模型作为我
    们建模的模型。
    4.3 数据期数大于7:
    取最后三期为试验组,其他的过程和4.2类似。
  5. 输出并绘制图形显示预测结果,并进行残差检验和级比偏差检验。

11 . 神经网络——BP神经网络万金油 熟练

巧妙的写论文

image-20230815221805683

​ 上图是华为杯研究生数学建模竞赛的论文,大家根据自己实际建模的需求,在里面找一篇很类似的文章,然后使用这篇论文中的模型介绍(为了安全,最好是自己修改点,不要原封不动的搬到自己论文中)。
为什么要这样?
​ 很简单,避免查重,这样比你在网上复制安全多了,也比你复制本科数模比赛中优秀论文的模型介绍安全多了。
当然,其他的一些建模的模型也可以使用这种方法来避免查重。虽然我不推荐大家这样做,但我还是希望大家能得奖的,这算得上是一种投机取巧的方法了吧。

链接:https://pan.baidu.com/s/1hu7x_LC65Ez382725sqU4g (提取码:dwla)
备用下载链接:https://pan.baidu.com/s/1tHOA9rIMNYgFqHfIqCMwlQ

划分数据集

训练集(Training set) —— 用于模型拟合的数据样本。
验证集(Validation set)—— 是模型训练过程中单独留出的样本集,它可以用于调整模
型的超参数和用于对模型的能力进行初步评估。在神经网络中,我们用验证数据集去
寻找最优的网络深度,或者决定反向传播算法的停止点或者在神经网络中选择隐藏层
神经元的数量;
测试集(Testing set) —— 用来评估模最终模型的泛化能力。但不能作为调参、选择特
征等算法相关的选择的依据。
一个形象的比喻:
训练集-----------学生的课本;学生根据课本里的内容来掌握知识。
验证集------------作业,通过作业可以知道不同学生学习情况、进步的速度快慢。
测试集-----------考试,考的题是平常都没有见过,考察学生举一反三的能力。
https://blog.csdn.net/liushiqi0826/article/details/86514585

例题1:辛烷值的预测 单输出的(多输出类似)

【改编】辛烷值是汽油最重要的品质指标,传统的实验室检测方法存在样品用
量大,测试周期长和费用高等问题,不适用于生产控制,特别是在线测试。近年发
展起来的近红外光谱分析方法(NIR),作为一种快速分析方法,已广泛应用于农
业、制药、生物化工、石油产品等领域。其优越性是无损检测、低成本、无污染,
能在线分析,更适合于生产和控制的需要。
实验采集得到50组汽油样品(辛烷值已通过其他方法测量),并利用傅里叶近
红外变换光谱仪对其进行扫描,扫描范围900~1700nm,扫描间隔为2nm,即每个样
品的光谱曲线共含401个波长点,每个波长点对应一个吸光度。
(1)请利用这50组样品的数据,建立这401个吸光度和辛烷值之间的模型。
(2)现给你10组新的样本,这10组样本均已经过近红外变换光谱仪扫描,请预测
这10组新样本的辛烷值。

(1)导入数据

image-20230815224802282

image-20230815224906095

(2)开始训练

image-20230815224938417

莱文贝格-马夸特方法(Levenberg–Marquardt algorithm)能提供数非线性最小化
(局部最小)的数值解。此算法能借由执行时修改参数达到结合高斯-牛顿算法以
及梯度下降法的优点,并对两者之不足作改善(比如高斯-牛顿算法之反矩阵不存
在或是初始值离局部极小值太远)
贝叶斯正则化方法(Bayesian-regularization):(比较慢,减少过拟合)
https://blog.csdn.net/sinat_38835380/article/details/86927943
量化共轭梯度法(Scaled Conjugate Gradient ):

(3)训练完成,模型分析和预测

image-20230815225132396

image-20230815225919155

epoch:1个epoch等于使用训练集中的全部样本训练一次,每训练一次,神经网络
中的参数经过调整。MSE: Mean Squared Error 均方误差MSE = SSE/n
一般来说,经过更多的训练阶段后,误差会减小,但随着网络开始过度拟合训练数
据,验证数据集的误差可能会开始增加。在默认设置中,在验证数据集的MSE连续
增加六次后,训练停止,最佳模型对应于的最小的MSE。

% 列向量预测
result = zeros(size(pre_X,1),1);
for i=1:size(pre_X,1)
    result(i) = sim(Model.Network,pre_X(i,:)');
end

(4)设置随机种子——保证输出结果的一致性

fuza_code.m

image-20230815225559127

(5)导出代码和模型

image-20230815225953060

image-20230815230009909

预测类题目思考

(1)真正的预测要结合背景,而不是直接套用模型

​ 第十一届三中全会于1978年12月18日至22日在北京举行,此次会议标志着我国改革开放的开始。
今年是2019年,改革开放进行了40周年,它改变了中国落后的命运,使中国富起来了,也使中国走向了世界强国的行列,我们收集了过去四十周年(1979-2018)中国GDP的增长率,请根据历史数据来合理的预测未来两年我国GDP的增长率。

image-20230815230728796

(2)加入符合背景的变量

image-20230815230824440

image-20230815231237807

12 . 主成分分析

​ **主成分分析是一种降维算法,它能将多个指标转换为少数几个主成分,这些主成分是原始变量的线性组合,且彼此之间互不相关,其能反映出原始数据的大部分信息。**一般来说,当研究的问题涉及到多变量且变量之间存在很强的相关性时,我们可考虑使用主成分分析的方法来对数据进行简化。

​ 主成分分析是把原来多个变量划为少数几个综合指标的一种统计分析方法。
​ 从数学角度来看,这是一种降维处理技术。

(1)数据降维的作用

降维具有如下一些优点:

  • 使得数据集更易使用;
  • 降低算法的计算开销;
  • 去除噪声;
  • 使得结果容易理解

(2)主成分分析的思想

image-20230816171858827

image-20230816171919405

(3)主成分分析PCA的计算步骤

image-20230816172001612

image-20230816172015757

image-20230816172036489

(4)例1

image-20230816173542992

image-20230816173616742

写出主成分并简要分析
F 1 = 0.469 X 1 + 0.404 X 2 + 0.394 X 3 + 0.408 X 4 + 0.337 X 5 + 0.427 X 6 F 2 = − 0.365 X 1 − 0.397 X 2 + 0.397 X 3 − 0.365 X 4 + 0.569 X 5 + 0.308 X 6 F 3 = 0.092 X 1 + 0.613 X 2 − 0.279 X 3 − 0.705 X 4 + 0.164 X 5 + 0.119 X 6 X i 均是标准化后的指标, x i : 身高、坐高、胸围、手臂长、肋围和腰围 第一主成分 F 1 对所有 ( 标准化 ) 原始变量都有近似相等的正载荷 , 故称第一主成分为 ( 身材 ) 大小成分。 第二主成分 F 2 在 X 3 , X 5 , X 6 上有中等程度的正载荷 , 而在 X 1 , X 2 , X 4 上有中等程度的负载荷 , 称第二主成分为形状成分 ( 或胖瘦成分 ) 。 第三主成分 F 3 在 X 2 上有大的正载荷 , 在 X 4 上有大的负载荷 , 而在其余变量上的载荷都较小 , 可称第三主成分为臂长成分。因为第三主成分贡献率不高 ( 7.65 % ) , 因此我们也可以考虑只取前两个主成分进行分析。 F_1=0.469X_1+0.404X_2+0.394X_3+0.408X_4+0.337X_5+0.427X_6 \\ \begin{aligned}F_2=-0.365X_1-0.397X_2+0.397X_3-0.365X_4+0.569X_5+0.308X_6\end{aligned} \\ F_3=0.092X_1+0.613X_2-0.279X_3-0.705X_4+0.164X_5+0.119X_6 \\ X_i均是标准化后的指标,x_i:身高、坐高、胸围、手臂长、肋围和腰围 \\ 第一主成分F_1对所有(标准化)原始变量都有近似相等的正载荷,故称第一主成分为(身材)大小成分。 \\ 第二主成分F_2在X_3,X_5,X_6上有中等程度的正载荷,而在X_1,X_2,X_4上有中等程度的负载荷,\\称第二主成分为形状成分(或胖瘦成分)。 \\ 第三主成分F_3在X_2上有大的正载荷,在X_4上有大的负载荷,而在其余变量上的载荷都较小,\\可称第三主成分为臂长成分。因为第三主成分贡献率不高(7.65\%),\\ 因此我们也可以考虑只取前两个主成分进行分析。 F1=0.469X1+0.404X2+0.394X3+0.408X4+0.337X5+0.427X6F2=0.365X10.397X2+0.397X30.365X4+0.569X5+0.308X6F3=0.092X1+0.613X20.279X30.705X4+0.164X5+0.119X6Xi均是标准化后的指标,xi:身高、坐高、胸围、手臂长、肋围和腰围第一主成分F1对所有(标准化)原始变量都有近似相等的正载荷,故称第一主成分为(身材)大小成分。第二主成分F2X3,X5,X6上有中等程度的正载荷,而在X1,X2,X4上有中等程度的负载荷,称第二主成分为形状成分(或胖瘦成分)第三主成分F3X2上有大的正载荷,X4上有大的负载荷,而在其余变量上的载荷都较小,可称第三主成分为臂长成分。因为第三主成分贡献率不高(7.65%),因此我们也可以考虑只取前两个主成分进行分析。
主成分的解释其含义一般多少带有点模糊性,不像原始变量的含义那么清楚、确切,这是变量降维过程中不得不付出的代价。

clear;clc
 load data1.mat   % 主成分聚类
%  load data2.mat   % 主成分回归

% 注意,这里可以对数据先进行描述性统计
% 描述性统计的内容见第5讲.相关系数
[n,p] = size(x);  % n是样本个数,p是指标个数

%% 第一步:对数据x标准化为X
X=zscore(x);   % matlab内置的标准化函数(x-mean(x))/std(x)

%% 第二步:计算样本协方差矩阵
R = cov(X);

%% 注意:以上两步可合并为下面一步:直接计算样本相关系数矩阵
R = corrcoef(x);
disp('样本相关系数矩阵为:')
disp(R)
heatmap(R)
%% 第三步:计算R的特征值和特征向量
% 注意:R是半正定矩阵,所以其特征值不为负数
% R同时是对称矩阵,Matlab计算对称矩阵时,会将特征值按照从小到大排列哦
% eig函数的详解见第一讲层次分析法的视频
[V,D] = eig(R);  % V 特征向量矩阵  D 特征值构成的对角矩阵


%% 第四步:计算主成分贡献率和累计贡献率
lambda = diag(D);  % diag函数用于得到一个矩阵的主对角线元素值(返回的是列向量)
lambda = lambda(end:-1:1);  % 因为lambda向量是从小大到排序的,我们将其调个头
contribution_rate = lambda / sum(lambda);  % 计算贡献率
cum_contribution_rate = cumsum(lambda)/ sum(lambda);   % 计算累计贡献率  cumsum是求累加值的函数
disp('特征值为:')
disp(lambda')  % 转置为行向量,方便展示
disp('贡献率为:')
disp(contribution_rate')
disp('累计贡献率为:')
disp(cum_contribution_rate')
disp('与特征值对应的特征向量矩阵为:')
% 注意:这里的特征向量要和特征值一一对应,之前特征值相当于颠倒过来了,因此特征向量的各列需要颠倒过来
%  rot90函数可以使一个矩阵逆时针旋转90度,然后再转置,就可以实现将矩阵的列颠倒的效果
V=rot90(V)';
disp(V)


%% 计算我们所需要的主成分的值
m =input('请输入需要保存的主成分的个数:  ');
F = zeros(n,m);  %初始化保存主成分的矩阵(每一列是一个主成分)
for i = 1:m
    ai = V(:,i)';   % 将第i个特征向量取出,并转置为行向量
    Ai = repmat(ai,n,1);   % 将这个行向量重复n次,构成一个n*p的矩阵
    F(:, i) = sum(Ai .* X, 2);  % 注意,对标准化的数据求了权重后要计算每一行的和
end

%% (1)主成分聚类 : 将主成分指标所在的F矩阵复制到Excel表格,然后再用Spss进行聚类
% 在Excel第一行输入指标名称(F1,F2, ..., Fm)
% 双击Matlab工作区的F,进入变量编辑中,然后复制里面的数据到Excel表格
% 导出数据之后,我们后续的分析就可以在Spss中进行。

%%(2)主成分回归:将x使用主成分得到主成分指标,并将y标准化,接着导出到Excel,然后再使用Stata回归
% Y = zscore(y);  % 一定要将y进行标准化哦~
% 在Excel第一行输入指标名称(Y,F1, F2, ..., Fm)
% 分别双击Matlab工作区的Y和F,进入变量编辑中,然后复制里面的数据到Excel表格
% 导出数据之后,我们后续的分析就可以在Stata中进行。

(5)主成分的应用

(1)主成分分析用于聚类

计算出第一主成分和第二主成分的值,将其视为两个新的指标(可以在图上直观的展示各样本的分布情况)

通过矩阵乘法就行

(2)主成分回归

主成分回归可用来解决多重共线性的问题。

(3)例子

image-20230816175510507

<1>解释回归结果,重要的是为每个主成分确定含义

image-20230816175549070

<2>回归

image-20230816175624042

(6)主成分回归和逐步回归选择

之前学过逐步回归,逐步回归也可以用来解决多重共线性问题,我该用逐步回归还是今天学习的主成分分析呢?
​ 如果你能够很好的解释清楚主成分代表的含义,那么我建议你在正文中既用主成分分析,又用逐步回归(多分析点没啥坏处,只要你能保证你不分析错就行),如果你解释不清楚,那么还是用逐步回归吧。

13 . 因子分析

​ 因子分析由斯皮尔曼在1904年首次提出,其在某种程度上可以被看成是主成分分析的推广和扩展。
​ 因子分析法通过研究变量间的相关系数矩阵,把这些变量间错综复杂的关系归结成少数几个综合因子,由于归结出的因子个数少于原始变量的个数,但是它们又包含原始变量的信息,所以,这一分析过程也称为降维。由于因子往往比主成分更易得到解释,故因子分析比主成分分析更容易成功,从而有更广泛的应用。

(1)因子分析和主成分分析的对比

image-20230817131202067

其他主要区别:
1 .主成分分析只是简单的数值计算,不需要构造一个模型,几乎没什么假定;而因子分析需要构造一个因子模型,并伴随几个关键性的假定。
2 .主成分的解是唯一的,而因子可有许多解。
因子解释成功的可能性要远大于主成分解释成功的可能性。

image-20230817131341583

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值