【发布时间】:2020-06-02 14:43:39
【问题描述】:
我有一个每日频率时间序列数据集。
数据集:
Births
Date
1959-01-01 35
1959-01-02 32
1959-01-03 30
1959-01-04 31
1959-01-05 44
1959-01-06 29
1959-01-07 45
1959-01-08 43
1959-01-09 38
1959-01-10 27
1959-01-11 38
1959-01-12 33
1959-01-13 55
1959-01-14 47
1959-01-15 45
1959-01-16 37
1959-01-17 50
1959-01-18 43
1959-01-19 41
1959-01-20 52
1959-01-21 34
1959-01-22 53
1959-01-23 39
1959-01-24 32
1959-01-25 37
1959-01-26 43
1959-01-27 39
1959-01-28 35
1959-01-29 44
1959-01-30 38
1959-01-31 24
1959-02-01 23
1959-02-02 31
1959-02-03 44
1959-02-04 38
1959-02-05 50
1959-02-06 38
1959-02-07 51
1959-02-08 31
1959-02-09 31
1959-02-10 51
1959-02-11 36
1959-02-12 45
1959-02-13 51
1959-02-14 34
1959-02-15 52
1959-02-16 47
1959-02-17 45
1959-02-18 46
1959-02-19 39
1959-02-20 48
1959-02-21 37
1959-02-22 35
1959-02-23 52
1959-02-24 42
1959-02-25 45
1959-02-26 39
1959-02-27 37
1959-02-28 30
1959-03-01 35
对于平稳性,我使用 Augmented Dickey-fuller 检验进行了检查,结果证明是平稳的。
我想在其上应用 ARMA 模型,因为我的季节性组件不存在并且数据是固定的。 为了获得 (p,q) 的最佳值,我使用了:
from pmdarima import auto_arima
auto_arima(df1['Births'],start_p=1,max_p=6, start_q=1, max_q=6, seasonal=False, trace = True).summary()
它返回了我:
Fit ARIMA: (0, 0, 0)x(0, 0, 0, 0) (constant=True); AIC=419.527, BIC=423.716, Time=0.032 seconds
Fit ARIMA: (0, 0, 1)x(0, 0, 0, 0) (constant=True); AIC=421.238, BIC=427.521, Time=0.082 seconds
Fit ARIMA: (0, 0, 2)x(0, 0, 0, 0) (constant=True); AIC=421.309, BIC=429.687, Time=0.095 seconds
Fit ARIMA: (0, 0, 3)x(0, 0, 0, 0) (constant=True); AIC=422.696, BIC=433.168, Time=0.135 seconds
Fit ARIMA: (0, 0, 4)x(0, 0, 0, 0) (constant=True); AIC=424.376, BIC=436.942, Time=0.185 seconds
Fit ARIMA: (0, 0, 5)x(0, 0, 0, 0) (constant=True); AIC=426.365, BIC=441.026, Time=0.258 seconds
Fit ARIMA: (1, 0, 0)x(0, 0, 0, 0) (constant=True); AIC=421.148, BIC=427.431, Time=0.016 seconds
Fit ARIMA: (1, 0, 1)x(0, 0, 0, 0) (constant=True); AIC=422.261, BIC=430.639, Time=0.244 seconds
Fit ARIMA: (1, 0, 2)x(0, 0, 0, 0) (constant=True); AIC=423.047, BIC=433.519, Time=0.282 seconds
Fit ARIMA: (1, 0, 3)x(0, 0, 0, 0) (constant=True); AIC=424.396, BIC=436.962, Time=0.427 seconds
Fit ARIMA: (1, 0, 4)x(0, 0, 0, 0) (constant=True); AIC=426.380, BIC=441.041, Time=0.228 seconds
Fit ARIMA: (2, 0, 0)x(0, 0, 0, 0) (constant=True); AIC=421.586, BIC=429.963, Time=0.144 seconds
Fit ARIMA: (2, 0, 1)x(0, 0, 0, 0) (constant=True); AIC=423.493, BIC=433.965, Time=0.226 seconds
Fit ARIMA: (2, 0, 2)x(0, 0, 0, 0) (constant=True); AIC=422.342, BIC=434.908, Time=0.469 seconds
Fit ARIMA: (2, 0, 3)x(0, 0, 0, 0) (constant=True); AIC=422.484, BIC=437.144, Time=0.517 seconds
Fit ARIMA: (3, 0, 0)x(0, 0, 0, 0) (constant=True); AIC=423.349, BIC=433.821, Time=0.232 seconds
Fit ARIMA: (3, 0, 1)x(0, 0, 0, 0) (constant=True); AIC=424.792, BIC=437.358, Time=0.438 seconds
Fit ARIMA: (3, 0, 2)x(0, 0, 0, 0) (constant=True); AIC=422.814, BIC=437.475, Time=0.518 seconds
Fit ARIMA: (4, 0, 0)x(0, 0, 0, 0) (constant=True); AIC=424.320, BIC=436.886, Time=0.356 seconds
Fit ARIMA: (4, 0, 1)x(0, 0, 0, 0) (constant=True); AIC=426.278, BIC=440.938, Time=0.347 seconds
Fit ARIMA: (5, 0, 0)x(0, 0, 0, 0) (constant=True); AIC=426.249, BIC=440.909, Time=0.574 seconds
Total fit time: 5.839 seconds
SARIMAX Results
Dep. Variable: y No. Observations: 60
Model: SARIMAX Log Likelihood -207.764
Date: Wed, 19 Feb 2020 AIC 419.527
Time: 12:06:46 BIC 423.716
Sample: 0 HQIC 421.166
- 60
Covariance Type: opg
coef std err z P>|z| [0.025 0.975]
intercept 39.9333 0.997 40.068 0.000 37.980 41.887
sigma2 59.5956 13.897 4.288 0.000 32.358 86.833
Ljung-Box(Q):51.46 Jarque-Bera (JB): 1.50
Prob(Q): 0.11 Prob(JB): 0.47
Heteroskedasticity (H): 0.80 Skew: -0.01
Prob(H) (two-sided): 0.63 Kurtosis: 2.23
AIC 得分最低的结果是 SARIMAX(0,0,0)。
d=0,不需要差分是可以理解的。 但是,p,q 也是 0,这在技术上意味着什么?可以将 p 和 q 设为 0 吗? 如果有什么不清楚的地方请告诉我。
【问题讨论】:
-
否决了这个任务。哦,好吧。但是,如果您对此有任何想法,请提供答案。谢谢。
-
我没有否决您的帖子,但您的问题是我们不知道
df1的样子,因为您不包含可重现的样本数据。试着设身处地为我们着想:您看到的只有一行代码,但没有任何数据,问题是“为什么 XYZ 会发生在我拥有的数据上?”你会怎么回答?要解决您的问题,请编辑您的问题以包含可重现的示例数据,以便重新运行您的代码重现您看到的准确输出。 -
@MauritsEvers 我已编辑问题并尝试添加详细信息。
标签: python python-3.x time-series arima