关于回归模型 并画出残差图
时间: 2023-12-15 20:05:32 浏览: 249
回归模型是用于建立自变量和因变量之间关系的统计模型。对于两个自变量x1和x2的回归模型,可以表示为:
Y = β0 + β1x1 + β2x2 + ε
其中,Y是因变量,x1和x2是自变量,β0、β1和β2是回归系数,ε是随机误差。
为了判断回归模型的拟合效果,可以绘制出残差图。残差是指模型预测值与真实值之间的差异,残差图则是将每个样本的残差作为纵坐标,自变量(例如x1或x2)作为横坐标绘制的散点图。如果残差图中的点没有规律地分布在水平线附近,则说明模型存在一些问题,例如未考虑到某些重要的自变量或者模型形式不正确。
下面是一个简单的Python代码示例,用于绘制x1和x2的回归模型和残差图:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
# 生成随机数据
np.random.seed(0)
n = 100
x1 = np.random.randn(n)
x2 = np.random.randn(n)
y = 2 + 3*x1 + 4*x2 + np.random.randn(n)
# 建立回归模型
X = np.column_stack([x1, x2])
model = LinearRegression().fit(X, y)
# 绘制回归模型和残差图
y_pred = model.predict(X)
residuals = y - y_pred
fig, axs = plt.subplots(1, 2, figsize=(10, 4))
axs[0].scatter(x1, y, color='b')
axs[0].plot(x1, y_pred, color='r')
axs[0].set_xlabel('x1')
axs[0].set_ylabel('y')
axs[0].set_title('Regression Model')
axs[1].scatter(x1, residuals, color='g')
axs[1].axhline(y=0, color='r', linestyle='-')
axs[1].set_xlabel('x1')
axs[1].set_ylabel('Residuals')
axs[1].set_title('Residual Plot')
plt.show()
```
这段代码首先生成了100个随机样本,其中x1和x2是自变量,y是因变量。接着使用sklearn库中的LinearRegression类建立回归模型,并使用matplotlib库绘制回归模型和残差图。最后运行代码,就可以看到绘制的结果了。
阅读全文