繁体   English   中英

将 ARMA() 模型拟合到假定的平稳时间序列时的平稳性问题

[英]Stationarity issue when fitting an ARMA() model to a supposedly stationary time series

当尝试将 ARMA(1,2) 与 statsmodels 拟合到股票数据时间序列的对数回报时,出现错误“计算出的初始 AR 系数不是平稳的”

我尝试分析的时间序列本身我认为是平稳的,并且与白噪声非常相似。 当我应用增强的 Dickey Fuller 检验时,p 值约为 e-14。 我以为我总是可以将 ARMA 模型拟合到固定时间序列中。 事实上,我可以毫无问题地安装一些模型,如 ARMA(2,1)、ARMA(1,1)。 但是,对于 ARMA(p,q) 的某些组合,我收到一条警告,即 Hessian 矩阵无法反转,并且某些输出给出了“nan”。 对于 ARMA(1,2) 的具体模型,估计完全失败。

为什么有些模型不能拟合数据? 任何帮助深表感谢! 我也很高兴提供更多信息/情节/任何需要的东西。

在关于 stackoverflow 的类似问题中,问题通常似乎是原始时间序列不是静止的。 在这个特定问题中( 使用 ADFfuller 后在 python 中运行 Arima 给我错误) OP 似乎和我有同样的问题,但不幸的是没有得到答案。

可重现的例子:

import yfinance as yf
import numpy as np
import statsmodels.tsa.api as smt

def get_daily_historic_data_yahoo(ticker,
                                  start_date='2012-1-1',
                                  end_date='2017-12-31'):
    daily_data = yf.download(ticker, start_date, end_date)
    return daily_data

stocks_df = get_daily_historic_data_yahoo('V')

log_returns = np.log(stocks_df['Adj Close'] / stocks_df['Adj Close'].shift(1))[1:]

model = smt.ARMA(log_returns, (1,2))
model_fit = model.fit()
print(model_fit.summary())

我的猜测是可能需要 Hessian 矩阵来计算标准误差。 所以你可以尝试引导 se 来绕过这个计算错误。

不幸的是,我不使用 python,所以我无法测试您的代码。

在任何情况下,检查您的 phi 和 psi 估计值是否在 |.| < 1 满足平稳可逆条件。 请参阅第 7-8 页。 https://math.unice.fr/~frapetti/CorsoP/chapitre_23_IMEA_1.pdf

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM