建模比赛中最基础的模型,主要用于解决评价类问题(例如:选择哪种方案最好,哪位运用动员或者员工的表现更优秀)。
评价类问题主要依据权重(重要性权重)来解决:
例如 高考选择学校时,有A和B两个学校进行学习,那么如何挑选学校就是一个问题了。
则我们依据权重对学习氛围,就业前景,男女比例,校园景色逐一进行权重分析。
指标权重 | A | B | |
学习氛围 | 0.4 | 0.7 | 0.3 |
就业前景 | 0.3 | 0.5 | 0.5 |
男女比例 | 0.2 | 0.3 | 0.7 |
校园景色 | 0.1 | 0.25 | 0.75 |
同一指标的权重和为一,则结果:
A=0.4*0.7+0.3*0.5+0.2*0.3+0.1*0.25=0.515
B=0.4*0.3+0.3*0.5+0.2*0.7+0.1*0.75=0.485
在选择时根据这章权重分析表可以简单选出自己心仪的学校
再引入一个例子:假如小明想去旅游。粗略的检索了网上的资料后确定了,黄山,稻城,武当山三个地方作为目标景点。 请你确定评价指标,形成评价体系来为小明选出最佳方案。
首先解决此类问题,也就是评价类问题,首先要想到三个问题:
1-我们评价的目标是什么?
2-我们为了到达目标有几种方案?
3-评价的准则或者说目标是什么?(根据什么来评价好坏)
前两个问题显而易见的,从题目中可以直接读出来。但是第三个问题的答案需要我们根据题目中的背景材料,常识以及网上搜集到的参考资料结合,以此选出最合适的指标。
对于本问题分析得出五个指标 景色,花费,居住,饮食,交通等五个指标。
人的思想千变万化对于同一个问题的答案可能每天都不相同,所以不可能直接让小明对所有指标进行判断,所以我们分而治之,对两个指标两个指标相互比较,最终推算出权重。
标度 | 含义 |
1 | 表示两个因素相比,同样重要 |
3 | 表示两个因素相比,一个因素比另一个因素稍微重要 |
5 | 表示两个因素相比,一个因素比另一个因素明显重要 |
7 | 表示两个因素相比,一个因素比另一个因素强烈重要 |
9 | 表示两个因素相比,一个因素比另一个因素重要 |
2,4,6,8 | 上述相邻判断的中值 |
倒数 | A/B=3则B/A=1/3 |
对于五个指标和三个景色对应的五个指标下的权重,我们引入权重列表。
景色 | 话费 | 居住 | 饮食 | 交通 | |
景色 | 1 | 1/2 | 4 | 3 | 3 |
花费 | 2 | 1 | 7 | 5 | 5 |
居住 | 1/4 | 1/7 | 1 | 1/2 | 1/3 |
饮食 | 1/3 | 1/5 | 2 | 1 | 1 |
交通 | 1/3 | 1/5 | 3 | 1 | 1 |
这是对于指标的权重分析法:上表一个5*5的方阵,我们记作A,对应元素为:
(1)的意义是,与指标j相比,i的重要程度
(2)当i=j的时候,两个指标相同,因此同等重要记为1
(3)当每个元素都大于0,且=1时,我们称这个矩阵叫做正互反矩阵。
这个矩阵也叫作层次分析法的判断矩阵。
但填写判断矩阵可能会引发一些问题:
景色 | 稻城 | 武当山 | 黄山 |
稻城 | 1 | 2 | 1 |
武当山 | 1/2 | 1 | 2 |
黄山 | 1 | 1/2 | 1 |
细心观察就会发现其中的逻辑性问题! 稻城=A 武当山=B 黄山=C 则 A> B A=C B>C 出现了矛盾之处(不一致现象)
景色 | 话费 | 居住 | 饮食 | 交通 | |
景色 | 1 | 1/2 | 4 | 3 | 3 |
花费 | 2 | 1 | 7 | 5 | 5 |
居住 | 1/4 | 1/7 | 1 | 1/2 | 1/3 |
饮食 | 1/3 | 1/5 | 2 | 1 | 1 |
交通 | 1/3 | 1/5 | 3 | 1 | 1 |
上表一个5*5的方阵,我们记作A,对应元素为 我们将这种没有矛盾的矩阵成为一致矩阵
一致矩阵需要满足三个条件(1)每一个元素都大于0
(2)左向下对角元素均为一
(3)各行各列对应成比例
由一致矩阵可以总结出:n阶一致矩阵的一个特征值为n,其余特征值均为零。
当特征值为n时又可以得到,其对应的特征向量刚好为
,
........
引理:n阶正互反矩阵A为一致矩阵时当且仅当最大特征值为n,而当A为非特征矩阵时,一定有最大特征值大于n,判断矩阵越不一致则与n的差值就越大。
一致性检验的步骤:
第一步:计算一致性指标CI
第二步:查找对应的平均随机一致性指标RI
n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
RI | 0 | 0 | 0.52 | 0.89 | 1.12 | 1.26 | 1.36 |
1.46 | 1.49 | 1.52 | 1.54 | 1.54 | 1.56 | 1.58 | 1.59 |
第三步:计算一致性比例
如果一致性比例CR<0.1,则可以认为该判断矩阵的一致性比例可以接受:否则就需要对判断矩阵修正。
判断矩阵及计算权重
方法一:算数平均法求权重
景色 | 稻城 | 武当山 | 黄山 |
稻城 | 1 | 2 | 5 |
武当山 | 1/2 | 1 | 2 |
黄山 | 1/5 | 1/2 | 1 |
第一步:将判断矩阵按照归一化处理(每一个元素除以所在列的和)
景色 | 稻城 | 武当山 | 黄山 |
稻城 | 0.5882 | 0.5714 | 0.625 |
武当山 | 0.2941 | 0.2857 | 0.25 |
黄山 | 0.1177 | 0.1429 | 0.125 |
第二步:将归一化的各行各列相(按行求和)
权重 | |
稻城 | 0.5882+0.2941+0.1177=1.7846 |
武当山 | 0.5714+0.2857+0.1429=0.8298 |
黄山 | 0.625+0.25+0.125=0.3856 |
第三步:将相加后得到的数值除以n得到权重
权重 | |
稻城 | 1.7846/3=0.5949 |
武当山 | 0.8298/3=0.2766 |
黄山 | 0.3856/3=0.1285 |
假设判断矩阵A
那么算数平均法求得的权重向量为 (i=1,2,3,4...........)
方法二:特征值求权重
如果一致性检验可以接受那么可以仿照一致矩阵求权重的方法。
第一步:求出矩阵A的最大特征值以及对应的特征向量
第二步:对求出的特征向量归一化处理就可得到权重
景色 | 稻城 | 武当山 | 黄山 |
稻城 | 1 | 2 | 5 |
武当山 | 1/2 | 1 | 2 |
黄山 | 1/5 | 1/2 | 1 |
最大特征值为3.0055,一致性比例CR=0.0053,对应的特征向量位[-0.8902,-0.4132,-1918],对其归一化处理后,[0.5954,0.2764,0.1283]
方法三:几何平均法求权重
第一步:将A的元素按照行相乘得到一个新的向量
第二步:将新向量的每个分量开n次方
第三步:对此向量进行归一化处理即可得到权重。
假设判断矩阵A
那么几何平均法求得的权重向量 (i=1,2,3,4...........)
后面就是将各项权重计算而出,得到最终结果。
总结:层次分析法第一步需要分析系统各因素关系,建立系统的递阶层次结构。
如果用到了层次分析法一定要将层次结构图画出。
参差分析法的局限性:
(1)可决策层数不能太多,太多了n会很大,判断矩阵和一致矩阵差异可能会很大。
(2)如果决策层中的指标数据已知,那么用层次分析法就不是那么准确了。
承接上文参差分析法中,层次分析法当给出了精确数值时就显得不是那么准确了。当决策层中的数据已知时怎样让决策更加准确呢?
类举一个例子:
姓名 | 分数 |
小明 | 89 |
小王 | 60 |
小张 | 74 |
小刘 | 99 |
姓名 | 分数 | 排名 | 修正后的排名 | 评分 |
小明 | 89 | 2 | 3 | 0.3 |
小王 | 60 | 4 | 1 | 0.1 |
小张 | 74 | 3 | 2 | 0.2 |
小刘 | 99 | 1 | 4 | 0.4 |
如果保持排名不变,则可以随意修改分数,那么小王考60和考10分的结果就是相同的。这显然是不合理的。
姓名 | 分数 | 未归一化评分 | 归一化评分 |
小明 | 89 | 0.74 | 0.35 |
小王 | 60 | 0 | 0 |
小张 | 74 | 0.36 | 0.17 |
小刘 | 99 | 1 | 0.48 |
当我们给指标增加个数时:
现在我们新增一个指标如表:
姓名 | 分数 | 与人争吵次数 |
小明 | 89 | 2 |
小王 | 60 | 0 |
小张 | 74 | 1 |
小刘 | 99 | 3 |
指标名称
|
指标特点
|
例子
|
极大型指标(效益型指标)
|
越大(多)越好
|
成绩、 GDP 增速、企业利润
|
极小型指标(成本型指标)
|
越小(少)越好
|
费用、坏品率、污染程度
|
中间型指标
|
越接近某个值越好
|
水质量评估时的 PH 值
|
区间型指标
|
落在某个区间最好
|
体温、水中植物性营养物量
|
而对一个数据用优劣解距离法进行处理时分为三步。
第一步:原始矩阵正向化处理
顾名思义,所谓的将原始矩阵正向化,就是要将所有的指标类型统一转化为极大型指标。(转换的函数形式可以不唯一哦~ )
极小型指标转换为极大型指标:
公式:(如果所有元素都为正数,也可以实用
)
中间型转换为极大型:
中间指标即不要太大也不要太小,取某一特定的值最好。(列如水的pH值)
{}是一组中间型指标序列,且最佳的数值为
,那么正向化的公式有:
区间型指标转换为极大型:
区间型指标:指标值落在某个区间内最好,例如人的体温在36°~37°这个区间比较好。
是一组区间型指标,且最适区间为
那么正向化的公式如下:
,
第二步:正向矩阵标准化
标准化的目的是消除不同量纲的影响。
假设有n个要评价的对象,m个评价指标,构成的正向化矩阵如下所示:
那么对其中每一个元素除以所在列所有元素得平方和开方:
定义最大值 (
是每一列的最大值)
定义最小值 (
是每一列的最小值)
定义第i(i=1,2,3....n)个评价对象与最大值的距离
定义第i(i=1,2,3....n)个评价对象与最小值的距离
这里
那么,我们可以计算出第i(i=1,2,3....n)评价对象未归一化的得分:
然后我们可以进行归一化:
模型拓展:前面默认了所有指标的权重都是相等的,那么就有
而想要模型更加精确我们可以使用层次分析法再去将指标的权重计算出来,从而使模型更加精确。
插值算法的方法有很多,大都受到了龙格现象的约束导致在高次幂的时候来回浮动波动巨大,为此我们通常使用,分段三次埃尔米特插值和三次样条插值两种插值的方法所求数据类似,两种在数模比赛中选择一种使用即可,
分段三次埃尔米特插值和三次样条插值两种插值的方法原理复杂在这里不做过多解释,通常我们只要使用MATLAB来使用这两种算法即可,这两种插值算法如果不深究理论实际上就是一种编程算法,会涉及到MATLAB中的 pchip(),spline()这两种函数。
分段三次埃尔米特插值:
应用说明:MATLAB
x = -pi:pi; y = sin(x);
new_x = -pi:0.1:pi;
p = pchip(x,y,new_x);
figure(1); % 在同一个脚本文件里面,要想画多个图,需要给每个图编号,否则只会显示最后一个图哦~
plot(x, y, 'o', new_x, p, 'r-')
三次样条插值和分段三次埃尔米特插值的对比:
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') %标注显示在东南方向
应用说明:MATLAB
为什么不使用更高次幂以及奇次幂?
本章我们将介绍皮尔逊相关系数和斯皮尔曼等级相关系数,它们可用来衡量两个变量之间的相关性的大小,根据 数据满足的不同条件,我们要选择不同的相关系数进行计算和分析。
总体与样本
通常我们需要计算这些数据包括最大值,最小值,平均值,标准差,方差,偏度和峰度。将包含这些数据的表粘如你自己的论文中。
通常我们在使用皮尔逊相关系数时有需要先进行线性判断,去判断检验的两组数据是否存在线性关系,我们通常使用画散点图的方式去观察二者是否存在线性关系这个利用MATLAB和Python都很容易做到,更简单的是利用专业的统计软件spss去进行相关图形的绘制。
注意:这里的相关系数只是用来衡量两个变量线性相关程度的指标; 也就是说,你必须先确认这两个变量是线性相关的,然后这个相关系数才能 告诉你他俩相关程度如何。
关于皮尔逊相关系数有几个容易犯错的地方:
(1)非线性相关也会导致线性相关系数很大。
(2)离群点对线性相关系数很大,所以我们要求数据需要连续
(3)如果两个数据相关系数很大也不能说明这两个数据相关,有可能是被异常值影响,存在偶然性
(4)相关系数计算结果为0,只能说不是线性相关,但说不定会有更复杂的相关关系(非线性相关)
总结:
x = -4:0.1:4;
y = tpdf(x,28);
plot(x,y,'-')
grid on % 在画出的图上加上网格线
这里我们采用95%的置信水平,因为这是一个双侧检验所以我们需要寻找能覆盖95%的部分,我们可以通过查表来找到95%的置信水平对应的临界值2.048
因为3.0550>2.048所以我们在95%的置信水平上可以拒绝原假设,所以也就是r是显著的不异于0的。同时我们借助MATLAB可以计算出Z对应覆盖的概率。
disp('该检验值对应的p值为:')
disp((1-tcdf(3.055,28))*2)
%双侧检验的p值要乘以2
最后得到p=0.0049
p<0.01,说明在99%的置信水平上拒绝原假设。
p<0.05,说明在95%的置信水平上拒绝原假设。
p<0.1,说明在90%的置信水平上拒绝原假设。
%% 计算各列之间的相关系数以及p值
[R,P] = corrcoef(Test)
%% 正态分布检验
% 检验第一列数据是否为正态分布
[h,p] = jbtest(Test(:,1),0.05)
% 用循环检验所有列的数据
n_c = size(Test,2); % number of column 数据的列数
H = zeros(1,6);
P = zeros(1,6);
for i = 1:n_c
[h,p] = jbtest(Test(:,i),0.05);
H(i)=h;
P(i)=p;
end
disp(H)
disp(P)
当样本数量:我们通常采用Shapiro-wilk检验
于是我们再此进行假设检验:该随机变量符合正态分布
:该随机变量不符合正态分布。置信水平同样采用95%,直接使用spss软件进行计算。(软件计算方法很简单直接百度即可)
接下来我们介绍另一种相关系数的计算方法
X | Y | X的等级 | Y的等级 | 等级差 | 等级差的平方 |
3 | 5 | 2 | 1 | 1 | 1 |
8 | 10 | 5 | 4.5 | 0.5 | 0.25 |
4 | 9 | 6 | 3 | 0 | 0 |
7 | 10 | 4 | 4.5 | -0.5 | 0.25 |
2 | 6 | 1 | 2 | -1 | 1 |
%% MATLAB求解皮尔逊相关系数
RX = [2 5 3 4 1]
RY = [1 4.5 3 4.5 2]
R = corrcoef(RX,RY)
% 直接给出相关系数和p值
[R,P]=corr(Test, 'type' , 'Spearman')
两个相关系数的比较:
研究两组变量(每组变量中都可能有多个指标) 之间相关关系的一种多元统计方法。它能够揭示 出两组变量之间的内在联系。
典型相关分析的定义:
典型相关分析的关键步骤:
(1)数据的分布要有假设:两数据服从联合正态分布。(这个假设要在进行典型相关分析前在论文中提起)
(2)首先要对两组变量的相关性进行检验(构造似然比统计量 )
和
p值小于0.05(0.1)表示在95%(90%)的置信水平下拒绝原假设,即认为两组变量有关。
本章将使用统计软件stata,进行对回归系数以及各种P值的计算。
回归的思想,回归分析是研究X和Y之间的相关性的分析,但在这里要分清相关性和因果性的区别。
这里提取上述三个关键词,X,Y,相关性。
(1)第一个关键词是X,X是用来解释Y的相关变量,所以X成为自变量,或者成为解释变量,而回归分析的任务就是研究X和Y的相关关系,尝试解释Y的形成机制,进而通过X去预测Y的目的。
(2)第二个关键词是Y,Y俗称因变量,实际应用中Y通常是我们需要研究的核心变量。
(3)第三个关键词相关性,指的是X与Y之间是否存在联系称为相关性。
回归分析的应用方面
(1)判断那些X(自变量)是同Y(因变量)真相关,那些不是。(逐步回归法)
(2)这些有用的X变量同Y的相关 关系是正的呢,还是负的?
(3) 想赋予不同X不同的权重, 也就是不同的回归系数,进而我们可以知道不同变量之间的相对重要性。
类型 | 模型 | Y的特点 | 例子 |
线性回归 | ols,gls(最小二乘) |
连续数值型变量
|
GDP 、产量、收入
|
0-1回归 | logistic |
二值变量( 0‐1 )
|
是否违约、是否得病
|
定序回归 | probit定序回归 |
定序变量
|
等级评定(优良差)
|
计数回归 | 泊松回归 |
计数变量
|
每分钟车流量
|
生存回归 | Cox等比例风险回归 |
生存变量(截断数据
|
企业、产品的寿命
|
看完回归的分类后,接下来就介绍数据的分类
类型 | 定义 | 例子 |
横截面数据
|
在某一时点收集的不同对象的数据
|
(1)我们自己发放问卷得到的数据 (2)全国各省份 2018 年 GDP 的数据 (3)大一新生今年体测的得到的数据
|
时间序列数据
|
对同一对象在不同时间连续观察所取得的数据
|
(1)从出生到现在,你的体重的数据(每年生日称一次 ) 。 (2)中国历年来GDP 的数据。
(3)在某地方每隔一小时测得的温度数据。
|
面板数据
|
横截面数据与时间序列数据综合起来的一种数据资源
|
2008‐2018 年,我国各省份 GDP 的数据
|
针对不同数据类型的不同出力方法有:
数据类型 | 常见建模方法 |
横截面数据
|
多元线性回归
|
时间序列数据
|
移动平均、指数平滑、 ARIMA 、 GARCH 、 VAR 、协积
|
面板数据
|
固定效应和随机效应、静态面板和动态面板
|
在本节中我们主要研究多元线性回归。
首先介绍线性的概念,假设X是自变量,Y是因变量,并且满足线性关系:
X线性假定并不要求初始模型都呈上述的严格线性关系,自变量与因变量可以通过变量替换而转化为线性模型。
回归系数的解释
,
和
为回归系数,当表达式中只有一个自变量时称作一元线性回归方程,当其中的自变量大于等于二时,我们可以建立多元线性回归模型,当一个线性关系中牵扯到多个自变量时,如果有遗漏与y相关但是为添加到表达式自变量,而这些自变量又与已经添加得自变量相关,那么就会引发一个严重的现象——内生性
通常我们不可考虑的具体意义,因为自变量通常不会全为0,
:控制其他自变量不变的情况下,相应的自变量X没增加一个单位,对Y造成的变化。
这个时候就涉及到特殊情况,取对数是的回归系数如何解释?
内生性:
当不满足与所有自变量均不相关时,该模型具有内生性,而内生性会导致回归系数的不准确,具体表现为不满足无偏和一致性。
无内生性(no endogeneity)要求所有解释变量均与扰动项不相关。这个假定通常太强,因为解释变量一般很多(比如,5‐15个解释变量), 且需要保证它们全部外生,所以我们选择弱化这个条件。
summarize 变量1 变量2 ......
(2)定性数据
tabulate 变量名,gen(A)
返回对应的这个变量的频率分布,并生成对应的虚拟变量(以A开头)
(3)stata中回归的语句
regress 因变量 自变量1 自变量2 自变量3 ......
(默认使用的是ols:普通的最小二乘法)
生成的数据里有几个重要的参数,F(m,n)和Prob>F这两个值是联合显著检验,原假设为
而cofe对应的数就是我们以求的回归系数,p>|t|对应的是P值,假设检验对应的P值,原假设为该回归系数显著的不异于0
我们也可以假如定性数据但是需要将定性数据转化为虚拟变量。但是加入虚拟变量需要注意完全多重共线性的问题。
R-squared对应的为拟合优度,Adj R-squared是调整后的拟合优度。
解释型回归更多的关注模型整体显著性以及自变量的统计显著性和经济意义显著 性即可。
(2)可以对模型进行调整,例如对数据取对数或者平方后再进行回归。
regress 因变量 自变量1 自变量2 自变量3 ......,beta
线性方程中的线性系数介绍完了,接下来介绍的是扰动项,
为无法观测的且满足一定条件的扰动项。横截面数据容易出现异方差的问题;时间序列数据容易出现自相关的问题。
异方差:
estat hettest , rhs iid
但是需要注意在回归结束后使用
BP检验的结果,原假设:扰动项不存在异方差
怀特检验
estat imtest,white
我们在数据分析完后重点关注的是 Prob所接的系数,也就是假设检验的P值
regress 因变量 自变量1 自变量2 自变量3 ......,robust
我们在代入定性数据时引入虚拟变量,而会引发多重共线性。
estat vif
同样的需要在回归结束后去使用,一个经验规则是VIF>10,则认为该回归方程存在严重的多重共线性。
逐步回归分析
pe(#1)specifies the significance level for addition to the model;terms with p<#1 are eligible for addition(向前逐步回归:显著才加入到模型中)
pe(#1)specifies the significance level for removal from the model;terms with p>=#1 are eligible for removal(向后逐步回归:不显著踢逐出模型中)
#1对应的是需要的置信水平对应的P值,例如置信水平为95%,则#1值为0.05
本节介绍图论基本概念,并主要讲解图论中的最短路径问题,根据图的不同我们将学习两种不同算法。Dijkstra和Bellman-Ford算法。
图的基本概念:
在MATLAB中有专门做出这一部分的函数;
graph(s,t)%可在s和t的对应节点之间创建边,并生成一个图
G=graph(s,t)
plot(G)
graph(s,t,w)%可在 s 和 t 中的对应节点之间以w的权重创建边,并生成一个图
G=graph(s,t)
plot(G2, 'linewidth', 2) % 设置线的宽度
set( gca, 'XTick', [], 'YTick', [] )% 下面的命令是在画图后不显示坐标轴
以上都是无向图,如果需要做有向图的话要把函数graph置换为digragh,由s中的元素指向对应的t中的元素。
对于上面提到的两种算法这里原理不做解释,他们的区别在于Bellman‐Ford(贝尔曼‐福特)算法可以计算含有负权的图但是Dijkstra算法不可以,同时这两者也有共同的特点,就是都不支持计算含有负权回路的图!!!
什么是负权回路呢:
[P,d] = shortestpath(G,start,end [,'Method',algorithm] )
d = distances(G [,'Method',algorithm])
同时我们还能指定范围找到在范围内的所有点
[nodeIDs,dist] = nearest(G,s,d [,'Method',algorithm])
本讲介绍分类模型。对于二分类魔性,我们使用逻辑回归(logistic regression)和Fisher线性判别两种分类算法;对于多分类模型,我们也可以使用上面的模型。
对于二分类问题,我们同常使用ogistic regression也叫0-1回归,我们把对于因变量为分类变量的情况,我们可以使用逻辑回归进行处理。 把y看成事件发生的概率,y=>0.5表示发生;y<0.5表示不发生。
如果我们使用之前使用的线性回归,就会引发内生性的问题:y只能取0或者1,这就意味着扰动项
显然扰动项和自变量的相关性并不为0,所以会导致回归系数不一致有偏。
,预测值可能会出现>1或者0<的不实情况
两点分布(伯努利分布)
事件 | 1 | 0 |
概率 | P | 1-P |
在x给定的情况下,考虑y的两点分布
称作连接函数,通常取标准正态分布的累积密度函数,或者Sigmoid函数,为了方便计算通常使用第二个函数。
我们只需要保证是定义在[0,1]上的函数,那么就可以保证预测概率在0到1之间,可以理解为y=1时的概率。
连接函数取法:
这里我们可以看出这是一个非线性模型,使用极大似然估计方法进行估计
样本的对数似然函数:
当用于分类时:
在给定X的情况下,考虑y的两点分布概率
E(y|X)=1*P(y=1|x)+0*P(y=1|X)=P(y=1|x),所以我们可以把理解为y=1时发生的概率。
如果>0.5或者
=0.5,则认为期预测的y=1,否则就认为其预测的y=0。
我们使用专业的统计软件spss去计算预测的类别,当数据量过少时,我们想提高预测的准确率时,我们可以添加处理过得变量,将原有的数据平方或者取对数等处理。
但虽然预测能力提高了,但是容易发生过拟合现象。对于样本数据的预测非常好,但是对于样本外 的数据的预测效果可能会很差。
对此的解决方案是
下面介绍Fisher线性判别分析
所谓聚类,就是将样本划分为由类似的对象组成的多个类得过程。聚类后,我们可以更加准确的在每个类中单独使用统计模型进行估计,分析和预测。也可以探究不同类之间的相关性和主要差异。
聚类和上一讲分类的区别是:聚类是未知类别,分类是已知类别。
K-means聚类算法
流程:
(1)指定需要划分的簇的个数K值(类的个数);
(2)随机地选择K个数据对象作为初始的聚类中心不一定要是我们的样本点);
(3)计算其余的各个数据对象到这K个初始聚类中心 的距离,把数据对象划归到距离它最近的那个中心所处在的簇类中;
(4)调整新类并且重新计算出新类的中心;
(5)循环步骤三和四,看中心是否收敛(不变),如果收敛或达到迭代次数则停止循环;
(6)结束。
通常使用这个算法是我们都会绘制算法流程图,但K-means聚类算法具有以下几个缺点和优点。
首先介绍三个系统的概念:白色系统,灰色系统,黑色系统,
白色系统:系统的信息是完全明确的。
灰色系统:系统信息部分已知,部分未知。
黑色系统:系统的内部信息是未知的。
时期 | 原始数据(a) | 累加数据(b) |
1 | 12.2 | 12.2 |
2 | 15.2 | 27.4 |
3 | 10.9 | 32.8 |
4 | 15.0 | 53.2 |
5 | 14.7 | 69.7 |
6 | 14.4 | 82.3 |
7 | 19.8 | 102.1 |
8 | 17.2 | 119.3 |
9 | 17.5 | 136.8 |
10 | 17.9 | 154.8 |
11 | 14.4 | 169.2 |
12 | 16.3 | 185.5 |
这里的累加数据所得。
时期 | 原始数据(a) | 累加数据(b) | 紧邻均值生成序列 |
1 | 12.2 | 12.2 | |
2 | 15.2 | 27.4 | 19.8 |
3 | 10.9 | 32.8 | 32.8 |
4 | 15.0 | 53.2 | 45.7 |
5 | 14.7 | 69.7 | 60.6 |
6 | 14.4 | 82.3 | 75.1 |
7 | 19.8 | 102.1 | 93.2 |
8 | 17.2 | 119.3 | 110.7 |
9 | 17.5 | 136.8 | 128.1 |
10 | 17.9 | 154.8 | 145.8 |
11 | 14.4 | 169.2 | 162.0 |
12 | 16.3 | 185.5 | 177.3 |
我们称为GM(1,1)模型的基本形式(k=2,3,4...n)其中b表示灰作用量,-a表示发展系数:
下面引入矩阵形式:
于是,GM(1,1)模型可以表示为:
我们可以利用最小二乘法得到参数a,b的估计值为:
我们为了让其更好理解,将序列视为因变量,
序列视为自变量,进行回归。
这里我们对矩阵进行最小二乘法求出a和b,这里涉及对矩阵的求导,在此我们做深究,只需要知道,这个答案即可。
假设我们考虑有常数项的k个自变量的多元回归模型,那么X是n*(K+1)的方阵,
可逆可以推出 ,x的列向量组线性无关。所以这里又得出样本的数量必须大于自变量。
利用OLS估计我们能得到a和b,即(k=2,3,,,n)
(牛顿-莱布尼兹公式)
被称为灰色微分方程。
我们通常无法用灰色微分方程进行求解,通常我们使用白化方程进行计算,这里涉及到求解微分方程,这里也不做介绍不懂得可以去高等数学(同济)上册看一看,GM(1,1)模型的本质是有条件的指数拟合:(这里的指数规律针对的是
序列而言原始序列是做差的结果)
准指数规律的检验
发展系数与预测情形的探究
当|a|>2时模型没有意义,当|a|<2时模型才具有意义。
当-a<0.3时,此模型适合短期和长期预测。
当0.3<-a<=0.5时,此模型适合短期,中长期预测应该谨慎使用。
当0.5<-a<=0.8时,此模型对短期预测应该谨慎使用。
当-a>1时,不宜用此模型进行预测。
总的来说应该是发展系数越小预测的越精确。
对于GM(1,1)模型进行检验,有两种检验方法,残差检验和级比偏差检验。
使用GM(1,1)模型对于未来的数据进行预测时,我们要先对原数据的拟合程度进行检验。
(1)残差检验
绝对残差:
平均相对残差:
如果平均相对残差小于百分之20,则认为GM(1,1)对原始数据的拟合达到一般要求。
如果平均相对残差小于百分之10,则认为GM(1,1)对原始数据的拟合效果非常不错。
注意:这个百分之10和百分之20并不一定,需要更据预测的场景。
(2)及比偏差检验(专门对于灰色预测模型)
首先更据原始数据计算出的级比(k=2,3.....n)
在利用预测出来的发展系数计算出相应的级比偏差和平均级比偏差
如果,则认为GM(1,1)对原始数据的拟合达到一般要求。
如果,则认为GM(1,1)对原始数据的拟合效果非常不错。
(4)以此类推,是
不相关的
的所有线性组合中方差最大者。
(5)新变量就是分别称为原指标
标量的第一,第二,...第m主成分
PCA的计算步骤
1.我们首先对样本矩阵进行标准化处理:
2.计算标准化样本的协方差矩阵
3.计算矩阵R的特征值和特征向量
4.计算主成分贡献率以及累积贡献率
贡献率=
5.写出主成分
一般我们取累积贡献率超过80%的特征值对应的主成分。
6.根据系数分析主成分代表的意义
对于主成分而言,指标系数越大,表示对该主成分影响最大。
X=zscore(x);#x为样本矩阵
R=cov(X);#计算样本协方差矩阵
[V,D] = eig(R);
lambda = diag(D);
lambda = lambda(end:-1:1);
contribution_rate = lambda / sum(lambda);
cum_contribution_rate = cumsum(lambda)/ sum(lambda);
V=rot90(V);
详细代码如上,MATLAB代码。
对于主成分分析就我个人来说,我认为最难的是对于分析过后的主成分进行解释说明,解释的不好这个方法也就失去作用。