时间序列分析python代码
时间: 2023-10-30 18:59:17 浏览: 150
当涉及时间序列分析时,Python中有几个常用的库和模块可以使用。以下是一个基本的时间序列分析的Python代码示例:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.tsa.seasonal import seasonal_decompose
from statsmodels.tsa.arima.model import ARIMA
# 读取数据集
data = pd.read_csv('data.csv', parse_dates=['Date'], index_col='Date')
# 可视化数据
plt.figure(figsize=(10, 6))
plt.plot(data)
plt.title('Time Series Data')
plt.xlabel('Date')
plt.ylabel('Value')
plt.show()
# 分解时间序列
result = seasonal_decompose(data, model='additive', period=12)
# 可视化分解后的时间序列
plt.figure(figsize=(10, 8))
plt.subplot(411)
plt.plot(data, label='Original')
plt.legend(loc='best')
plt.subplot(412)
plt.plot(result.trend, label='Trend')
plt.legend(loc='best')
plt.subplot(413)
plt.plot(result.seasonal, label='Seasonality')
plt.legend(loc='best')
plt.subplot(414)
plt.plot(result.resid, label='Residuals')
plt.legend(loc='best')
plt.tight_layout()
plt.show()
# 构建ARIMA模型
model = ARIMA(data, order=(1, 1, 1))
model_fit = model.fit()
# 预测未来值
future_values = model_fit.predict(start=data.index[-1], end=data.index[-1] + pd.DateOffset(months=12))
# 可视化预测结果
plt.figure(figsize=(10, 6))
plt.plot(data, label='Actual')
plt.plot(future_values, label='Forecast')
plt.title('Time Series Forecast')
plt.xlabel('Date')
plt.ylabel('Value')
plt.legend(loc='best')
plt.show()
```
在上述代码中,我们首先导入了所需的库和模块,然后读取时间序列数据集。接下来,我们可视化了原始时间序列数据,以及对其进行了季节性分解,分别展示了趋势、季节性和残差。然后,我们构建了一个ARIMA模型,并使用该模型进行了未来值的预测,并将预测结果与实际值进行了可视化比较。
请注意,这只是一个简单的示例代码,实际的时间序列分析可能涉及更复杂的数据处理和模型调参过程。具体的分析方法和代码实现可能因不同的情况而有所不同。
阅读全文