python实现一元线性回归,并进行点预测和区间预测
时间: 2024-09-29 16:15:31 浏览: 60
1_python股价预测_机器学习_python预测_线性回归_python_
5星 · 资源好评率100%
在Python中,我们可以使用scikit-learn库来实现一元线性回归。这里是一个简单的例子,演示如何进行点预测和区间预测:
首先,确保安装了必要的库:
```bash
pip install numpy pandas scikit-learn
```
然后,你可以按照以下步骤操作:
1. 导入库并加载数据集(假设有一个名为'data.csv'的文件包含特征X和目标变量y):
```python
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
df = pd.read_csv('data.csv')
X = df['feature_column'].values.reshape(-1, 1) # 替换 'feature_column' 为实际特征列名
y = df['target_column'].values.reshape(-1, 1) # 替换 'target_column' 为实际目标列名
# 分割数据集(训练集和测试集)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
```
2. 训练模型:
```python
model = LinearRegression()
model.fit(X_train, y_train)
```
3. 点预测(对测试集进行预测):
```python
y_pred_point = model.predict(X_test)
```
4. 区间预测(使用置信区间,例如95%置信区间):
线性回归默认不提供直接的置信区间计算,需要自定义。可以使用bootstrapping或者统计方法(如假定正态分布)。这里简单举例使用标准误差乘以t分布的临界值:
```python
from scipy.stats import t
import numpy as np
# 假设我们已知残差的标准差
residuals = y_test - y_pred_point
std_err = residuals.std() / np.sqrt(len(residuals))
# 95%置信区间上下限
confidence_level = 0.95
t_critical = t.ppf((1 + confidence_level) / 2, len(residuals) - 1)
interval_upper = y_pred_point + t_critical * std_err
interval_lower = y_pred_point - t_critical * std_err
```
阅读全文