文章目录
一、病态线性回归问题中,显著性检验是否需要?如果需要,是在自变量降维去线性之前,还是之后,还是前后都检验?
病态线性回归问题需要进行显著性检验,需要在自变量降维去线性之后进行显著性检验。
显著性检验(significance test)就是事先对总体(随机变量)的参数或总体分布形式做出一个假设,然后利用样本信息来判断这个假设(备择假设)是否合理,即判断总体的真实情况与原假设是否有显著性差异。或者说,显著性检验要判断样本与我们对总体所做的假设之间的差异是纯属随机误差,还是由我们所做的假设与总体真实情况之间不一致所引起的。 显著性检验是针对我们对总体所做的假设做检验,其原理就是“小概率事件实际不可能性原理”来接受或否定假设。
病态线性回归问题也需要利用样本信息来判断总体的参数或总体分布形式假设是否合理,判断总体的真实情况与原假设是否有显著性差异,因此病态线性回归问题中也需要进行显著性检验。
显著性检验目的是判断总体真实情况与原假设是否有显著性差异,其公式为
F
=
E
S
S
/
f
E
R
S
S
/
f
R
=
(
N
−
n
−
1
)
E
S
S
n
R
S
S
F=\frac{ESS/f_E}{RSS/f_R}=\frac{(N-n-1)ESS}{nRSS}
F=RSS/fRESS/fE=nRSS(N−n−1)ESS
其中
E
S
S
,
R
S
S
ESS,RSS
ESS,RSS只与真实情况与预测结果有关,与自变量维度无关,因此显著性检测位置只会影响
f
E
,
f
R
f_E,f_R
fE,fR参数中自变量自由度
n
n
n。病态线性回归问题中,自变量
X
N
×
n
1
X_{N\times n_1}
XN×n1线性相关,为降低极小特征值带来的巨大预测误差,需要近似地用更少的一组向量
Z
N
×
n
2
,
n
2
<
n
1
Z_{N\times n_2},n_2<n_1
ZN×n2,n2<n1线性表示(降维)。因此自变量实际自由度
n
=
n
2
n=n_2
n=n2,
n
2
n_2
n2是它的最大线性无关组所含向量数目,故显著性检验应在去线性(降维)之后进行。
二、实现多元线性回归
主要分为以下几步
- 数据标准化
- 特征值排序,检验是否为病态回归问题
- 若为病态回归问题,则降维处理
- 建立回归模型,计算回归参数、回归结果
- 平方和分解
- 显著性检验
- 回归直线方程
- 求解置信区间
数据标准化
对自变量和因变量分别进行标准化化处理,借助均值、方差信息,将自变量
X
X
X,因变量
Y
Y
Y转化为均值为0、方差为1的标准化数据
X
′
,
Y
′
X',Y'
X′,Y′以消除变量单位的影响
x
i
′
=
x
i
−
μ
x
i
σ
x
i
X
′
=
(
X
−
μ
⃗
x
T
)
÷
σ
⃗
x
T
y
′
=
y
−
μ
y
σ
y
x'_i=\frac{x_i-\mu_{x_i}}{\sigma_{x_i}}\\ X'=(X-\vec\mu_x^T)\div {\vec\sigma_x^T}\\ y'= \frac{y-\mu_y}{\sigma_y}\\
xi′=σxixi−μxiX′=(X−μxT)÷σxTy′=σyy−μy
为自适应处理多元线性回归问题,自变量的均值方差均使用行向量表示。
MATLAB中使用zscore
函数实现标准化处理,保留均值与方差以便数据恢复。
特征值排序,检验是否为病态回归问题
求解 X ′ X ′ T X'X'^T X′X′T的特征值与特征向量,以特征值总和的1%为特征值阈值,若存在小于阈值的特征值,则定义为病态线性回归问题
若为病态回归问题,则降维处理
将大于阈值的特征值降序排序,对应的特征向量按顺序组合成一个传递矩阵 Q Q Q。通过该传递矩阵,自变量 X X X可由一组正交向量 Z Z Z表示,即满足 X ′ = Q Z X'=QZ X′=QZ
组成传递矩阵 Q Q Q的特征向量相互正交,因此 Q T Q = I Q^TQ=I QTQ=I,故 Q T X ′ = Q T Q Z = Z Q^TX'=Q^TQZ=Z QTX′=QTQZ=Z
Z = Q T X ′ Z=Q^TX' Z=QTX′为可线性表示 X ′ X' X′的一组正交向量,并且不存在更少数目的向量满足此条件。
建立回归模型,计算回归参数、回归结果
建立线性回归模型 Y ′ = θ T X ′ Y'=\theta^T X' Y′=θTX′(非病态线性回归)或 Y ′ = θ T Z Y'=\theta^T Z Y′=θTZ(病态线性回归), θ T \theta^T θT为待估计的参数。
为便于程序处理,对于一般多元线性回归问题,令 Q = I Q=I Q=I, Z = Q T X ′ Z=Q^TX' Z=QTX′,将模型统一为 Y ′ = θ T Z Y'=\theta^T{ Z} Y′=θTZ,
使用最小二乘法估计
θ
\theta
θ,将逼近误差
∑
(
Y
′
−
θ
T
Z
)
(
Y
′
−
θ
T
Z
)
T
\sum(Y'-\theta^T Z)(Y'-\theta^T Z)^T
∑(Y′−θTZ)(Y′−θTZ)T
求偏导得到最优解
θ
^
=
(
Z
Z
T
)
−
1
Z
Y
′
T
\hat{\theta}=(ZZ^T)^{-1}ZY'^T
θ^=(ZZT)−1ZY′T
根据求解得到的
θ
^
\hat{\theta}
θ^求解线性回归结果
Y
′
^
=
θ
^
T
Z
\hat{Y'}=\hat{\theta}^T Z
Y′^=θ^TZ。
平方和分解
将总平方和
T
S
S
TSS
TSS分解为解释平方和
E
S
S
ESS
ESS与剩余平方和
R
S
S
RSS
RSS
T
S
S
=
∑
i
=
1
N
(
y
i
−
y
ˉ
)
2
E
S
S
=
∑
i
=
1
N
(
y
^
i
−
y
ˉ
)
2
R
S
S
=
∑
i
=
1
N
(
y
i
−
y
^
i
)
2
T
S
S
=
E
S
S
+
R
S
S
TSS=\sum_{i=1}^N(y_i-\bar y)^2\\ ESS=\sum_{i=1}^N(\hat y_i-\bar y)^2\\ RSS=\sum_{i=1}^N(y_i-\hat y_i)^2\\ TSS=ESS+RSS\\
TSS=i=1∑N(yi−yˉ)2ESS=i=1∑N(y^i−yˉ)2RSS=i=1∑N(yi−y^i)2TSS=ESS+RSS
其中
y
i
y_i
yi为归一化后的真实数据,
y
^
i
\hat y_i
y^i为线性回归求解结果,
y
ˉ
=
1
N
∑
i
=
1
N
y
i
\bar y=\frac{1}{N}\sum_{i=1}^N y_i
yˉ=N1∑i=1Nyi。
上式主要用于显著性检验(F检验)与求解置信区间,有原始数据与归一化数据两种方案,二者本质相同,F检验中使用两种数据结果相同,求解置信区间时使用两种数据差别在于 σ y \sigma_y σy,相关证明见显著性检验小节。
显著性检验
使用F检验进行显著性检验
f
T
=
N
−
1
,
f
E
=
n
,
f
R
=
N
−
n
−
1
F
=
E
S
S
/
f
E
R
S
S
/
f
R
=
(
N
−
n
−
1
)
∑
i
=
1
N
(
y
^
i
−
y
ˉ
)
2
n
∑
i
=
1
N
(
y
i
−
y
^
i
)
2
f_T=N-1\text{ , }f_E=n\text{ , }f_R=N-n-1\\ F=\frac{ESS/f_E}{RSS/f_R}=\frac{(N-n-1)\sum_{i=1}^N(\hat y_i-\bar y)^2}{n\sum_{i=1}^N(y_i-\hat y_i)^2}
fT=N−1 , fE=n , fR=N−n−1F=RSS/fRESS/fE=n∑i=1N(yi−y^i)2(N−n−1)∑i=1N(y^i−yˉ)2
其中
f
T
,
f
E
,
f
R
f_T,f_E,f_R
fT,fE,fR分别为
T
S
S
,
E
S
S
,
R
S
S
TSS,ESS,RSS
TSS,ESS,RSS的自由度。
对于给定的显著性水平 α \alpha α以及自由度( n n n, N − n − 1 N-n-1 N−n−1),查 F F F分布表,得到相应的临界值 F α F_\alpha Fα,从而进行显著性检验。当 F > F α F>F_\alpha F>Fα时,认为 x x x与 y y y存在线性关系;当 F ≤ F α F\leq F_\alpha F≤Fα时,认为 x x x与 y y y不存在线性关系。
E
S
S
,
R
S
S
ESS,RSS
ESS,RSS计算与数据预处理相关,有原始数据与归一化数据两种方案,现证明二者本质相同,且在F检验中结果相同。
y
^
′
=
θ
^
T
Z
=
(
Z
Z
T
)
−
1
Z
y
′
T
Z
=
[
(
Q
T
X
′
)
(
Q
T
X
′
)
T
]
−
1
(
Q
T
X
′
)
y
′
T
(
Q
T
X
′
)
=
1
(
Q
T
X
′
)
(
Q
T
X
′
)
T
(
Q
T
X
′
)
y
′
T
(
Q
T
X
′
)
\hat y'=\hat{\theta}^TZ=(ZZ^T)^{-1}Zy'^TZ\\ =[(Q^TX'){(Q^TX')}^T]^{-1}(Q^TX')y'^T(Q^TX')\\ =\frac{1}{(Q^TX'){(Q^TX')}^T}(Q^TX')y'^T(Q^TX')\\
y^′=θ^TZ=(ZZT)−1Zy′TZ=[(QTX′)(QTX′)T]−1(QTX′)y′T(QTX′)=(QTX′)(QTX′)T1(QTX′)y′T(QTX′)
其中
X
′
=
(
X
−
μ
⃗
x
T
)
÷
σ
⃗
x
T
X'=(X-\vec\mu_x^T)\div {\vec\sigma_x^T}
X′=(X−μxT)÷σxT为矩阵
X
X
X的元素按行与行向量
μ
⃗
x
T
,
σ
⃗
x
T
\vec\mu_x^T,\vec\sigma_x^T
μxT,σxT进行点操作。式中所有
X
′
X'
X′都左乘
Q
T
Q^T
QT,因此分子分母上按位进行的点操作可以相互抵消,即
y
^
′
=
1
(
Q
T
X
)
(
Q
T
X
)
T
(
Q
T
X
)
y
′
T
(
Q
T
X
)
\hat y'=\frac{1}{(Q^TX){(Q^TX)}^T}(Q^TX)y'^T(Q^TX)\\
y^′=(QTX)(QTX)T1(QTX)y′T(QTX)
因此
y
^
′
=
y
^
−
μ
y
σ
y
F
′
=
E
S
S
′
/
f
E
R
S
S
′
/
f
R
=
(
N
−
n
−
1
)
∑
i
=
1
N
(
y
^
i
′
−
y
ˉ
′
)
2
n
∑
i
=
1
N
(
y
i
′
−
y
^
i
′
)
2
=
F
S
δ
′
=
R
S
S
′
/
(
N
−
n
−
1
)
=
∑
i
=
1
N
(
y
i
′
−
y
^
i
′
)
2
N
−
n
−
1
=
S
δ
σ
y
\hat y'=\frac{\hat y-\mu_{y}}{\sigma_{y}}\\ F'=\frac{ESS'/f_E}{RSS'/f_R}=\frac{(N-n-1)\sum_{i=1}^N(\hat y'_i-\bar y')^2}{n\sum_{i=1}^N(y'_i-\hat y'_i)^2}=F\\ S'_\delta=\sqrt{RSS'/(N-n-1)}=\sqrt{\frac{\sum_{i=1}^N(y'_i-\hat y'_i)^2}{N-n-1}}=\frac{S_\delta}{\sigma_y}
y^′=σyy^−μyF′=RSS′/fRESS′/fE=n∑i=1N(yi′−y^i′)2(N−n−1)∑i=1N(y^i′−yˉ′)2=FSδ′=RSS′/(N−n−1)=N−n−1∑i=1N(yi′−y^i′)2=σySδ
回归直线方程
求解得到的线性回归映射
y
^
=
θ
^
T
Z
\hat{y}=\hat{\theta}^T Z
y^=θ^TZ是自变量和因变量进行标准化后的结果,在病态线性回归问题中进行了降维处理,需转化推导出原线性回归方程。
X
′
=
(
X
−
μ
⃗
x
T
)
÷
σ
⃗
x
T
y
′
=
y
−
μ
y
σ
y
Z
=
Q
T
X
′
y
^
′
=
θ
^
T
Z
X'=(X-\vec\mu_x^T)\div {\vec\sigma_x^T}\\ y'=\frac{y-\mu_{y}}{\sigma_{y}}\\ Z=Q^TX'\\ \hat{y}'=\hat{\theta}^T Z
X′=(X−μxT)÷σxTy′=σyy−μyZ=QTX′y^′=θ^TZ
将上述公式合并,得到如下线性回归方程
y
^
′
=
y
^
−
μ
y
σ
y
=
θ
^
T
Q
T
(
X
−
μ
⃗
x
T
)
÷
σ
⃗
x
T
\hat y'=\frac{\hat y-\mu_{y}}{\sigma_{y}} = \hat{\theta}^TQ^T(X-\vec\mu_x^T)\div {\vec\sigma_x^T}\\
y^′=σyy^−μy=θ^TQT(X−μxT)÷σxT
整理得
y
^
=
β
^
0
+
β
⃗
^
T
X
=
β
^
0
+
β
^
1
x
1
+
β
^
2
x
2
+
⋯
+
β
^
n
x
n
where
{
β
⃗
^
T
=
θ
^
T
Q
T
÷
σ
⃗
x
T
⋅
σ
y
β
^
0
=
μ
y
−
θ
^
T
Q
T
⋅
μ
⃗
x
T
÷
σ
⃗
x
T
⋅
σ
y
\hat y = \hat\beta_0+\hat{\vec\beta}^TX=\hat\beta_0+\hat\beta_1 x_1+\hat\beta_2 x_2+\cdots+\hat\beta_n x_n\\ \text{where }\begin{cases} \hat{\vec\beta}^T = \hat{\theta}^TQ^T\div {\vec\sigma_x^T} \cdot \sigma_{y}\\ \hat\beta_0 = \mu_y-\hat{\theta}^TQ^T\cdot\vec\mu_x^T\div {\vec\sigma_x^T}\cdot \sigma_y \end{cases}
y^=β^0+β^TX=β^0+β^1x1+β^2x2+⋯+β^nxnwhere ⎩⎨⎧β^T=θ^TQT÷σxT⋅σyβ^0=μy−θ^TQT⋅μxT÷σxT⋅σy
求解置信区间
使用
S
δ
=
R
S
S
/
(
N
−
n
−
1
)
S_\delta=\sqrt{RSS/(N-n-1)}
Sδ=RSS/(N−n−1)近似地表示
y
y
y偏离回归平面的误差,于是,可以预测在各自变量
x
1
,
x
2
,
⋯
,
x
n
x_1,x_2,\cdots,x_n
x1,x2,⋯,xn取固定的样本值时,预测值
y
^
\hat y
y^将以
(
1
−
α
)
(1-\alpha)
(1−α)的概率落在以下区域
(
y
^
0
−
Z
α
/
2
S
δ
,
y
^
0
+
Z
α
/
2
S
δ
)
(\hat y_0-Z_{\alpha/2}S_\delta,\hat y_0+Z_{\alpha/2}S_\delta)
(y^0−Zα/2Sδ,y^0+Zα/2Sδ)
式中,
y
^
0
\hat y_0
y^0是采用
β
^
0
,
β
^
1
,
β
^
2
,
⋯
,
β
^
n
\hat\beta_0,\hat\beta_1,\hat\beta_2,\cdots,\hat\beta_n
β^0,β^1,β^2,⋯,β^n作为最佳回归参数时的预测值,
Z
α
/
2
Z_{\alpha/2}
Zα/2是标准正态分布上
α
/
2
\alpha/2
α/2百分位点的值。
例题求解
将测试数据投入多元线性回归函数,程序得到以下结果
示例回归问题特征值分别为21.069,11.227,7.682,0.022,在特征值阈值为所有特征值总和1%的情况下,0.022小于阈值(40*0.01),该问题为病态线性回归问题。
F F F检验结果表明,在显著性水平 α = 0.05 \alpha=0.05 α=0.05的情况下,检验结果表明 X X X与 Y Y Y存在线性关系。
回归直线方程
y
=
0.0730
x
1
+
0.5986
x
2
+
0.0019
x
3
+
0.1055
x
4
−
9.1515
y = 0.0730 x_1 + 0.5986 x_2 + 0.0019 x_3 + 0.1055 x_4 -9.1515
y=0.0730x1+0.5986x2+0.0019x3+0.1055x4−9.1515
置信区间
(
y
^
−
1.1557
,
y
^
+
1.1557
)
(\hat y-1.1557, \hat y+1.1557)
(y^−1.1557,y^+1.1557)
多元线性回归函数可以根据求解结果绘制出样本点真实值、回归结果、置信区间分布图
上图证明,对于当前所有样本点,预测值与真实值相近,且所有真实值都落在对应的置信区间内,故在现有数据中, X X X与 Y Y Y存在线性关系,且当前回归求解结果可以描述此线性关系。
相关程序
程序和数据的打包下载地址