import pandas as pd import numpy as np import matplotlib.pyplot as plt from statsmodels.tsa.arima.model import ARIMA from statsmodels.graphics.tsaplots import plot_acf, plot_pacf plt.rcParams['font.sans-serif']=['SimHei'] import matplotlib as mpl mpl.rcParams['axes.unicode_minus'] = False import warnings warnings.filterwarnings("ignore") years = range(1997, 2004) months = range(1, 13) data = [ [9.4, 11.3, 16.8, 19.8, 20.3, 18.8, 20.9, 24.9, 24.7, 24.3, 19.4, 18.6], [9.6, 11.7, 15.8, 19.9, 19.5, 17.8, 17.8, 23.3, 21.4, 24.5, 20.1, 15.9], [10.1, 12.9, 17.7, 21, 21, 20.4, 21.9, 25.8, 29.3, 29.8, 23.6, 16.5], [11.4, 26, 19.6, 25.9, 27.6, 24.3, 23, 27.8, 27.3, 28.5, 32.8, 18.5], [11.5, 26.4, 20.4, 26.1, 28.9, 28, 25.2, 30.8, 28.7, 28.1, 22.2, 20.7], [13.7, 29.7, 23.1, 28.9, 29, 27.4, 26, 32.2, 31.4, 32.6, 29.2, 22.9], [15.4, 17.1, 23.5, 11.6, 1.78, 2.61, 8.8, 16.2, None, None, None, None] ] df = pd.DataFrame(data, columns=range(1, 13), index=range(1997, 2004)) df.index.name = '年份' # 平稳性检验 def test_stationarity(timeseries): # 将数组转换为 Series 对象 series = pd.Series(timeseries) # 计算移动平均和移动标准差 rolling_mean = series.rolling(window=3).mean() rolling_std = series.rolling(window=3).std() # 绘制移动平均和移动标准差 plt.figure(figsize=(10, 6),dpi=500) plt.plot(series.values.flatten(), label='原始数据') plt.plot(rolling_mean.values.flatten(), label='移动平均') plt.plot(rolling_std.values.flatten(), label='移动标准差') plt.xlabel('月数') plt.ylabel('接待人数(万人)') plt.title('移动平均和移动标准差') plt.legend() plt.show() # 执行ADF单位根检验 from statsmodels.tsa.stattools import adfuller result = adfuller(series.dropna()) print('ADF检验结果:') print(f'ADF统计量: {result[0]}') print(f'p-value: {result[1]}') print(f'临界值: {result[4]}') # 进行平稳性检验 test_stationarity(df.stack().values.flatten()) # 差分处理 df_diff = df.diff().dropna()
时间: 2024-01-28 08:05:01 浏览: 149
这段代码是一个Python程序,它的功能是进行时间序列分析。首先,导入了一些必要的模块和库,如pandas、numpy、matplotlib等。然后,定义了一个二维数组data,并将其转换为pandas的DataFrame格式。接下来,定义了一个名为test_stationarity的函数,用于检验时间序列的平稳性。具体而言,该函数计算了时间序列的移动平均和移动标准差,并绘制了它们的图形,然后执行ADF单位根检验,以确定时间序列是否平稳。最后,对原始数据进行了差分处理,并保存在新的DataFrame df_diff中。
阅读全文
相关推荐
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![7z](https://img-home.csdnimg.cn/images/20241231044736.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)