python进行回归线和95%置信区间绘制
时间: 2023-12-02 11:19:10 浏览: 918
对于一个简单的线性回归模型,可以使用`numpy`和`matplotlib`库来绘制回归线和95%置信区间的图形。以下是一个示例代码:
``` python
import numpy as np
import matplotlib.pyplot as plt
# 生成数据
x = np.array([1, 2, 3, 4, 5])
y = np.array([2.1, 3.9, 6.1, 8.2, 9.8])
# 计算回归系数
beta1, beta0 = np.polyfit(x, y, deg=1)
# 计算残差
resid = y - (beta1 * x + beta0)
# 计算标准误差
mse = np.sum(resid**2) / (len(x) - 2)
se = np.sqrt(mse / np.sum((x - np.mean(x))**2))
# 计算置信区间
alpha = 0.05 # 置信水平
t_value = 2.306 # 自由度为3,置信水平为0.95时的t值
CI = t_value * se * np.sqrt(1 + 1/len(x) + (x - np.mean(x))**2 / np.sum((x - np.mean(x))**2))
# 绘制散点图和回归线
plt.scatter(x, y)
plt.plot(x, beta1 * x + beta0, color='red')
# 绘制置信区间
plt.fill_between(x, beta1 * x + beta0 - CI, beta1 * x + beta0 + CI, color='gray', alpha=0.4)
# 设置坐标轴标签
plt.xlabel('x')
plt.ylabel('y')
# 显示图像
plt.show()
```
在上述代码中,首先生成了一组示例数据,然后使用`numpy.polyfit()`函数计算回归系数。接着,计算残差和标准误差,进而计算95%置信区间。最后,使用`matplotlib`库的`scatter()`函数绘制散点图,使用`plot()`函数绘制回归线,使用`fill_between()`函数绘制置信区间。最后,设置坐标轴标签并显示图像。
阅读全文