回归
-
目的:研究变量之间的关系(回归分析与相关分析)
-
区别:相关分析只能看出变量之间的线性相关程度,回归分析可以进行分析与预测
-
基本理论概述
1.相关分析
测度方法:1)列相关表2)画相关图找关系3)计算相关系数(前两个是初步观察,最后一个是定量判断)2.回归分析
1)基本步骤:设置指标变量,数据处理,构建模型,参数估计,参数的显著性检验,分析控制预测
2)一般形式:y=f(x1,x2,x3,…xn)+ε (注意随机误差项)
3)注意事项:
(1)设置指标变量:不引进与问题无关的变量(分析现实意义),变量之间可能有线性关系(信息重叠),可以用主成分分析得到的变量进行主成分回归,指标数量不易过多,会引起累计误差
(2)收集整理数据:缺失数据的处理(删除?插值);剔除异常值;标准化(无量纲化);
先画散点图寻找可能的非线性关系,对y进行相关操作(如对数化,指数化),将xy之间的非线性映射转化为可计算的线性映射(广义线性回归)
(3)建立理论模型:基于(2)尝试的非线性关系
(4)参数估计:最小二乘(OLSE),极大似然估计(MLE),岭回归(避免有些线性相关程度高而无唯一系数解的问题),主成分回归(保证参与回归的指标变量是线性无关的,再回代得到原指标变量的回归方程),偏最小二乘回归(集大成者:主成分分析+多元线性回归+相关性分析)。
关于偏最小二乘回归的基础部分,百度上的这个ppt讲的还是挺清楚的:
https://wenku.baidu.com/view/70a7c078f71fb7360b4c2e3f5727a5e9856a27bf.html?rec_flag=default&sxts=1586015050277
(5)模型的检验与修改:检验相关统计量的值,若不理想的话则进行修改:可以画图去掉离群点,若变量相关性强的话要重新选择指标变量或参数估计方式。
(6)回归模型的应用:定性与定量分析,预测。 -
具体操作
1)OLSE:[B,BINT,R,RINT,STATS] = regress(Y,X,ALPHA)
参数说明
B:回归系数,是个向量(“the vector B of regression coefficients in the linear model Y = X*B”)。
BINT:回归系数的区间估计(“a matrix BINT of 95% confidence intervals for B”)。
R:残差( “a vector R of residuals”)。
RINT:置信区间(“a matrix RINT of intervals that can be used to diagnose outliers”)。
STATS:用于检验回归模型的统计量。有4个数值:判定系数R^2,F统计量观测值,检验的p的值,误差方差的估计。
相关系数 r2越接近 1,说明回归方程越显著;F > F1-α(k,n-k-1)时拒绝 H0,F 越大,说明回归方程越显著;与 F 对应的概率 p<α 时拒绝 H0,回归模型成立.
ALPHA:显著性水平(缺少时为默认值0.05)。
2)画出残差及其置信区间: rcoplot(r,rint)得到异常点,可去除异常点优化模型
3)逐步回归
X=[7,26,6,60;1,29,15,52;11,56,8,20;11,31,8,47;7,52,6,33;11,55,9,22;3,71,17,6;1,31,22,44;2,54,18,22;21,47,4,26;1,40,23,34;11,66,9,12]; %自变量数据
Y=[78.5,74.3,104.3,87.6,95.9,109.2,102.7,72.5,93.1,115.9,83.8,113.3]; %因变量数据
stepwise(X,Y,[1,2,3,4],0.05,0.10)
4)多项式回归:[p,S]=polyfit(x,y,m)
[p,S,mu] = polyfit(x,y,n) 还返回 mu,后者是一个二元素向量,包含中心化值和缩放值。mu(1) 是 mean(x),mu(2) 是 std(x)。使用这些值时,polyfit 将 x 的中心置于零值处并缩放为具有单位标准差
polytool(x,y,m)
polytool(x,y,n,alpha,xname,yname) labels the x and y values on the graphical interface using xname and yname. Specify n and alpha as [] to use their default values
[Y,DELTA]=polyconf(p,x,S,alpha)求polyfit所得
的回归多项式在x处的预测值Y及预测值的显著性为1-
alpha的置信区间Y DELTA;alpha缺省时为0.5.
5)多元二项回归:rstool(x,y,’model’, alpha)
'linear' — Constant and linear terms (the default)
'purequadratic' — Constant, linear, and squared terms
'interaction' — Constant, linear, and interaction terms
'quadratic' — Constant, linear, interaction, and squared terms
beta(系数)rmse(剩余标准差)
6)非线性回归
[beta,r,J]=nlinfit(x,y,’model’, beta0)
[Y,DELTA]=nlpredci(’model’, x,beta,r,J)
求nlinfit 或nlintool所得的回归函数在x处的预测值Y及预测值的显著性为1-alpha的置信区间Y DELTA.
*“其实这里个人觉得可以先用多项式回归和非线性回归,找一个效果好的回归,再用线性回归的方式来实现,这样就会有更多可以分析模型优劣的统计量*”
7)偏最小二乘回归
[XL,YL,XS,YS,BETA,PCTVAR] = plsregress(X,Y,ncomp)
可以先选取较大的主成分个数ncomp,再从中选取解释率和较高的前几个成分,再将其作为新的ncomp使用得到最终解。或者利用交叉验证法得到最优ncomp.
ps:回归效果不能只看模型参数的统计值,还要画图看一下具体的效果
主成分分析
-
原理:标准化数据的协方差矩阵的特征值,特征向量
重点是特征向量的选择:不能随意选择正负,要保证对于主成分得分高的样本,系数高的项对应值也要高。总的来说就是要保证绝对值大的那部分变量的系数是正的,也可以理解为对于每一主成分保证系数和为正,他们的意思都是差不多的,这样做是为了提高模型的可解释性。 -
应用
系统评估:以贡献率为系数对主成分进行线性组合作为总和得分
主成分回归:对主成分进行回归,再回代到原变量。这样可以避免变量间线性相关而导致正规方程无解的问题(当然也可以用梯度下降),缺点是丢失了部分信息,因为毕竟没有选择所有主成分。 -
操作
[p,princ,latent]=princomp(x)
p:系数
princ:主成分得分
latent:特征值
[COEFF,latent,explained] = pcacov(V)
Coeff:系数
latent:特征值
explained:贡献率