python实现最小二乘并计算决定系数

最小二乘与决定系数

最小二乘:

最小二乘法(Least Squares Method)是一种用于估计模型参数的数学优化技术。它在统计学和数学建模中得到了广泛的应用。具体来说,最小二乘法的目标是通过最小化实际观测值与模型预测值之间的平方误差和(残差的平方和)来找到最优的模型参数。这里的“最小二乘”指的是使得残差平方和达到最小的参数值组合。最小二乘法通常用于拟合线性模型,其中模型的形式可以是线性的或者可以通过线性组合得到的(例如,多项式回归)。最小二乘法的优点是可以直观地解释和实现,而且在许多实际问题中都能得到较好的效果。然而,它也有一些限制,例如对异常值比较敏感,可能会导致拟合的模型受到影响。

决定系数

最小二乘法中的决定系数(Coefficient of Determination),通常用符号R²表示,用于衡量线性回归模型对实际数据的拟合程度。决定系数的取值范围在-inf到1之间,表示模型可以解释因变量(被预测变量)的变异程度的比例。具体来说:R² = 0 表示因变量无法由自变量预测。R² = 1 表示模型完美地预测了因变量。在实际应用中,决定系数通常用于评估一个模型对数据的拟合程度。然而,需要注意的是,决定系数并不是万能的评估指标,它有可能会因为过拟合或者其他原因而不够准确。因此,在评估模型时,最好结合其他指标一起考虑。决定系数一般只用于线性模型的拟合程度评估。

决定系数计算公式:
在这里插入图片描述

示例代码:

import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']


# 定义拟合函数(这里以线性模型为例)
def linear_model(x, a, b):
    return a * x + b


# 生成一些示例数据
x_data = np.array([1, 2, 3, 4, 5])
y_data = np.array([2.2, 3.8, 5.1, 8.5, 10.0])

# 使用 curve_fit 进行最小二乘拟合
params, covariance = curve_fit(linear_model, x_data, y_data)

# 获取拟合参数
a, b = params

# 计算拟合后的 y 值
y_fit = a * x_data + b

# 计算决定系数 R^2
mean_y = np.mean(y_data)
total_sum_of_squares = np.sum((y_data - mean_y) ** 2)
residual_sum_of_squares = np.sum((y_data - y_fit) ** 2)
r_squared = 1 - (residual_sum_of_squares / total_sum_of_squares)

print(f'拟合参数 a={a}, b={b}')
print(f'决定系数 R^2 = {r_squared}')

# 绘制原始数据和拟合曲线
plt.scatter(x_data, y_data, label='原始数据')
plt.plot(x_data, y_fit, label=f'拟合曲线: y = {a:.2f}x + {b:.2f}', color='red')
plt.xlabel('X')
plt.ylabel('Y')
plt.legend()
plt.show()

输出结果展示:

控制台输出结果如下,R^2为0.974表明拟合结果比较好:

拟合参数 a=2.0300000000022465, b=-0.1700000000025521
决定系数 R^2 = 0.9740238252812706

在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彭博锐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值