【数学】什么是最小二乘法?如何求解最小二乘法?

背景

最小二乘法(Least Squares Method)是一种用于找到数据点最佳拟合曲线的数学优化技术。它通过最小化数据点和拟合曲线之间的误差平方和来实现。广泛应用于统计学、数据分析和机器学习中。

公式

最小二乘法的基本公式如下:

  1. 线性回归模型:
    y ^ = β 0 + β 1 x \hat{y} = \beta_0 + \beta_1 x y^=β0+β1x
  2. 误差平方和(SSE):
    S S E = ∑ i = 1 n ( y i − y ^ i ) 2 = ∑ i = 1 n ( y i − ( β 0 + β 1 x i ) ) 2 SSE = \sum_{i=1}^{n} (y_i - \hat{y}i)^2 = \sum{i=1}^{n} (y_i - (\beta_0 + \beta_1 x_i))^2 SSE=i=1∑n(yi−y^i)2=i=1∑n(yi−(β0+β1xi))2
  3. 通过求解最小化误差平方和,得出最佳拟合参数:
    β 1 = n ∑ ( x i y i ) − ∑ x i ∑ y i n ∑ x i 2 − ( ∑ x i ) 2 \beta_1 = \frac{n \sum (x_i y_i) - \sum x_i \sum y_i}{n \sum x_i^2 - (\sum x_i)^2} β1=n∑xi2−(∑xi)2n∑(xiyi)−∑xi∑yi
    β 0 = ∑ y i − β 1 ∑ x i n \beta_0 = \frac{\sum y_i - \beta_1 \sum x_i}{n} β0=n∑yi−β1∑xi

示例题目

假设我们有以下数据点: ( 1 , 2 ) (1, 2) (1,2)、 ( 2 , 3 ) (2, 3) (2,3)、 ( 3 , 5 ) (3, 5) (3,5)、 ( 4 , 4 ) (4, 4) (4,4)、 ( 5 , 6 ) (5, 6) (5,6)。求最佳拟合直线。

详细讲解

  1. 计算必要的求和:
    ∑ x i = 1 + 2 + 3 + 4 + 5 = 15 \sum x_i = 1 + 2 + 3 + 4 + 5 = 15 ∑xi=1+2+3+4+5=15
    ∑ y i = 2 + 3 + 5 + 4 + 6 = 20 \sum y_i = 2 + 3 + 5 + 4 + 6 = 20 ∑yi=2+3+5+4+6=20
    ∑ x i 2 = 1 2 + 2 2 + 3 2 + 4 2 + 5 2 = 55 \sum x_i^2 = 1^2 + 2^2 + 3^2 + 4^2 + 5^2 = 55 ∑xi2=12+22+32+42+52=55
    ∑ x i y i = 1 ⋅ 2 + 2 ⋅ 3 + 3 ⋅ 5 + 4 ⋅ 4 + 5 ⋅ 6 = 70 \sum x_i y_i = 1 \cdot 2 + 2 \cdot 3 + 3 \cdot 5 + 4 \cdot 4 + 5 \cdot 6 = 70 ∑xiyi=1⋅2+2⋅3+3⋅5+4⋅4+5⋅6=70

  2. 计算斜率 β 1 \beta_1 β1:
    β 1 = 5 ⋅ 70 − 15 ⋅ 20 5 ⋅ 55 − 1 5 2 = 350 − 300 275 − 225 = 50 50 = 1 \beta_1 = \frac{5 \cdot 70 - 15 \cdot 20}{5 \cdot 55 - 15^2} = \frac{350 - 300}{275 - 225} = \frac{50}{50} = 1 β1=5⋅55−1525⋅70−15⋅20=275−225350−300=5050=1

  3. 计算截距 β 0 \beta_0 β0:
    β 0 = 20 − 1 ⋅ 15 5 = 5 5 = 1 \beta_0 = \frac{20 - 1 \cdot 15}{5} = \frac{5}{5} = 1 β0=520−1⋅15=55=1

  4. 最佳拟合直线方程为:
    y ^ = 1 + 1 x = x + 1 \hat{y} = 1 + 1x = x + 1 y^=1+1x=x+1

Python代码求解

python 复制代码
import numpy as np
import matplotlib.pyplot as plt

# 数据点
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 5, 4, 6])

# 最小二乘法计算
A = np.vstack([x, np.ones(len(x))]).T
beta, beta_0 = np.linalg.lstsq(A, y, rcond=None)[0]

# 绘图
plt.plot(x, y, 'o', label='原始数据', markersize=10)
plt.plot(x, beta * x + beta_0, 'r', label='拟合直线')
plt.legend()
plt.show()

实际生活中的例子

在经济学中,最小二乘法可以用来预测消费支出与收入之间的关系。例如,根据历史数据,使用最小二乘法可以拟合出消费支出与收入的关系直线,从而预测未来的消费行为。

相关推荐
Theodore_102216 小时前
深度学习(9)导数与计算图
人工智能·深度学习·机器学习·矩阵·线性回归
沙威玛_LHE17 小时前
树和二叉树
数据结构·算法
py有趣19 小时前
LeetCode算法学习之两数之和 II - 输入有序数组
学习·算法·leetcode
夏鹏今天学习了吗19 小时前
【LeetCode热题100(62/100)】搜索二维矩阵
算法·leetcode·矩阵
极客学术工坊20 小时前
2022年第十二届MathorCup高校数学建模挑战赛-D题 移动通信网络站址规划和区域聚类问题
机器学习·数学建模·启发式算法·聚类
吃着火锅x唱着歌21 小时前
LeetCode 1128.等价多米诺骨牌对的数量
算法·leetcode·职场和发展
十八岁讨厌编程21 小时前
【算法训练营 · 补充】LeetCode Hot100(中)
算法·leetcode
橘颂TA21 小时前
【剑斩OFFER】算法的暴力美学——最小覆盖字串
算法·c/c++·就业
wearegogog12321 小时前
基于混合蛙跳算法和漏桶算法的无线传感器网络拥塞控制与分簇新方法
网络·算法
Tiandaren1 天前
大模型应用03 || 函数调用 Function Calling || 概念、思想、流程
人工智能·算法·microsoft·数据分析