python基于一元线性回归的股票价格预测研究
时间: 2025-01-01 10:10:55 浏览: 79
### 使用Python实现一元线性回归进行股票价格预测
#### 数据准备
为了构建一元线性回归模型来预测股票价格,需要收集历史股价数据作为训练集。通常可以从Yahoo Finance等平台获取这些数据。这里假设已经有一个CSV文件包含了日期和收盘价两列。
```python
import pandas as pd
from datetime import datetime
# 加载并预处理数据
data = pd.read_csv('stock_prices.csv')
dates = data['Date'].apply(lambda date_str: datetime.strptime(date_str, '%Y-%m-%d').toordinal())
prices = data['Close']
X = dates.values.reshape(-1, 1)
y = prices.values
```
这段代码读取了一个名为`stock_prices.csv`的文件,并提取其中的日期与收盘价信息[^1]。
#### 构建模型
接着定义一个简单的线性回归函数来进行拟合:
```python
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X, y)
print(f'Intercept: {model.intercept_}')
print(f'Slope: {model.coef_[0]}')
```
此部分创建了一个`LinearRegression`实例对象,并调用了它的`fit()`方法完成参数估计过程;最后打印出了截距项(intercept)以及斜率(slope)。
#### 可视化结果
利用matplotlib库可以直观展示实际值同预测曲线之间的对比情况:
```python
import matplotlib.pyplot as plt
predicted_prices = model.predict(X)
plt.figure(figsize=(10,6))
plt.scatter(dates.apply(datetime.fromordinal), y, color='blue', label="Actual Prices")
plt.plot(dates.apply(datetime.fromordinal), predicted_prices, color='red', linewidth=2, linestyle='-',label="Predicted Prices")
plt.title('Stock Price Prediction with Univariate Linear Regression')
plt.xlabel('Date')
plt.ylabel('Price')
plt.legend(loc='upper left')
plt.show()
```
上述脚本绘制了一张散点图表示真实的每日收盘价分布状况,同时还有一条红线代表由所建立的一元线性回归模型得出的价格趋势走向[^4]。
阅读全文