岭回归算法
❶ 求教大神MATLAB的lasso函数怎么用,CV曲线图怎么画出来
Alpha: 即α得值,当为 0,表示Lasso为岭回归,这时它当然不是Lasso了,而是和Lasso相似的岭回归计算法,当该值为 1(默认值),则此程序为 Lasso,若为0~1之间,表示是 elastic net算法,也是与 岭回归和Lasso相似而不同的算法。
CV:为 交叉验证的设置。用于估计最佳的λ的值。 默认为“resubstitution”,这个我没有研究,而是使用了较为广泛的 K折交叉验证,一般 赋值 k =5或10,就是 5折交叉验证或10折交叉验证。
DFmax:返回拟合式中 非零系数的数量。
Lambda:这个就是Lasso活着岭回归活着elastic net中的参数λ的值,如果使用交叉验证,会使用交叉验证选择一个最优λ,如果默,则由系统根据计算公式默认赋值一个λ的最大值,关于最大值计算公式,在Lasso程序中有说明,或者你也可以指定λ的值。在确定该最大值后,还需要和Lambdaratio 和 Numlambda 确定λ的取值。
Lambdaratio λ的取值比例,它和Lambda构成λ的取值范围区间。
Numlambda λ的取值数量。Lambda确定λ的最大值,比如a,Lambdaratio确定λ最小值与最大值的比率,如Lambdaratio为0.01,那么λ的取值区间即为 0.01*a~a,而Numlambda则确定改区间取多少个λ,从而最终确定了λ的取值。
Reltol 坐标下降法的阈值。坐标下降法是求解elastic net的常用方法,这是该方法的一个参数。
Standardize:布尔值。是否对Lasso进行缩放。一般设置为 true,即 进行缩放。
输出参数:
Intercept:截距,就是线性方程中的常数项
lambda:列出使用的λ的值,升序排列,而且后面的参数的顺序与这个λ对应
alpha:α值
MSE:均方误差
DF
Fitinfo中的字段:
在使用CV交叉验证后,可以输出本字段中的结果,内容和上面的差不多,先不描述了,大家想了解的话我再加。
❷ 预测误差与预测误差率怎样计算
预测误差值公式:(A-E)/(E/100)=百分之几,超出为正,过少为负
其中A表示测量值,E表示正常值。
预测误差率计算方法:
a为第一次测量数据,b为第二次测量数据,c为第三次测量数据,d为第四次测量数据,e为第五次测量数据
(a+b+c+d+e)/ 5=平均值
平均值/100=平均值的百分比
(2)岭回归算法扩展阅读
误差分类:
1、模型误差:
在建立数学模型过程中,要将复杂的现象抽象归结为数学模型,往往要忽略一些次要因素的影响,对问题作一些简化。因此数学模型和实际问题有一定的误差,这种误差称为模型误差。
2、测量误差
在建模和具体运算过程中所用的数据往往是通过观察和测量得到的,由于精度的限制,这些数据一般是近似的,即有误差,这种误差称为测量误差。
3、截断误差
由于实际运算只能完成有限项或有限步运算,因此要将有些需用极限或无穷过程进行的运算有限化,对无穷过程进行截断,这样产生的误差成为截断误差。
4、舍入误差
在数值计算过程中,由于计算工具的限制,往往对一些数进行四舍五入,只保留前几位数作为该数的近似值,这种由舍入产生的误差成为舍入误差。
❸ 如何学习偏最小二乘法
偏最小二乘法 最小二乘法是一种数学优化技术,它通过最小化误差的平方和找到一组数据的最佳函数匹配。 用最简的方法求得一些绝对不可知的真值,而令误差平方之和为最小。 通常用于曲线拟合。很多其他的优化问题也可通过最小化能量或最大化熵用最小二乘形式表达。
偏最小二乘回归≈多元线性回归分析+典型相关分析+主成分分析
与传统多元线性回归模型相比,偏最小二乘回归的特点是:(1)能够在自变量存在严重多重相关性的条件下进行回归建模;(2)允许在样本点个数少于变量个数的条件下进行回归建模;(3)偏最小二乘回归在最终模型中将包含原有的所有自变量;(4)偏最小二乘回归模型更易于辨识系统信息与噪声(甚至一些非随机性的噪声);(5)在偏最小二乘回归模型中,每一个自变量的回归系数将更容易解释。
在计算方差和协方差时,求和号前面的系数有两种取法:当样本点集合是随机抽取得到时,应该取1/(n-1);如果不是随机抽取的,这个系数可取1/n。
多重相关性的诊断
1 经验式诊断方法
1、在自变量的简单相关系数矩阵中,有某些自变量的相关系数值较大。
2、回归系数的代数符号与专业知识或一般经验相反;或者,它同该自变量与y的简单相关系数符号相反。
3、对重要自变量的回归系数进行t检验,其结果不显着。
特别典型的是,当F检验能在高精度下通过,测定系数R2的值亦很大,但自变量的t检验却全都不显着,这时,多重相关性的可能性将很大。
4、如果增加(或删除)一个变量,或者增加(或删除)一个观测值,回归系数的估计值发生了很大的变化。
5、重要自变量的回归系数置信区间明显过大。
6、在自变量中,某一个自变量是另一部分自变量的完全或近似完全的线性组合。
7、对于一般的观测数据,如果样本点的个数过少,样本数据中的多重相关性是经常存在的。
但是,采用经验式方法诊断自变量系统中是否确实存在多重相关性,并不十分可靠,另一种较正规的方法是利用统计检验(回归分析),检查每一个自变量相对其它自变量是否存在线性关系。
2 方差膨胀因子
最常用的多重相关性的正规诊断方法是使用方差膨胀因子。自变量xj的方差膨胀因子记为(VIF)j,它的计算方法为
(4-5) (VIF)j =(1-R j2)-1
式中,R j2是以xj为因变量时对其它自变量回归的复测定系数。
所有xj变量中最大的(VIF)j通常被用来作为测量多重相关性的指标。一般认为,如果最大的(VIF)j超过10,常常表示多重相关性将严重影响最小二乘的估计值。
(VIF)j被称为方差膨胀因子的原因,是由于它还可以度量回归系数的估计方差与自变量线性无关时相比,增加了多少。
不妨假设x1,x2,…,xp均是标准化变量。采用最小二乘法得到回归系数向量B,它的精度是用它的方差来测量的。B的协方差矩阵为
Cov(B)= σ2 (X'X)-1
式中,σ2是误差项方差。所以,对于回归系数b j,有
Var(b j)= σ2cjj
cjj是(X'X)-1矩阵中第j个对角元素。可以证明,
cjj =(VIF)j
岭回归分析
1 岭回归估计量
岭回归分析是一种修正的最小二乘估计法,当自变量系统中存在多重相关性时,它可以提供一个比最小二乘法更为稳定的估计,并且回归系数的标准差也比最小二乘估计的要小。
根据高斯——马尔科夫定理,多重相关性并不影响最小二乘估计量的无偏性和最小方差性。但是,虽然最小二乘估计量在所有线性无偏估计量中是方差最小的,但是这个方差却不一定小。于是可以找一个有偏估计量,这个估计量虽然有微小的偏差,但它的精度却能够大大高于无偏的估计量。
在应用岭回归分析时,它的计算大多从标准化数据出发。对于标准化变量,最小二乘的正规方程为
rXXb=ryX
式中,rXX是X的相关系数矩阵,ryX是y与所有自变量的相关系数向量。
岭回归估计量是通过在正规方程中引入有偏常数c(c≥0)而求得的。它的正规方程为+
(4-8) (rXX+ cI) bR=ryX
所以,在岭回归分析中,标准化回归系数为
(4-9) bR =(rXX+ cI)-1 ryX
2 岭回归估计量的性质
(1)岭回归系数是一般最小二乘准则下回归系数的线性组合,即
(4-10) bR =(I+ crXX-1)-1b
(2)记β是总体参数的理论值。当β≠0时,可以证明一定存在一个正数c0,使得当0< c< c0时,一致地有
(4-11) E|| bR -β||2≤ E|| b -β||2
(3)岭回归估计量的绝对值常比普通最小二乘估计量的绝对值小,即
(4-12) || bR ||<|| b ||
岭回归估计量的质量取决于偏倚系数c的选取。c的选取不宜过大,因为
E(bR)=(I+ crXX-1)-1 E (b)=(I+ crXX-1)-1β
关于偏倚系数c的选取尚没有正规的决策准则,目前主要以岭迹和方差膨胀因子为依据。岭迹是指p-1个岭回归系数估计量对不同的c值所描绘的曲线(c值一般在0~1之间)。在通过检查岭迹和方差膨胀因子来选择c值时,其判断方法是选择一个尽可能小的c值,在这个较小的c值上,岭迹中的回归系数已变得比较稳定,并且方差膨胀因子也变得足够小。
从理论上,最佳的c值是存在的,它可以使估计量的偏差和方差的组合效应达到一个最佳水准。然而,困难却在于c的最优值对不同的应用而有所不同,对其选择还只能凭经验判断。
其他补救方法简介
最常见的一种思路是设法去掉不太重要的相关性变量。由于变量间多重相关性的形式十分复杂,而且还缺乏十分可靠的检验方法,删除部分多重相关变量的做法常导致增大模型的解释误差,将本应保留的系统信息舍弃,使得接受一个错误结论的可能和做出错误决策的风险都不断增长。另一方面,在一些经济模型中,从经济理论上要求一些重要的解释变量必须被包括在模型中,而这些变量又存在多重相关性。这时采用剔除部分相关变量的做法就不符合实际工作的要求。
另一种补救的办法是增加样本容量。然而,在实际工作中,由于时间、经费以及客观条件的限制,增大样本容量的方法常常是不可行的。
此外,还可以采用变量转换的方式,来削弱多重相关性的严重性。一阶差分回归模型有可能减少多重相关性的严重性。然而,一阶差分变换又带来了一些其它问题。差分后的误差项可能不满足总体模型中关于误差项不是序列相关的假定。事实上,在大部分情形下,在原来的误差项是不自相关的条件下,一阶差分所得到的误差项将会是序列相关的。而且,由于差分方法损失了一个观察值,这在小样本的情况下是极不可取的。另外,一阶差分方法在截面样本中是不宜利用的。
1 主成分分析
主成分分析的计算结果必然受到重叠信息的影响。因此,当人为地采用一些无益的相关变量时,无论从方向上还是从数量上,都会扭曲客观结论。在主成分分析之前,对变量系统的确定必须是慎之又慎的。
2 特异点的发现
第i个样本点(样本量为n)对第h主成分的贡献率是
(5-32) CTR(i)=Fh2(i)/(nλh) (若远超过1/n,为特异点)
3 典型相关分析
从某种意义上说,多元回归分析、判别分析或对应分析等许多重要的数据分析方法,都可以归结为典型相关分析的一种特例,同时它还是偏最小二乘回归分析的理论基石。
典型相关分析,是从变量组X中提取一个典型成分F=Xa,再从变量组Y中提取一个成分G=Yb,在提取过程中,要求F与G的相关程度达到最大。
在典型相关分析中,采用下述原则寻优,即
max<F,G>=aX'Yb a'X'Xa=1, b'Y'Yb=1
其结果为,a是对应于矩阵V11-1 V12 V22-1 V21最大特征值的特征向量,而b是对应于矩阵V22-1 V21V11-1 V12最大特征值的特征向量,这两个最大特征值相同。其中,
V11=X'X,V12=X'Y,V22=Y'Y。
F与G之间存在着明显的换算关系。
有时只有一个典型成分还不够,还可以考虑第二个典型成分。
多因变量的偏最小二乘回归模型
1 工作目标
偏最小二乘回归分析的建模方法
设有q个因变量和p个自变量。为了研究因变量与自变量的统计关系,观测了n个样本点,由此构成了自变量与因变量的数据表X和Y。偏最小二乘回归分别在X与Y中提取出t和u,要求:(1)t和u应尽可能大地携带它们各自数据表中的变异信息;(2)t和u的相关程度能够达到最大。在第一个成分被提取后,偏最小二乘回归分别实施X对t的回归以及Y对t的回归。如果回归方程已经达到满意的精度,则算法终止;否则,将利用X被t解释后的残余信息以及Y被t解释后的残余信息进行第二轮的成分提取。如此往复,直到能达到一个较满意的精度为止。若最终对X共提取了多个成分,偏最小二乘回归将通过施行yk对X的这些成分的回归,然后再表达成yk关于原自变量的回归方程。
2 计算方法
首先将数据做标准化处理。X经标准化处理后的数据矩阵记为E0=( E01,…,E0p)n×p,Y的相应矩阵记为F0=( F01,…,F0q)n×q。
第一步 记t 1是E0的第一个成分,t 1= E0w1,w1是E0的第一个轴,它是一个单位向量,即|| w1||=1。
记u 1是F0的第一个成分,u 1= F0c1,c1是F0的第一个轴,并且|| c1||=1。
于是,要求解下列优化问题,即
(7-1)
记θ1= w1'E0'F0c1,即正是优化问题的目标函数值。
采用拉格朗日算法,可得
(7-8) E0'F0F0'E0w1=θ12 w1
(7-9) F0'E0E0'F0c1=θ12 c1
所以,w1是对应于E0'F0F0'E0矩阵最大特征值的单位特征向量,而c1是对应于F0'E0E0'F0矩阵最大特征值θ12的单位特征向量。
求得轴w1和c1后,即可得到成分
t 1= E0w1
u 1= F0c1
然后,分别求E0和F0对t 1的回归方程
(7-10) E0= t 1 p1'+ E1
(7-12) F0= t 1r1'+ F1
式中,回归系数向量是
(7-13) p1= E0' t 1/|| t 1||2
(7-15) r1= F0' t 1/|| t 1||2
而E1和F1分别是两个方程的残差矩阵。
第二步 用残差矩阵E1和F1取代E0和F0,然后,求第二个轴w2和c2以及第二个成分t2,u2,有
t 2= E1w2
u 2= F1c2
θ2=< t2, u2>= w2'E1'F1c2
w2是对应于E1'F1F1'E1矩阵最大特征值的单位特征向量,而c2是对应于F1'E1E1'F1矩阵最大特征值θ22的单位特征向量。计算回归系数
p2= E1' t 2/|| t 2||2
r2= F1' t 2/|| t2||2
因此,有回归方程
E1= t 2 p2'+ E2
F1= t 2r2'+ F2
如此计算下去,如果X的秩是A,则会有
(7-16) E0= t 1 p1'+…+t A pA'
(7-17) F0= t 1r1'+ …+t A rA'+ FA
由于t1,…,t A均可以表示成E01,…,E0p的线性组合,因此,式(7-17)还可以还原成yk*= F0k关于xj*= E0j的回归方程形式,即
yk*=αk1 x1*+…+αkp xp*+ FAk, k=1,2,…,q
FAk是残差矩阵FA的第k列。
3 交叉有效性
如果多一个成分而少一个样本的预测误差平方和(所有因变量和预测样本相加)除以少一个成分的误差平方和(所有的因变量和样本相加)小于0.952,则多一个成分是值得的。
4 一种更简洁的计算方法
用下述原则提取自变量中的成分t 1,是与原则式(7-1)的结果完全等价的,即
(7-24)
(1)求矩阵E0'F0F0'E0最大特征值所对应的单位特征向量w1,求成分t 1,得
t 1= E0w1
E1= E0-t 1 p1'
式中, p1= E0' t 1/|| t 1||2
(2)求矩阵E1'F0F0'E1最大特征值所对应的单位特征向量w2,求成分t2,得
t 2= E1w2
E2= E1-t 2 p2'
式中, p2= E1' t 2/|| t2||2
……
(m)至第m步,求成分tm= Em-1wm,wm是矩阵Em-1'F0F0'Em-1最大特征值所对应的单位特征向量.
如果根据交叉有效性,确定共抽取m个成分t1,…,tm可以得到一个满意的观测模型,则求F0在t1,…,tm上的普通最小二乘回归方程为
F0= t 1r1'+ …+t mrm'+ Fm
偏最小二乘回归的辅助分析技术
1 精度分析
定义自变量成分th的各种解释能力如下
(1)th对某自变量xj的解释能力
(8-1) Rd(xj; th)=r2(xj, th)
(2)th对X的解释能力
(8-2) Rd(X; th)=[r2(x1, th) + …+ r2(xp, th)]/p
(3)t1,…,tm对X的累计解释能力
(8-3) Rd(X; t1,…,tm)= Rd(X; t1) + …+ Rd(X; tm)
(4)t1,…,tm对某自变量xj的累计解释能力
(8-4) Rd(xj; t1,…,tm)= Rd(xj; t1) + …+ Rd(xj; tm)
(5)th对某因变量yk的解释能力
(8-5) Rd(yk; th)=r2(yk, th)
(6)th对Y的解释能力
(8-6) Rd(Y; th)=[r2(y1, th) + …+ r2(yq, th)]/q
(7)t1,…,tm对Y的累计解释能力
(8-7) Rd(Y; t1,…,tm)= Rd(Y; t1) + …+ Rd(Y; tm)
(8)t1,…,tm对某因变量yk的累计解释能力
(8-8) Rd(yk; t1,…,tm)= Rd(yk; t1) + …+ Rd(yk; tm)
2 自变量x j在解释因变量集合Y的作用
x j在解释Y时作用的重要性,可以用变量投影重要性指标VIP j来测度
VIP j 2=p[Rd(Y; t1) w1j2+ …+ Rd(Y; tm) wmj2]/[Rd(Y; t1) + …+ Rd(Y; tm)]
式中,whj是轴wh的第j个分量。注意 VIP1 2+ …+ VIP p2=p
3 特异点的发现
定义第i个样本点对第h成分th的贡献率Thi2,用它来发现样本点集合中的特异点,即
(8-10) Thi2=thi2/((n-1)s h2)
式中,s h2是成分th的方差。
由此,还可以测算样本点i对成分t1,…,tm的累计贡献率
(8-11) Ti2= T1i2+ …+ Tmi2
当
Ti2≥m(n2-1)F0.05(m,n-m)/(n2 (n-m))
时,可以认为在95%的检验水平上,样本点i对成分t1,…,tm的贡献过大。
单因变量的偏最小二乘回归模型
1 简化算法
第一步 已知数据E0,F0,由于u 1= F0,可得
w1= E0'F0/|| E0'F0||
t 1= E0w1
p1= E0' t 1/|| t 1||2
E1= E0-t 1 p1'
检验交叉有效性。若有效,继续计算;否则只提取一个成分t 1。
第h步(h=2,…,m) 已知数据Eh-1,F0,有
wh= Eh-1'F0/|| Eh-1'F0||
t h= Eh-1wh
ph= Eh-1' t h/|| t h||2
Eh= Eh-1-th ph'
检验交叉有效性。若有效,继续计算h+1步;否则停止求成分的计算。
这时,得到m个成分t1,…,t m,实施F0在t1,…,t m上的回归,得
F0^= r1t 1+ …+ rmt m
由于t1,…,t m均是E0的线性组合,即
t h= Eh-1wh= E0wh*
所以F0^可写成E0的线性组合形式,即
F0^= r1 E0w1*+ …+ rm E0wm*= E0[r1 w1*+ …+ rm wm*]
最后,也可以变换成y对x1,…,x p的回归方程
y^= α0+α1x1+ …+αp xp
❹ spss岭回归VIF和P值的计算
用SPSS多元线性回归,存在多重共线性,采用岭回归,参照网上的代码,能计算出K值取值0-1时的R方和各偏回归系数,但是无法计算出相应的VIF值;另需计算K值选定后,相应的偏回归系数和P值。
❺ R语言中如何看岭回归的显着性,如何计算岭回归的VIF值
ridge下的vif 在R中可以计算,有对应的包和函数。
❻ 岭回归和Lasso回归有什么区别
岭回归是线性回归采用L2正则化的形式,Lasso回归是采用L1正则化的形式,Lasso回归易产生稀疏解
❼ 统计模型和大数据模型所使用的主要算法有什么异同
以每24小时作为一份时间(而非自然日),根据用户的配置有两种工作模式:带状模式中,用户仅定义开始日期时,从开始日期(含)开始,每份时间1个分片地无限增加下去;环状模式中,用户定义了开始日期和结束日期时,以结束日期(含)和开始日期(含)之间的时间份数作为分片总数(分片数量固定),以类似取模的方式路由到这些分片里。
1. DBLE 启动时,读取用户在 rule.xml 配置的 sBeginDate 来确定起始时间
2. 读取用户在 rule.xml 配置的 sPartionDay 来确定每个 MySQL 分片承载多少天内的数据
3. 读取用户在 rule.xml 配置的 dateFormat 来确定分片索引的日期格式
4. 在 DBLE 的运行过程中,用户访问使用这个算法的表时,WHERE 子句中的分片索引值(字符串),会被提取出来尝试转换成 java 内部的时间类型
5. 然后求分片索引值与起始时间的差,除以 MySQL 分片承载的天数,确定所属分片
1. DBLE 启动时,读取用户在 rule.xml 配置的起始时间 sBeginDate、终止时间 sEndDate 和每个 MySQL 分片承载多少天数据 sPartionDay
2. 根据用户设置,建立起以 sBeginDate 开始,每 sPartionDay 天一个分片,直到 sEndDate 为止的一个环,把分片串联串联起来
3. 读取用户在 rule.xml 配置的 defaultNode
4. 在 DBLE 的运行过程中,用户访问使用这个算法的表时,WHERE 子句中的分片索引值(字符串),会被提取出来尝试转换成 Java 内部的日期类型
5. 然后求分片索引值与起始日期的差:如果分片索引值不早于 sBeginDate(哪怕晚于 sEndDate),就以 MySQL 分片承载的天数为模数,对分片索引值求模得到所属分片;如果分片索引值早于 sBeginDate,就会被放到 defaultNode 分片上
与MyCat的类似分片算法对比
中间件
DBLE
MyCat
分片算法种类 date 分区算法 按日期(天)分片
两种中间件的取模范围分片算法使用上无差别
开发注意点
【分片索引】1. 必须是字符串,而且 java.text.SimpleDateFormat 能基于用户指定的 dateFormat 来转换成 java.util.Date
【分片索引】2. 提供带状模式和环状模式两种模式
【分片索引】3. 带状模式以 sBeginDate(含)起,以 86400000 毫秒(24 小时整)为一份,每 sPartionDay 份为一个分片,理论上分片数量可以无限增长,但是出现 sBeginDate 之前的数据而且没有设定 defaultNode 的话,会路由失败(如果有 defaultNode,则路由至 defaultNode)
【分片索引】4. 环状模式以 86400000 毫秒(24 小时整)为一份,每 sPartionDay 份为一个分片,以 sBeginDate(含)到 sEndDate(含)的时间长度除以单个分片长度得到恒定的分片数量,但是出现 sBeginDate 之前的数据而且没有设定 defaultNode 的话,会路由失败(如果有 defaultNode,则路由至 defaultNode)
【分片索引】5. 无论哪种模式,分片索引字段的格式化字符串 dateFormat 由用户指定
【分片索引】6. 无论哪种模式,划分不是以日历时间为准,无法对应自然月和自然年,且会受闰秒问题影响
运维注意点
【扩容】1. 带状模式中,随着 sBeginDate 之后的数据出现,分片数量的增加无需再平衡
【扩容】2. 带状模式没有自动增添分片的能力,需要运维手工提前增加分片;如果路由策略计算出的分片并不存在时,会导致失败
【扩容】3. 环状模式中,如果新旧 [sBeginDate,sEndDate] 之间有重叠,需要进行部分数据迁移;如果新旧 [sBeginDate,sEndDate] 之间没有重叠,需要数据再平衡
配置注意点
【配置项】1. 在 rule.xml 中,可配置项为 <propertyname="sBeginDate"> 、 <propertyname="sPartionDay"> 、 <propertyname="dateFormat"> 、 <propertyname="sEndDate"> 和 <propertyname="defaultNode">
【配置项】2.在 rule.xml 中配置 <propertyname="dateFormat">,符合 java.text.SimpleDateFormat 规范的字符串,用于告知 DBLE 如何解析sBeginDate和sEndDate
【配置项】3.在 rule.xml 中配置 <propertyname="sBeginDate">,必须是符合 dateFormat 的日期字符串
【配置项】4.在 rule.xml 中配置 <propertyname="sEndDate">,必须是符合 dateFormat 的日期字符串;配置了该项使用的是环状模式,若没有配置该项则使用的是带状模式
【配置项】5.在 rule.xml 中配置 <propertyname="sPartionDay">,非负整数,该分片策略以 86400000 毫秒(24 小时整)作为一份,而 sPartionDay 告诉 DBLE 把每多少份放在同一个分片
【配置项】6.在 rule.xml 中配置 <propertyname="defaultNode"> 标签,非必须配置项,不配置该项的话,用户的分片索引值没落在 mapFile 定义