[英]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.