gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 07:20:24 36 4
gpt4 key购买 nike

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

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

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

在 stackoverflow 上的类似问题中,问题通常似乎是原始时间序列不是静止的。在这个特定的问题(Running Arima in python after using ADFfuller giving me error)中,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

关于python - 将 ARMA() 模型拟合到假定平稳的时间序列时的平稳性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57728878/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com