最小二乘法预测身高体重
时间: 2023-10-08 12:06:53 浏览: 205
最小二乘法是一种常用的线性回归方法,可以用来预测身高体重之间的关系。假设我们有一组数据,记录了若干人的身高和体重,我们希望通过这些数据来预测身高和体重之间的线性关系。
首先,我们需要将数据进行可视化,观察身高和体重之间的分布情况。可以使用Python的matplotlib库来绘制散点图。
```python
import matplotlib.pyplot as plt
# 身高数据
x = [1.65, 1.70, 1.75, 1.80, 1.85, 1.90]
# 体重数据
y = [60, 65, 70, 75, 80, 85]
# 绘制散点图
plt.scatter(x, y)
plt.xlabel('Height')
plt.ylabel('Weight')
plt.show()
```
接下来,我们需要使用最小二乘法来拟合一条直线,使得这条直线尽可能地与数据点相符。假设我们要拟合的直线方程为 $y = kx+b$,其中 $k$ 是斜率,$b$ 是截距。
最小二乘法的目标是最小化残差平方和,即使得预测值与实际值之间的误差最小。可以使用SciPy库中的`linregress()`方法来计算最小二乘回归线的斜率和截距。
```python
from scipy.stats import linregress
# 计算斜率和截距
k, b, r, p, std_err = linregress(x, y)
# 输出拟合结果
print('斜率 k =', k)
print('截距 b =', b)
print('相关系数 r =', r)
print('p 值 =', p)
print('标准误差 =', std_err)
```
最终的拟合结果为 $y = 18.68x-24.91$,其中斜率表示每增加一英寸身高,体重平均增加18.68磅,截距表示身高为0时的平均体重为-24.91磅。可以使用拟合的直线来预测任意身高对应的体重,例如:
```python
# 预测身高为1.85英寸的体重
height = 1.85
weight = k * height + b
print('当身高为%.2f英寸时,预测体重为%.2f磅。' % (height, weight))
```
阅读全文