统计回归与Matlab软件实现上(一元多元线性回归模型)

引言

关于数学建模的基本方法
  1. 机理驱动
    由于客观事物内部规律的复杂及人们认识程度的限制,无法得到内在因果关系,建立合乎机理规律的数学模型
  2. 数据驱动
    直接从数据出发,找到隐含在数据背后的最佳模型,是数学模型建立的另一大思路
    统计回归方法是基于统计理论建立的最基本的一类数据驱动建模方法
学习目的
  1. 用统计回归方法估计数据中隐含的模型
  2. 对模型参数和模型结果的可靠性做必要检验
  3. 分析建模过程中的一些细节问题:异常数据的辨识与处理,变量的筛选
  4. 用MATLAB软件实现

一元线性回归模型的概念

一元线性回归模型基本概念

一般地,称由
y = β 0 + β 1 x + ε y=\beta_{0}+\beta_{1}x+\varepsilon y=β0+β1x+ε

确定的模型为一元线性回归模型

  • β 0 , β 1 \beta_{0},\beta_{1} β0,β1为回归系数
  • x x x为自变量、回归变量或解释变量
  • y y y为因变量或被解释变量
  • ε \varepsilon ε为随机误差
随机误差 ε \varepsilon ε的基本假设
  1. 高斯-马尔科夫条件
    { E ( ε ) = 0 c o v ( ε , ε ) = σ 2 \left\{\begin{matrix} E(\varepsilon)=0 \\ cov(\varepsilon,\varepsilon)=\sigma^{2} \end{matrix}\right. {E(ε)=0cov(ε,ε)=σ2
  • 随机误差项必须是0均值的
  • 方差等于 σ 2 \sigma^{2} σ2,是恒定的,即与 x x x的取值无关
  1. 正太分布假设
    ε ∼ N ( 0 , σ 2 ) \varepsilon \sim N(0,\sigma^{2}) ε∼N(0,σ2)
    随机误差项要服从0均值的正太分布,并且方差同样是恒定的,与 x x x无关
一元线性回归分析的主要任务
  1. 基于样本数据,对参数 β 0 , β 1 , σ \beta_{0},\beta_{1},\sigma β0,β1,σ做参数估计
  2. 对模型参数 β 0 , β 1 \beta_{0},\beta_{1} β0,β1以及模型显著性作假设检验分析
  3. 对 y y y的值作预测,即对 y y y作点(区间)估计
Matlab实现
[b, bint, r, rint, stats]=regress(Y,X,alpha)
  • bint,回归系数的区间估计
  • r,残差
  • rint,残差的置信区间
  • stats,检验回归模型的统计量:决定系数 r 2 r^{2} r2,F值,与F值对应的概率p
  • alpha,显著性水平,缺省时为0.05

模型的参数估计与软件实现

回归系数的最小二乘估计

有 n n n组独立样本: ( x 1 , y 1 ) , ( x 2 , y 2 ) , ... , ( x n , y ( n ) ) (x_{1},y_{1}),(x_{2},y_{2}),\dots,(x_{n},y(n)) (x1,y1),(x2,y2),...,(xn,y(n)),带入回归方程可得
{ y i = β 0 + β 1 x i + ε i , i = 1 , 2 , ... , n E ( ε i ) = 0 , v a r ( ε i ) = σ 2 \left\{\begin{matrix} y_{i}=\beta_{0}+\beta_{1}x_{i}+\varepsilon_{i},\ i=1,2,\dots,n \\ E(\varepsilon_{i})=0,\ var(\varepsilon_{i})=\sigma^{2} \end{matrix}\right. {yi=β0+β1xi+εi, i=1,2,...,nE(εi)=0, var(εi)=σ2

其中, ε 1 , ε 2 , ... , ε n \varepsilon_{1},\varepsilon_{2},\dots,\varepsilon_{n} ε1,ε2,...,εn相互独立

  • 拟合误差或残差: r i = y i − y i ′ r_{i}=y_{i}-y'_{i} ri=yi−yi′
  • 最好直线:使残差平方和最小的直线
    Q ( β 0 , β 1 ) = ∑ i = 1 n ( y i − y i ′ ) 2 = ∑ i = 1 n ( y i − β 0 − β i x i ) 2 Q(\beta_{0},\beta_{1})=\sum_{i=1}^{n}(y_{i}-y'{i})^{2}=\sum{i=1}^{n}(y_{i}-\beta_{0}-\beta_{i}x_{i})^{2} Q(β0,β1)=i=1∑n(yi−yi′)2=i=1∑n(yi−β0−βixi)2
    最小化的参数值 β 0 ′ , β 1 ′ \beta'{0},\beta'{1} β0′,β1′称为 β 0 , β 1 \beta_{0},\beta_{1} β0,β1的最小二乘估计

该优化问题的求解,可以基于极值原理实现

通过残差平方和,分别对 β 0 , β 1 \beta_{0},\beta_{1} β0,β1求偏导数,令偏导数等于0
{ ∂ Q ∂ β 0 = 0 ∂ Q ∂ β 1 = 0 \left\{\begin{matrix} \frac{\partial Q}{\partial \beta_{0}}=0 \\ \frac{\partial Q}{\partial \beta_{1}}=0 \end{matrix}\right. {∂β0∂Q=0∂β1∂Q=0

得到的是二元一次线性方程组

相应的最小二乘估计为
{ β ^ 0 = y ˉ − β ^ 1 x ˉ β ^ 1 = x ˉ y ˉ − x ˉ y ˉ x 2 ˉ − x ˉ 2 \left\{\begin{matrix} \hat{\beta}{0}=\bar{y}-\hat{\beta}{1}\bar{x} \\ \hat{\beta}_{1}=\frac{\bar{x}\bar{y}-\bar{x}\bar{y}}{\bar{x^{2}}-\bar{x}^{2}} \end{matrix}\right. {β^0=yˉ−β^1xˉβ^1=x2ˉ−xˉ2xˉyˉ−xˉyˉ

其中
x ˉ = 1 n ∑ i = 1 n x i , y ˉ = 1 n ∑ i = 1 n y i , \bar{x}=\frac{1}{n}\sum_{i=1}^{n}x_{i},\quad \bar{y}=\frac{1}{n}\sum_{i=1}^{n}y_{i}, xˉ=n1i=1∑nxi,yˉ=n1i=1∑nyi,
x ˉ 2 = 1 n ∑ i = 1 n x i 2 , x ˉ y ˉ = 1 n ∑ i = 1 n x i y i \bar{x}^{2}=\frac{1}{n}\sum_{i=1}^{n}x_{i}^{2},\quad \bar{x}\bar{y}=\frac{1}{n}\sum_{i=1}^{n}x_{i}y_{i} xˉ2=n1i=1∑nxi2,xˉyˉ=n1i=1∑nxiyi

Matlab实现

regress命令

b=regress(Y, X)

待求解的线性方程组
y i = β 0 + β 1 x i + ε i , i = 1 , 2 , ... , n y_{i}=\beta_{0}+\beta_{1}x_{i}+\varepsilon_{i},\ i=1,2,\dots,n yi=β0+β1xi+εi, i=1,2,...,n
[ y 1 y 2 ... y n ] = [ 1 x 1 1 x 2 ... ... 1 x n ] [ β 0 β 1 ] \begin{bmatrix} y_{1} \\ y_{2} \\ \dots \\ y_{n} \end{bmatrix}=\begin{bmatrix} 1&&x_{1} \\ 1&&x_{2} \\ \dots&&\dots \\ 1&&x_{n} \end{bmatrix}\begin{bmatrix} \beta_{0} \\ \beta_{1} \end{bmatrix} y1y2...yn = 11...1x1x2...xn [β0β1]

  • Y指的是y的矩阵向量
  • X指的是系数矩阵x
  • 等式左边的b指的是参数 β \beta β的最小二乘估计
  1. 输入数据

    x=[143 145 146 147 149 150 153 154 155 156 157 158 159 160 162 164]';
    X=[ones(16,1)x];
    Y=[88 85 88 91 92 93 93 95 96 98 97 96 98 99 100 102]';

x表示所有的自变量,16各人的身高数据,是列向量,'是转秩

X是两列的矩阵,第一个是16个1组成的列向量,第二个是自变量x的列向量

Y是16个腿长数据,也是列向量

  1. 参数估计

    b=regress(Y, X)

得b

b=[-16.0730 0.7194]'

β 0 ′ = − 16.0730 ; β 1 ′ = 0.7194 \beta'{0}=-16.0730;\ \beta'{1}=0.7194 β0′=−16.0730; β1′=0.7194

经验回归方程
y = − 16.0739 + 0.7194 x y=-16.0739+0.7194x y=−16.0739+0.7194x

回归系数的置信区间估计

在正太假设的前提下
β ^ 0 ∼ N ( β 0 , ( 1 n + x ^ 2 L x x ) σ 2 ) \hat{\beta}{0}\sim N\left( \beta{0},\left( \frac{1}{n}+\frac{\hat{x}^{2}}{L_{xx}} \right)\sigma^{2} \right) β^0∼N(β0,(n1+Lxxx^2)σ2)
β 1 ^ ∼ N ( β 1 , σ 2 L x x ) \hat{\beta_{1}}\sim N\left( \beta_{1}, \frac{\sigma^{2}}{L_{xx}} \right) β1^∼N(β1,Lxxσ2)

其中
L x x = ∑ i = 1 n ( x i − x ˉ ) 2 L_{xx}=\sum_{i=1}^{n}(x_{i}-\bar{x})^{2} Lxx=i=1∑n(xi−xˉ)2

由于 σ \sigma σ未知,可以构造t统计量来进行区间估计
t = β 1 ′ − β 1 ( σ ′ ) 2 L x x ∼ t ( n − 2 ) t=\frac{\beta'{1}-\beta{1}}{\sqrt{ \frac{(\sigma')^{2}}{L_{xx}} }}\sim t(n-2) t=Lxx(σ′)2 β1′−β1∼t(n−2)

其中
L x x = ∑ i = 1 n ( x i − x ˉ ) 2 L_{xx}=\sum_{i=1}^{n}(x_{i}-\bar{x})^{2} Lxx=i=1∑n(xi−xˉ)2
σ ^ 2 = 1 n − 2 ∑ i = 1 n ( y i − y ^ i ) 2 \hat{\sigma}^{2}=\frac{1}{n-2}\sum_{i=1}^{n}(y_{i}-\hat{y}_{i})^{2} σ^2=n−21i=1∑n(yi−y^i)2

P ( − t a 2 ( n − 2 ) < β 1 ^ − β 2 σ ^ 2 L x x < t a 2 ( n − 2 ) ) = 1 − α P\left( -t_{\frac{a}{2}}(n-2)<\frac{\hat{\beta_{1}}-\beta_{2}}{\sqrt{ \frac{\hat{ \sigma}^{2}}{L_{xx}} }}<t_{\frac{a}{2}}(n-2) \right)=1-\alpha P −t2a(n−2)<Lxxσ^2 β1^−β2<t2a(n−2) =1−α

t统计量落在这两个值之间的概率是 1 − α 1-\alpha 1−α

故 β 1 \beta_{1} β1的置信水平为 1 − α 1-\alpha 1−α的置信区间估计为
[ β 1 ′ − t a 2 ( n − 2 ) ( σ ′ ) 2 L x x , β 1 ′ + t a 2 ( n − 2 ) ( σ ′ ) 2 L x x ] \left[ \beta'{1}-t{\frac{a}{2}}(n-2)\sqrt{ \frac{(\sigma')^{2}}{L_{xx}} } ,\beta'{1}+t{\frac{a}{2}}(n-2)\sqrt{ \frac{(\sigma')^{2}}{L_{xx}} } \right] β1′−t2a(n−2)Lxx(σ′)2 ,β1′+t2a(n−2)Lxx(σ′)2

同理也可以得到 β 0 \beta_{0} β0的置信区间估计

Matlab实现
[b, bint]=regress(Y, X, 0.05)

bint就是区间估计结果

Y,隐变量的取值向量

X,系数矩阵

0.05,置信水平=1-0.05=95%

用上面的数据得

b = -16.0730 
	0.7194

bint = -33.7071  1.5612
		0.6047   0.8340

bint第一行是 β 0 ′ \beta'_{0} β0′的置信区间估计结果

第二行是 β 1 ′ \beta'_{1} β1′的置信区间估计结果

置信水平是95%的区级估计
[ − 33.71 , 1.56 ] 和 [ 0.60 , 0.83 ] [-33.71,1.56]和[0.60,0.83] [−33.71,1.56]和[0.60,0.83]

模型的残差分析

残差分析的基本概念

残差:样本的观测值与样本的预测值之差
r i = y i − y i ′ r_{i}=y_{i}-y'_{i} ri=yi−yi′

残差向量:所有样本的拟合误差,组成的列向量
r = [ r 1 r 2 ... r n ] r=\begin{bmatrix} r_{1} \\ r_{2} \\ \dots \\ r_{n} \end{bmatrix} r= r1r2...rn

残差应该满足的一些基本性质

0均值
E ( ε i ) = 0 E(\varepsilon_{i})=0 E(εi)=0

残差与残差之间是不相关的
c o v ( ε i , ε j ) = 0 cov(\varepsilon_{i},\varepsilon_{j})=0 cov(εi,εj)=0

残差的方差
v a r ( ε i ) = ( 1 − h i i ) σ 2 var(\varepsilon_{i})=(1-h_{ii})\sigma^{2} var(εi)=(1−hii)σ2

残差图分析

横坐标是自变量x,纵坐标是残差

残差是在0附近随机波动,残差与残差之间不存在明显的关联性

异方差现象,与x有关系,不符合条件

不是0均值,残差与残差之间有联系

前后之间有关联,不是随机波动

软件实现

简单残差图命令

plot(r, '*')
hold on
ezplot('0',[1,length(r)])

用plot命令画出残差,用星号表示

hold on,表示前面的不要擦除,继续画图

ezplot,画出0的基准线

Matlab残差图作图命令

rcoplot(r, rint)

r表示残差向量

rint表示残差的置信区间

中间的圆圈,表示残差

每个残差都有区间线段,表示置信区间

  • 一般认为,正常的样本,残差的置信区间,应该是要跨越0的
  • 如果置信区间明显远离0,表示这个样本是异常的

模型的检验与软件实现

模型检验之决定系数

总体平方和
T S S = ∑ i = 1 n ( y i − y ˉ ) 2 TSS=\sum_{i=1}^{n}(y_{i}-\bar{y})^{2} TSS=i=1∑n(yi−yˉ)2

隐变量的观测值减去观测值得平均值的平方和

能够反应样本观测值与中心的偏离程度

能够近似衡量样本观测值序列所包含的信息的多少

TSS的分解
T S S = ∑ i = 1 n ( y i − y ˉ ) 2 = ∑ i = 1 n ( y i − y i ^ + y i ^ − y ˉ ) 2 TSS=\sum_{i=1}^{n}(y_{i}-\bar{y})^{2}=\sum_{i=1}^{n}(y_{i}-\hat{y_{i}}+\hat{y_{i}}-\bar{y})^{2} TSS=i=1∑n(yi−yˉ)2=i=1∑n(yi−yi^+yi^−yˉ)2
= ∑ i = 1 n ( y ^ i − y ˉ ) 2 + ( y i − y ^ i ) 2 + 2 ( y i − y ^ i ) ( y ^ i − y ˉ ) =\sum_{i=1}^{n}(\hat{y}{i}-\bar{y})^{2}+(y{i}-\hat{y}{i})^{2}+2(y{i}-\hat{y}{i})(\hat{y}{i}-\bar{y}) =i=1∑n(y^i−yˉ)2+(yi−y^i)2+2(yi−y^i)(y^i−yˉ)
= ∑ i = 1 n ( y ^ i − y ˉ ) 2 + ∑ i = 1 n ( y i − y ^ i ) 2 + ∑ i = 1 n 2 ( y i − y ^ i ) ( y ^ i − y ˉ ) =\sum_{i=1}^{n}(\hat{y}{i}-\bar{y})^{2}+\sum{i=1}^{n}(y_{i}-\hat{y}{i})^{2}+\sum{i=1}^{n}2(y_{i}-\hat{y}{i})(\hat{y}{i}-\bar{y}) =i=1∑n(y^i−yˉ)2+i=1∑n(yi−y^i)2+i=1∑n2(yi−y^i)(y^i−yˉ)

交叉项的和严格等于0
∑ i = 1 n ( y i − y ˉ ) 2 = ∑ i = 1 n ( y ^ i − y ˉ ) 2 + ∑ i = 1 n ( y i − y ^ i ) 2 \sum_{i=1}^{n}(y_{i}-\bar{y})^{2}=\sum_{i=1}^{n}(\hat{y}{i}-\bar{y})^{2}+\sum{i=1}^{n}(y_{i}-\hat{y}_{i})^{2} i=1∑n(yi−yˉ)2=i=1∑n(y^i−yˉ)2+i=1∑n(yi−y^i)2

总体平方和=回归平方和(ESS)+残差平方和(RSS)

  • 回归平方和表示的是模型能够解释的那一部分平方和的信息,反应的是回归模型能够解释的观测值中的信息的多少
  • 残差平方和表示模型没有学习到的信息的多少

决定模型 R 2 R^{2} R2统计量:
R 2 = E S S T S S = 1 − R S S T S S R^{2}=\frac{ESS}{TSS}=1- \frac{RSS}{TSS} R2=TSSESS=1−TSSRSS
R 2 R^{2} R2也被称为判定系数或拟合优度

  • 取值范围一定在01之间
  • 越接近1,样本数据拟合效果越好
Matlab实现
[b, bint, r, rint, stats] = regress(Y, X, 0.05)

stats:
	0.9282 180.9531 0.0000 1.7437

因此 R 2 = 0.9282 R^{2}=0.9282 R2=0.9282

模型检验之F统计量检验

原假设 H 0 H_{0} H0:回归方程 y = β 0 + β 1 x y=\beta_{0}+\beta_{1}x y=β0+β1x不显著成立

也就是线性项可有可无,即 β 1 = 0 \beta_{1}=0 β1=0

备择假设 H 1 H_{1} H1回归方程 y = β 0 + β 1 x y=\beta_{0}+\beta_{1}x y=β0+β1x显著成立

即 β 1 ≠ 0 \beta_{1}\ne 0 β1=0

在 H 0 H_{0} H0成立的假定下,构造统计量
F = E S S 1 R S S n − 2 ∼ F ( 1 , n − 2 ) F=\frac{\frac{ESS}{1}}{\frac{RSS}{n-2}}\sim F(1,n-2) F=n−2RSS1ESS∼F(1,n−2)

其中
E S S = ∑ i = 1 n ( y ^ i − y ˉ ) 2 ESS=\sum_{i=1}^{n}(\hat{y}_{i}-\bar{y})^{2} ESS=i=1∑n(y^i−yˉ)2

自由度是1
R S S = ∑ i = 1 n ( y i − y ^ i ) 2 RSS=\sum_{i=1}^{n}(y_{i}-\hat{y}_{i})^{2} RSS=i=1∑n(yi−y^i)2

自由度是n-2

概率密度曲线
F α F_{\alpha} Fα:上 α \alpha α分位点,临界值点

如果F值,大于临界值,就拒绝原假设,即线性回归模型显著

如果F值。小于临界值,接受原假设,即线性回归模型不显著

Matlab实现
[b, bint, r, rint, stats] = regress(Y, X, 0.05)

stats:
	0.9282 180.9531 0.0000 1.7437

因此F值=180.9531

因为数据是16个人的数据,临界值 F α ( 1 , n − 2 ) F_{\alpha}(1,n-2) Fα(1,n−2),就是 F α ( 1 , 14 ) F_{\alpha}(1,14) Fα(1,14)
α \alpha α取0.05

可以查询F分布表,查到分位点

x_a = finv(0.95, 1, 14)

0.95表示落在临界值左侧的概率

1和14分别表示F分布的两个自由度

返回值就是临界值

得: F 0.05 ( 1 , 14 ) = 4.6001 F_{0.05}(1,14)=4.6001 F0.05(1,14)=4.6001

有 F 值 ≫ F 0.05 ( 1 , 14 ) F值\gg F_{0.05}(1,14) F值≫F0.05(1,14),可以得出拒绝原假设得结论,所以线性回归关系是显著成立的

与F值对应的p值

F值对应的右侧的这一块面积,就是p值

是分布落在F值右边的概率

当原假设成立的前提下,自由度是1和n-2的随机变量落在F值右侧的概率
p = P ( F ( 1 , n − 2 ) > F 值 ∣ H 0 成立 ) p=P(F(1,n-2)>F值|H_{0}成立) p=P(F(1,n−2)>F值∣H0成立)

  • p值可以理解为接受回归模型的风险,即犯错的概率
Matlab实现
[b, bint, r, rint, stats] = regress(Y, X, 0.05)

stats:
	0.9282 180.9531 0.0000 1.7437

p值是0.000

>> stats(3)

输入以上语句来得到p值

ans=
	2.1312e-09

2.1312 × 1 0 − 9 2.1312\times 10^{-9} 2.1312×10−9

因此,接受回归模型正确的风险为2.1312e-09

σ 2 \sigma^{2} σ2的无偏估计

stats的第四个统计指标
σ 2 \sigma^{2} σ2是模型的随机误差项的方差
σ ^ 2 = 1 n − 2 ∑ i = 1 n ε i 2 = 1 n − 2 ∑ i = 1 n ( y i − y ^ i ) 2 \hat{\sigma}^{2}=\frac{1}{n-2}\sum_{i=1}^{n}\varepsilon_{i}^{2}=\frac{1}{n-2}\sum_{i=1}^{n}(y_{i}-\hat{y}_{i})^{2} σ^2=n−21i=1∑nεi2=n−21i=1∑n(yi−y^i)2

残差平方和除以自由度n-2

模型预测
  1. 点预测
    将对 x 0 x_{0} x0代入经验回归方程,得点预测结果
    y ^ 0 = β ^ 0 + β ^ 1 x 0 \hat{y}{0}=\hat{\beta}{0}+\hat{\beta}{1}x{0} y^0=β^0+β^1x0
  2. 区间预测
    置信水平 1 − α 1-\alpha 1−α下,对 y 0 y_{0} y0进行区间估计
    [ y ^ − δ ( x 0 ) , y ^ + δ ( x 0 ) ] [\hat{y}-\delta(x_{0}), \quad \hat{y}+\delta(x_{0})] [y^−δ(x0),y^+δ(x0)]
    其中
    δ ( x 0 ) = σ ^ 1 + 1 n + ( x 0 − x ˉ ) 2 L x x t a 2 ( n − 2 ) \delta(x_{0})=\hat{\sigma}\sqrt{ 1+ \frac{1}{n}+\frac{(x_{0}-\bar{x})^{2}}{L_{xx}} }t_{\frac{a}{2}}(n-2) δ(x0)=σ^1+n1+Lxx(x0−xˉ)2 t2a(n−2)
    X T X = ( C i j ) X^{T}X=(C_{ij}) XTX=(Cij)
Matalab实现
y_hat = b(1)+b(2)*x
plot(x, Y, 'k+', x, y_hat, 'r')

把x的取值向量,直接代入到经验回归模型当中

b(1)就是 β 0 \beta_{0} β0

b(2)就是 β 1 \beta_{1} β1

y_hat是预测值

Y表示原始的样本观测值,用黑色加号表示

预测值用红色的实线表示

多元线性回归模型与软件实现

基本概念

一般地,称由
y = β 0 + β 1 x 2 + ⋯ + β m x m + ϵ y=\beta_{0}+\beta_{1}x_{2}+\dots+\beta_{m}x_{m}+\epsilon y=β0+β1x2+⋯+βmxm+ϵ

确定的模型,为m元线性回归模型,也可表示为矩阵形式
{ Y = X β + ϵ E ( ε ) = 0 , c o v ( ε , ε ) = σ 2 I n \left\{\begin{matrix} Y=X\beta+\epsilon \\ E(\varepsilon)=0,cov(\varepsilon,\varepsilon)=\sigma^{2}I_{n} \end{matrix}\right. {Y=Xβ+ϵE(ε)=0,cov(ε,ε)=σ2In

其中
Y = ( y 1 y 2 ... y n ) X = ( 1 x 11 x 12 ... x 1 m 1 x 12 x 22 ... x 2 m ... ... ... ... ... 1 x 1 n x n 2 ... x n m ) Y=\begin{pmatrix} y_{1} \\ y_{2} \\ \dots \\ y_{n} \end{pmatrix}\quad X=\begin{pmatrix} 1&&x_{11}&&x_{12}&&\dots&&x_{1m} \\ 1&&x_{12}&&x_{22}&&\dots&&x_{2m} \\ \dots&&\dots&&\dots&&\dots&&\dots \\ 1&&x_{1n}&&x_{n2}&&\dots&&x_{nm} \end{pmatrix} Y= y1y2...yn X= 11...1x11x12...x1nx12x22...xn2............x1mx2m...xnm
β = ( β 0 β 1 ... β n ) ε = ( ε 1 ε 2 ... ε n ) \beta=\begin{pmatrix} \beta_{0} \\ \beta_{1} \\ \dots \\ \beta_{n} \end{pmatrix}\quad\varepsilon=\begin{pmatrix} \varepsilon_{1} \\ \varepsilon_{2} \\ \dots \\ \varepsilon_{n} \end{pmatrix} β= β0β1...βn ε= ε1ε2...εn

主要任务
  1. 对参数 β \beta β和 σ 2 \sigma^{2} σ2作点估计
  2. 对模型参数、模型显著性作检验分析
  3. 对 y y y的值作预测,即对 y y y作点(区间)估计
模型参数的估计

用最小二乘法对 β 0 , β 1 ... β m \beta_{0},\beta_{1}\dots \beta_{m} β0,β1...βm进行参数估计
m i n β 0 , β 1 , ... , β m Q = ∑ i = 1 n ( y − β 0 − β 1 x 1 − ⋯ − β m x m ) 2 min_{\beta_{0},\beta_{1},\dots,\beta_{m}}Q=\sum_{i=1}^{n}(y-\beta_{0}-\beta_{1}x_{1}-\dots-\beta_{m}x_{m})^{2} minβ0,β1,...,βmQ=i=1∑n(y−β0−β1x1−⋯−βmxm)2

解得最小二乘估计为
β ^ = ( X T X ) − 1 ( X T Y ) \hat{\beta}=(X^{T}X)^{-1}(X^{{T}}Y) β^=(XTX)−1(XTY)

模型的检验

类似于一元线性回归情形

  1. 拟合优度检验
  2. 方程显著性的F检验
  3. 变量显著性的t检验
    基于t统计量:
    t = β ^ i σ ^ c i i ∼ t ( n − k − 1 ) t=\frac{\hat{\beta}{i}}{\hat{\sigma}\sqrt{ c{ii} }}\sim t(n-k-1) t=σ^cii β^i∼t(n−k−1)
    对参数 β i \beta_{i} βi进行显著性检验 ( H 0 : β i = 0 ) (H_{0}:\beta_{i}=0) (H0:βi=0)
    其中, X T X = ( c j j ) X^{T}X=(c_{jj}) XTX=(cjj)
模型的预测
  1. 点预测
    将对 ( x 1 ∗ , x 2 ∗ , ... , x m ∗ ) (x_{1}^{*},x_{2}^{*},\dots,x_{m}^{*}) (x1∗,x2∗,...,xm∗)代入经验回归方程,得点预测结果
    y ^ ∗ = β 0 ^ + β 1 ^ x 1 ∗ + β 2 ^ x 2 ∗ + ⋯ + β m ^ x m ∗ \hat{y}^{*}=\hat{\beta_{0}}+\hat{\beta_{1}}x_{1}^{*}+\hat{\beta_{2}}x_{2}^{*}+\dots+\hat{\beta_{m}}x_{m}^{*} y^∗=β0^+β1^x1∗+β2^x2∗+⋯+βm^xm∗
  2. 区间预测
    [ y ^ − σ t a 2 ( n − k − 1 ) 1 + ∑ i , j c i j x i x j , y ^ + σ ^ t a 2 ( n − k − 1 ) 1 + ∑ i , j c i j x i x j ^ ] \begin{bmatrix} \hat{y}-\hat{\sigma t_{\frac{a}{2}}(n-k-1)\sqrt{ 1+\sum_{i,j}c_{ij}x_{i}x_{j} } ,\hat{y}+\hat{\sigma}t_{\frac{a}{2}}(n-k-1)\sqrt{ 1+\sum_{i,j}c_{ij}x_{i}x_{j} }} \end{bmatrix} [y^−σt2a(n−k−1)1+∑i,jcijxixj ,y^+σ^t2a(n−k−1)1+∑i,jcijxixj ^]
    其中 X T X = ( c i j ) X^{T}X=(c_{ij}) XTX=(cij)
Matlab实现
[b, bint, r, rint, stats]=regress(Y, X, alpha)
  • 拟合优度 r 2 r^{2} r2越接近1,说明回归方程越显著
  • F > F α ( m , n − m − 1 ) F>F_{\alpha}(m,n-m-1) F>Fα(m,n−m−1)时拒绝H0, F F F越大,说明回归方程越显著
  • 与 F F F对应得概率 p < α p<\alpha p<α时拒绝H0,回归模型成立
建材销售量的回归模型

求解

  1. 建立建材销售量 y y y与推销开支 x 1 x_{1} x1、实际账目数 x 2 x_{2} x2、同类商品竞争数 x 3 x_{3} x3和地区销售潜力 x 4 x_{4} x4的线性回归模型
    y = β 0 + β 1 x 1 + β 2 x 2 + β 3 x 3 + β 4 x 4 + ϵ y=\beta_{0}+\beta_{1}x_{1}+\beta_{2}x_{2}+\beta_{3}x_{3}+\beta_{4}x_{4}+\epsilon y=β0+β1x1+β2x2+β3x3+β4x4+ϵ

  2. 用regress命令进行线性回归模型求解

    x1=[5.5 2.5 8 3 3 2.9 8 9 4 6.5 5.5 5 6 5 3.5 8 6 4 7.5 7]';
    x2=[31 55 67 50 38 71 30 56 42 73 60 44 50 39 55 70 40 50 62 59]';
    x3=[10 8 12 7 8 12 12 5 8 5 11 12 6 10 10 6 11 11 9 9]';
    x4=[8 6 9 16 15 17 8 10 4 16 7 12 6 4 4 14 6 8 13 11]';
    y=[79.3 200.1 163.2 200.1 146 177.7 30.9 291.9 160 339.4 159.6 86.3 237.5 ... 107.2 155 201.4 100.2 135.8 223.3 195]';
    x=[ones(size(x1)), x1, x2, x3, x4];
    [b, bint, r, rint, stats]=regress(y, X);

  3. 程序求解结果分析

  • y的90.34%可由模型确定
  • F值远超过临界值 F 0.05 ( 4.15 ) = 3.0556 F_{0.05}(4.15)=3.0556 F0.05(4.15)=3.0556
  • p值远小于 σ = 0.05 \sigma=0.05 σ=0.05
  • 模型整体上成立
  • β 1 和 β 4 \beta_{1}和\beta_{4} β1和β4置信区间包含零点, x 1 , x 4 x_{1},x_{4} x1,x4对y的影响不太显著
  1. 模型的残差分析
  • 第16个样本为异常样本
  1. 模型的改进
    首先,剔除异常样本,并重新回归计算

    y(16)=[];
    x(16,:)=[];
    [b, bint, r, rint, stats]=regress(y, X);

R 2 。 F R^{2}。F R2。F都有较大改进,但回归系数 β 4 \beta_{4} β4的置信区间包含零点

剔除不显著的变量 x 4 x_{4} x4
y = β 0 + β 1 x 1 + β 2 x 2 + β 3 x 3 + ϵ y=\beta_{0}+\beta_{1}x_{1}+\beta_{2}x_{2}+\beta_{3}x_{3}+\epsilon y=β0+β1x1+β2x2+β3x3+ϵ

[b, bint, r, rint, stats]=regress(y, X(:,1:end-1))
  • 置信区间越短了

  • 残差图基本正常

  • 最终模型具有较好的显著性

相关推荐
火山口车神丶3 小时前
某车企ASW面试笔试题
c++·matlab
今天吃饺子3 小时前
2024年SCI一区最新改进优化算法——四参数自适应生长优化器,MATLAB代码免费获取...
开发语言·算法·matlab
浊酒南街15 小时前
Statsmodels之OLS回归
人工智能·数据挖掘·回归
Evand J15 小时前
集合卡尔曼滤波(Ensemble Kalman Filter),用于二维滤波(模拟平面上的目标跟踪),MATLAB代码
matlab·平面·目标跟踪
我是博博啦20 小时前
matlab例题
人工智能·算法·matlab
2402_871321951 天前
MATLAB方程组
gpt·学习·线性代数·算法·matlab
Matlab程序猿小助手1 天前
【MATLAB源码-第218期】基于matlab的北方苍鹰优化算法(NGO)无人机三维路径规划,输出做短路径图和适应度曲线.
开发语言·嵌入式硬件·算法·matlab·机器人·无人机
subject625Ruben2 天前
随机森林(Random Forest, RF)筛选回归数据(处理异常值)
算法·随机森林·数学建模·回归
Matlab精灵2 天前
使用MATLAB进行字符串处理
开发语言·matlab
杰哥技术分享2 天前
百度飞浆:paddle 线性回归模型
百度·线性回归·paddle