多元线性回归散点图代码
时间: 2024-12-29 11:21:10 浏览: 7
### 多元线性回归散点图 Python Matplotlib 代码示例
为了展示多元线性回归中的关系,可以创建三维散点图来表示两个自变量和一个因变量之间的联系。下面是一个完整的例子,该例子展示了如何使用 `matplotlib` 和 `mpl_toolkits.mplot3d` 来绘制这样的图表。
```python
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from sklearn.linear_model import LinearRegression
# 假设的数据集
X = np.array([[73, 20], [93, 15], [89, 30], [90, 46], [86, 23],
[72, 34], [69, 12], [79, 34], [75, 56], [56, 67]])
y = np.array([63.4, 75.2, 72.4, 81.6, 73.8,
68.4, 65.2, 76.4, 82.6, 78.8])
# 创建模型并拟合数据
model = LinearRegression()
model.fit(X, y)
# 准备网格用于绘图
x_surf, y_surf = np.meshgrid(np.linspace(X[:, 0].min(), X[:, 0].max(), 10),
np.linspace(X[:, 1].min(), X[:, 1].max(), 10))
only_X = np.column_stack((x_surf.ravel(), y_surf.ravel()))
fittedY = model.predict(only_X)
# 开始绘图
fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111, projection='3d')
# 散点部分
ax.scatter(X[:, 0], X[:, 1], y, c='r', marker='o', alpha=0.5)
# 平面部分
ax.plot_surface(x_surf, y_surf, fittedY.reshape(x_surf.shape), color='b', alpha=0.3)
# 设置标签
ax.set_xlabel('Variable 1')
ax.set_ylabel('Variable 2')
ax.set_zlabel('Dependent Variable')
plt.show()
```
这段代码首先导入必要的库,并定义了一个简单的二维输入特征矩阵 `X` 及其对应的输出向量 `y` 。接着利用这些数据训练了一个线性回归模型。最后,在三维空间内画出了原始数据点以及由模型预测得到的最佳拟合平面[^2]。
阅读全文