python多元线性回归实例分析
时间: 2024-12-26 08:23:19 浏览: 8
### Python 多元线性回归实例分析教程
#### 数据准备与预处理
为了构建多元线性回归模型,首先需要准备好合适的数据集并对其进行必要的预处理工作。这一步骤包括但不限于加载数据、查看基本统计信息以及处理缺失值等问题。
```python
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# 假设已有一个CSV文件作为数据源
data = pd.read_csv('your_dataset.csv')
# 查看前几行记录了解数据结构
print(data.head())
# 对于存在连续型特征的情况建议标准化
scaler = StandardScaler()
scaled_features = scaler.fit_transform(data.drop(columns=['target']))
X_train, X_test, y_train, y_test = train_test_split(scaled_features,
data['target'],
test_size=0.2,
random_state=42)
```
#### 构建与训练模型
接下来,在完成上述准备工作之后就可以着手建立多元线性回归模型了。这里采用`sklearn.linear_model.LinearRegression`来创建模型对象,并调用其`.fit()`方法完成参数估计过程[^1]。
```python
from sklearn.linear_model import LinearRegression
model = LinearRegression()
# 训练模型
model.fit(X_train, y_train)
# 输出拟合优度R²得分
print(f'Training R^2 Score: {model.score(X_train, y_train)}')
print(f'Testing R^2 Score: {model.score(X_test, y_test)}')
```
#### 结果评估与解释
除了计算决定系数\(R^{2}\),还可以进一步考察其他指标如均方误差(MSE)等以全面衡量预测效果的好坏程度;另外值得注意的是,当面对实际应用场景时还需要考虑业务逻辑层面的意义解读——即哪些自变量对因变量影响较大?这些因素之间是否存在交互作用?
```python
from sklearn.metrics import mean_squared_error
predictions = model.predict(X_test)
mse = mean_squared_error(y_test, predictions)
rmse = mse ** 0.5
print(f'Root Mean Squared Error (RMSE): {rmse}')
# 获取各特征对应的权重绝对值大小排序
feature_importance = abs(model.coef_)
sorted_idx = feature_importance.argsort()[::-1]
for idx in sorted_idx:
print(f'{data.columns[idx]} : {feature_importance[idx]}')
```
#### 异常点检测
考虑到多元线性回归模型可能受极端值干扰而降低准确性,因此有必要引入一些有效的手段识别潜在异常情况。可以借助帽子矩阵(Hat Matrix), DFFITS标准, 学生化残差(Studentized Residuals) 或Cook's Distance来进行诊断测试[^2]。
```python
import statsmodels.api as sm
ols_result = sm.OLS(y_train, sm.add_constant(pd.DataFrame(X_train))).fit()
influence_measures = ols_result.get_influence().summary_frame()
# 打印部分重要测量项的结果概览表头
print(influence_measures[['cooks_d', 'dffits_internal']].head())
```
阅读全文