statsmodels.OLS
时间: 2025-01-25 14:03:28 浏览: 49
### 使用 `statsmodels` 中的 OLS 进行线性回归分析
#### 导入必要的库
为了使用 `statsmodels` 的 OLS 功能,首先需要导入所需的 Python 库:
```python
import numpy as np
import pandas as pd
import statsmodels.api as sm
from sklearn.model_selection import train_test_split
```
#### 准备数据集
假设有一个包含多个特征的数据框 `df` 和目标变量 `y`。这里展示如何准备数据以便于后续操作。
```python
# 假设 df 是一个 Pandas DataFrame,其中包含了所有的自变量列以及因变量 'target'
X = df.drop('target', axis=1) # 自变量
y = df['target'] # 因变量
# 将数据分割成训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)[^3]
```
#### 添加常数项
由于 OLS 需要截距项,在拟合之前应该向设计矩阵添加一列全为 1 的值作为偏置/截距。
```python
X_train_with_const = sm.add_constant(X_train)
X_test_with_const = sm.add_constant(X_test)
```
#### 创建并拟合模型
创建 OLS 模型实例,并利用训练数据对其进行拟合。
```python
model = sm.OLS(y_train, X_train_with_const).fit()
print(model.summary()) # 输出详细的统计摘要信息[^2]
```
上述命令会打印出关于所估计参数的各种统计数据,比如系数、标准误、t 统计量及其对应的 p-value 等重要指标。此外还会给出一些整体性能衡量的标准,像 R² 及其修正版本 Adjusted R-squared [^1]。
#### 对新样本做预测
一旦有了已经训练好的模型,就可以基于此来进行新的观测值上的预测工作了。
```python
predictions = model.predict(X_test_with_const)
# 计算均方误差 MSE 来评价模型的好坏程度
mse = ((predictions - y_test)**2).mean()
print(f'Mean Squared Error on Test Set: {mse:.4f}')
```
通过这种方式可以有效地运用 `statsmodels` 提供的强大工具完成从简单到复杂的各类线性回归任务。
阅读全文
相关推荐



















