文章目录
- 前言
- 一、多元线性回归
- 多元线性回归模型
- 线性模型 ( Y , X β , σ 2 I n ) (Y,X\beta,\sigma^2I_n) (Y,Xβ,σ2In) 考虑的主要问题
- 多元线性回归模型的参数估计
- 多元线性回归模型和回归系数的检验
- 二、示例
- 三、代码实现----Matlab
- 1.多元回归的实现
- 2.逐步回归的实现
- 3.Matlab代码
前言
通过模型算法,熟练对Matlab的应用。
学习视频链接:
https://www.bilibili.com/video/BV1EK41187QF?p=44&vd_source=67471d3a1b4f517b7a7964093e62f7e6
一、多元线性回归
多元线性回归模型
一般称由 y = β 0 + β 1 x 1 + ⋯ + β k x k y=\beta_0+\beta_1x_1+\cdots+\beta_kx_k y=β0+β1x1+⋯+βkxk 确定的模型:
{ Y = X β + ϵ E ( ϵ ) = 0 , C O V ( ϵ , ϵ ) = σ 2 I n \left\{\begin{matrix}Y=X\beta+\epsilon\\E(\epsilon)=0\:,COV(\epsilon\:,\epsilon)=\sigma^2I_n\end{matrix}\right. {Y=Xβ+ϵE(ϵ)=0,COV(ϵ,ϵ)=σ2In
为 k k k 元线性回归模型,并简记为 ( Y , X β , σ 2 I n ) (Y,X\beta,\sigma^2I_n) (Y,Xβ,σ2In)。
Y = [ y 1 y 2 . . . y n ] , X = [ 1 x 11 x 12 . . . x 1 k 1 x 21 x 22 . . . x 2 k . . . . . . . . . . . . . . . 1 x n 1 x n 2 . . . x n k ] , β = [ β 0 β 1 . . . β k ] , ϵ = [ ϵ 1 ϵ 2 . . . ϵ n ] \begin{aligned}Y=\begin{bmatrix}y_1\\y_2\\...\\y_n\end{bmatrix}\:,X=\begin{bmatrix}1&x_{11}&x_{12}&...&x_{1k}\\1&x_{21}&x_{22}&...&x_{2k}\\...&...&...&...&...\\1&x_{n1}&x_{n2}&...&x_{nk}\end{bmatrix}\:,\beta=\begin{bmatrix}\beta_0\\\beta_1\\...\\\beta_k\end{bmatrix}\:,\:\epsilon=\begin{bmatrix}\epsilon_1\\\epsilon_2\\...\\\epsilon_n\end{bmatrix}\end{aligned} Y= y1y2...yn ,X= 11...1x11x21...xn1x12x22...xn2............x1kx2k...xnk ,β= β0β1...βk ,ϵ= ϵ1ϵ2...ϵn
y = β 0 + β 1 x 1 + ⋯ + β k x k y= \beta _{0}+ \beta _{1}x_{1}+ \cdots + \beta _{k}x_{k} y=β0+β1x1+⋯+βkxk称为回归平面方程。
线性模型 ( Y , X β , σ 2 I n ) (Y,X\beta,\sigma^2I_n) (Y,Xβ,σ2In) 考虑的主要问题
- 对参数 β \beta β 和 σ 2 \sigma^2 σ2 作点估计,建立 y y y 与 x 1 , x 2 , ⋯ , x k x_1,x_2,\cdots,x_k x1,x2,⋯,xk 之间的数量关系
- 对模型参数、模型结果等做检验
- 对 γ \gamma γ 的值作预测,即对 γ \gamma γ 作点(区间)估计
多元线性回归模型的参数估计
- 用最小二乘法求 β 0 , ⋯ , β k \beta_0,\cdots,\beta_k β0,⋯,βk 的估计量:作离差平方和
Q = ∑ i = 1 n ( y i − β 0 − β 1 x i 1 − ⋯ − β k x i k ) 2 Q=\sum_{i=1}^n(y_i-\beta_0-\beta_1x_{i1}-\cdots-\beta_kx_{ik})^2 Q=i=1∑n(yi−β0−β1xi1−⋯−βkxik)2 - 选择 β 0 , ⋯ , β k \beta_0,\cdots,\beta_k β0,⋯,βk 使 Q Q Q 达到最小
- 解得估计值 β ^ = ( X T X ) − 1 ( X T Y ) \hat{\beta}=(X^TX)^-1(X^TY) β^=(XTX)−1(XTY)
- 得到的 β ^ i \hat{\beta}_i β^i代入回归平面方程得:
y = β ^ 0 + β ^ 1 x 1 + ⋯ + β ^ k x k y=\hat{\beta}_0+\hat{\beta}_1x_1+\cdots+\hat{\beta}_kx_k y=β^0+β^1x1+⋯+β^kxk - 称为经验回归平面方程, β ^ i \hat{\beta}_i β^i 称为经验回归系数
多元线性回归模型和回归系数的检验
1 ) F 1) F 1)F 检验法
- 当 H 0 H_{0} H0 成立时, F = U / k Q e / ( n − k − 1 ) ∼ F ( k , n − k − 1 ) F=\frac{U/k}{Q_{e}/(n-k-1)}\sim F(k,n-k-1) F=Qe/(n−k−1)U/k∼F(k,n−k−1)
- 如果 F > F 1 − α ( k , n − k − 1 ) F>F_{1-\alpha}(k,n-k-1) F>F1−α(k,n−k−1),则拒绝 H 0 H_0 H0 ,认为 y y y 与 x 1 , ⋅ ⋅ ⋅ , x k x_1,\cdotp\cdotp\cdotp,x_k x1,⋅⋅⋅,xk 之间显著地有线性关系;否则就接受 H 0 H_0 H0,认为 y y y 与 x 1 , ⋯ , x k x_1,\cdots,x_k x1,⋯,xk 之间线性关系不显著。
- 其中 U = ∑ i = 1 n ( y ^ i − y ˉ ) 2 ( 回归平方和 ) Q e = ∑ i = 1 n ( y i − y ^ i ) 2 ( 残差平方和 ) U=\sum_{i=1}^{n}(\hat{y}_{i}-\bar{y})^{2}\:(\text{回归平方和})\\Q_{e}=\sum_{i=1}^{n}(y_{i}-\hat{y}_{i})^{2}\:(\text{残差平方和}) U=i=1∑n(y^i−yˉ)2(回归平方和)Qe=i=1∑n(yi−y^i)2(残差平方和)
2 ) r 2) r 2)r 检验法
- 定义
R = U L y y = U U + Q e R=\sqrt{\dfrac{U}{L_{yy}}}=\sqrt{\dfrac{U}{U+Q_e}} R=LyyU=U+QeU
称为 y y y 与 x 1 , ⋯ , x k x_1,\cdots,x_k x1,⋯,xk 的多元相关系数或复相关系数。由于
F = n − k − 1 k R 2 1 − R 2 F=\frac{n-k-1}{k}\frac{R^2}{1-R^2} F=kn−k−11−R2R2
故用 F F F 和用 R R R 检验是等效的。
二、示例
- 水泥凝固时放出的热量 y y y 与水泥中4种化学成分 x 1 , x 2 , x 3 , x 4 x_1,x_2,x_3,x_4 x1,x2,x3,x4 有关,今测得一组数据如下,试用逐步回归法确定一个线性模型,并找出影响水泥凝固时放出热量的必要因素
多元线性回归的逐步回归
- “最优” 的回归方程就是包含所有对 Y Y Y 有影响的变量,而不包含对 Y Y Y 影响不显著的变量回归方
- 逐步回归分析法的思想:
- 从一个自变量开始,根据自变量对 Y Y Y 作用的显著程度,从大到小地依次逐个引入回归方程
- 当引入的自变量由于后引入变量而变得不显著时,要将其剔除掉。
- 引入一个自变量或从回归方程中剔除一个自变量,为逐步回归的一步。
- 对于每一步都要进行 Y Y Y 值检验,以确保每次引入新的显著性变量前回归方程中只包含对Y作用显著的变量。
- 这个过程反复进行,直至既无不显著的变量从回归方程中剔除,又无显著变量可引入回归方程时为止。
三、代码实现----Matlab
1.多元回归的实现
Matlab的 regress
函数
regress
函数的基本语法如下:
[b,bint,r,rint,stats]=regress(Y,X,alpha)
b = [ β ^ 0 β ^ 1 . . . β ^ p ] , Y = [ y 1 y 2 . . . y n ] , X = [ 1 x 11 x 12 ⋯ x 1 p 1 x 21 x 22 ⋯ x 2 p . . . . . . . . . . . . . . . 1 x n 1 x n 2 . . . x n p ] b=\begin{bmatrix}\hat{\beta}_0\\\hat{\beta}_1\\...\\\hat{\beta}_p\end{bmatrix},Y=\begin{bmatrix}y_1\\y_2\\...\\y_n\end{bmatrix}\:,X=\begin{bmatrix}1&x_{11}&x_{12}&\cdots&x_{1p}\\1&x_{21}&x_{22}&\cdots&x_{2p}\\...&...&...&...&...\\1&x_{n1}&x_{n2}&...&x_{np}\end{bmatrix} b= β^0β^1...β^p ,Y= y1y2...yn ,X= 11...1x11x21...xn1x12x22...xn2⋯⋯......x1px2p...xnp
2.逐步回归的实现
Matlab的 stepwise
函数
stepwise
函数的基本语法如下:
stepwise( x, y, inmodel, alpha)
x − − x-- x−−自变量数据, n × m n\times m n×m 阶矩阵 y − − y-- y−− 因变量数据, n × 1 n\times1 n×1阶矩阵
i n m o d e l − − inmodel-- inmodel−−矩阵的列数的指标,给出初始模型中包括的子集(缺省时设定为全部自变量)
a l p h a − − alpha-- alpha−−默认为0.05
3.Matlab代码
clc;clear
x1=[7 1 11 11 7 11 3 1 2 21 1 11 10]';
x2=[26 29 56 31 52 55 71 31 54 47 40 66 68]';
x3=[6 15 8 8 6 9 17 22 18 4 23 9 8]';
x4=[60 52 20 47 33 22 6 44 22 26 34 12 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 109.4]';
x=[x1 x2 x3 x4]; % 自变量矩阵,包括四个自变量
stepwise(x,y) % 使用逐步回归分析方法,选取最佳模型
X 1 、 X 2 、 X 3 、 X 4 X1、X2、X3、X4 X1、X2、X3、X4 全部选中时, F F F = 111.479
只选中 X 1 、 X 2 X1、X2 X1、X2 时, F F F = 229.504
只选中 X 3 、 X 4 X3、X4 X3、X4 时, F F F = 72.2674
可见 X 1 、 X 2 X1、X2 X1、X2 是影响 Y Y Y 的必要因素
只对 X 1 、 X 2 X1、X2 X1、X2 进行线性回归:
% 水泥凝固时放热分析
% (1)数据输入
clc;clear
x1=[7 1 11 11 7 11 3 1 2 21 1 11 10]';
x2=[26 29 56 31 52 55 71 31 54 47 40 66 68]';
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 109.4]';
x=[ones(size(x1)),x1, x2]; % 自变量矩阵,包括四个自变量
% (2)求结果
[b,bint,r,rint,stats]=regress(y,x) % 进行多元线性回归分析
% (3)画残差图
rcoplot(r,rint) % 绘制残差图,用于评估回归模型的拟合情况
% 3、作图
% 定义自变量的范围
x1 = -10:0.1:10; % x1的取值范围
x2 = -10:0.1:10; % x2的取值范围% 计算对应的因变量值
[X1, X2] = meshgrid(x1, x2); % 创建网格点坐标矩阵
Z = b(1) + b(2)*X1 + b(3)*X2; % 计算对应的因变量值% 绘制三维图形
figure;
surf(X1, X2, Z);
xlabel('x1');
ylabel('x2');
zlabel('z');
title('Z = 52.5773 + 1.4683*X1 + 0.6623*X2');
运行结果:
残差分析:
三维图: