概率论两组数据的直线方程Python代码
时间: 2024-06-14 19:01:56 浏览: 133
项目七概率论-数据统计与区间估计(完整版)实用资料.doc
在Python中,如果你想要拟合两组数据的直线方程,通常我们会使用最小二乘法来找到最佳拟合线。这可以通过`numpy`和`matplotlib`库来实现。这里是一个简单的例子,假设你有两组数据`x1`, `y1` 和 `x2`, `y2`:
```python
import numpy as np
import matplotlib.pyplot as plt
# 假设你有两组数据(x1, y1)和(x2, y2)
x1 = [1, 2, 3, 4, 5]
y1 = [2, 3, 4, 5, 6] # 直线方程 y = x + 1 的一组数据
x2 = [6, 7, 8, 9, 10]
y2 = [7, 8, 9, 10, 11] # 另一组数据,可能会有相似的趋势
# 最小二乘拟合
slope1, intercept1 = np.polyfit(x1, y1, 1) # 一次多项式拟合(直线)
slope2, intercept2 = np.polyfit(x2, y2, 1)
# 定义直线方程
def linear_equation(x, slope, intercept):
return slope * x + intercept
# 计算拟合后的y值
y1_fitted = linear_equation(x1, slope1, intercept1)
y2_fitted = linear_equation(x2, slope2, intercept2)
# 绘制原始数据和拟合线
plt.scatter(x1, y1, label='Group 1 data')
plt.plot(x1, y1_fitted, 'r-', label='Linear fit for Group 1')
plt.scatter(x2, y2, label='Group 2 data')
plt.plot(x2, y2_fitted, 'g-', label='Linear fit for Group 2')
# 添加标题和标签
plt.title('Linear Regression for Two Data Groups')
plt.xlabel('X')
plt.ylabel('Y')
plt.legend()
# 显示图形
plt.show()
```
阅读全文