时间序列分析Python
时间: 2024-01-20 16:16:58 浏览: 81
时间序列分析是一种统计学方法,用于研究时间序列数据的特征、趋势、周期性和变化程度,并从中提取有用的信息。在Python中,可以使用各种库和工具进行时间序列分析。
以下是一个时间序列分析的示例代码:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 读取时间序列数据
data = pd.read_csv('data.csv', parse_dates=['date'], index_col='date')
# 绘制时间序列图
plt.plot(data)
plt.xlabel('Date')
plt.ylabel('Value')
plt.title('Time Series Data')
plt.show()
# 计算移动平均值
rolling_mean = data.rolling(window=7).mean()
# 绘制移动平均值图
plt.plot(data, label='Original')
plt.plot(rolling_mean, label='Rolling Mean')
plt.xlabel('Date')
plt.ylabel('Value')
plt.title('Moving Average')
plt.legend()
plt.show()
# 分解时间序列
from statsmodels.tsa.seasonal import seasonal_decompose
decomposition = seasonal_decompose(data)
trend = decomposition.trend
seasonal = decomposition.seasonal
residual = decomposition.resid
# 绘制分解后的图
plt.subplot(411)
plt.plot(data, label='Original')
plt.legend(loc='best')
plt.subplot(412)
plt.plot(trend, label='Trend')
plt.legend(loc='best')
plt.subplot(413)
plt.plot(seasonal, label='Seasonality')
plt.legend(loc='best')
plt.subplot(414)
plt.plot(residual, label='Residuals')
plt.legend(loc='best')
plt.tight_layout()
plt.show()
```
这段代码演示了如何使用Python进行时间序列分析。首先,读取时间序列数据并绘制时间序列图。然后,计算移动平均值并绘制移动平均值图。最后,使用季节性分解方法将时间序列分解为趋势、季节性和残差,并绘制分解后的图。
阅读全文