- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试使用 python statsmodels 进行样本外预测。我不想只预测训练集末尾的下一个 x 个值,但我想一次预测一个值并在预测时考虑实际值。换句话说,我想做滚动 1 期预测,但我不想每次都重新校准模型。我能找到的最接近的帖子在这里:
ARMA out-of-sample prediction with statsmodels
但是,这使用的是 ARMA 而不是 ARIMA。我怎样才能用 ARIMA 实现这个或者有更好的方法吗?我知道我实际上可以提取系数并自己应用一个函数,但在我的代码中,我使用的 ARIMA 模型随着时间的推移是动态的,因此使用的系数和滞后值的数量不是恒定的。任何帮助将不胜感激。
最佳答案
如果我是对的,我遇到了非常相似的问题:基本上我想将我的时间序列分成训练集和测试集,训练模型,然后根据其过去的历史任意预测测试集的任何元素。虽然我没有设法使用 ARIMA statsmodels 类来实现它。
这就是我使用 statsmodels 的方法:我对序列应用一阶差分以实现平稳性,并计算了一个 arma 模型:
model = sm.tsa.ARMA(fitting_data, order=(p, q), dates=fitting_dates).fit()
我已将 arma 模型转换为纯 ar 模型:
ar_params = model.arparams
ma_params = model.maparams
ar_coefficients = arma2ar(ar_params, ma_params, nobs=final_ar_coeff)
nobs 参数会影响您将获得的自回归系数的数量。我尝试了几个值,增加它直到观察到预测没有显着变化。一旦你得到你的预测 w.r.t.差异系列,您想将它们带回原始系列。我实现了一种方法,给定一个或一系列预测以及预测之前的最后一个已知元素,计算原始系列中的预测:
def differenced_series_to_original(values, starting_value):
original_series = [starting_value]
[original_series.append(original_series[-1]+i) for i in values]
return original_series[1:]
显然 values 是您的预测列表,starting_value 最后一个已知元素。希望对您的问题有所帮助。
关于Python statsmodels ARIMA 预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33661762/
是否有 statsmodels API 可以从 statsmodels 时间序列模型中检索预测区间? 目前,我正在使用以下方法手动计算预测区间: 这是我的代码。首先,获取一些示例数据... ! pyt
我有:statsmodels 0.5.0(正式名称为 scikits.statsmodels) Pandas 0.12.0。(全部从源安装) 我收到这个错误: File "/home/userna
所有内容的格式都与 Statsmodels 网站上的一样,但是 Spyder 以某种方式返回了这个: TypeError: ztest_ind() got multiple values for ar
所有内容的格式都与 Statsmodels 网站上的一样,但是 Spyder 以某种方式返回了这个: TypeError: ztest_ind() got multiple values for ar
谁能给我解释一下 statsmodel.formula.api 中的 ols 和 statsmodel.api 中的 ols 之间的区别? 使用 ISLR 文本中的广告数据,我使用两者运行了一个 ol
我用python处理一个线性回归模型,json数据如下: {"Y":[1,2,3,4,5],"X":[[1,43,23],[2,3,43],[3,23,334],[4,43,23],[232,234,
我正在使用 Python 中的 statsmodels MixedLM 包估计一个混合线性模型。拟合模型后,我现在想进行预测,但很难理解“预测”方法。 statsmodels 文档 (http://w
使用状态模型的逻辑回归模型: log_reg = st.logit(formula = 'label ~ pregnant + glucose + bp + insulin + bmi + pedig
我有一个包含 3 列的数据框 ['X', 'Y', 'Z'] 我想研究一下 X 和 Y影响Z的分布。为此,我想使用 nadaraya watson 的非参数回归器。在 statsmodels 中有一个
我正在尝试使用 statsmodel 中的 statsmodels.discrete.conditional_models.ConditionalLogit 类。 在jupyter笔记本中导入模块时,
我安装 statsmodels: apt-get install python python-dev python-setuptools python-numpy python-scipy curl
import statsmodels.formula.api as sm import numpy as np import pandas url = "http://vincentarelbundo
我正在尝试在 x-y 数据的简单测试集上使用 statsmodels 中的稳健线性模型。然而,作为 model.params 的返回值,我只得到一个值。如何获得拟合的斜率和截距?最小示例(其中我试图从
我正在使用库statsmodels.tsa.stattools.grangercausalitytests来测试两个时间序列之间的相似性。我知道列表 a 和 b 都是合法列表,没有任何 None 或
以下代码使用 statsmodels 拟合了一个过度简化的广义线性模型 model = smf.glm('Y ~ 1', family=sm.families.NegativeBinomial(),
在Python库Statsmodels中,可以用print(results.summary())打印出回归结果,如何打印出超过的摘要一张表中的一个回归,以便更好地比较? 线性回归,代码取自 stats
我有一个 pandas DataFrame,其行包含多种类型的数据。我想使用 statsmodels.formula.api 根据这些数据拟合一个模型,然后做出一些预测。对于我的应用程序,我想一次预测
我正在尝试使用 statsmodels 中的 logit 模块对包含 bool 值(“默认”)目标变量和两个特征(“fico_interp”、“home_ownership_int”)的数据集执行逻辑
这个问题类似于confidence and prediction intervals with StatsModels但有一个额外的细微差别: 我的数据是异方差的,我想使用 statsmodels 提
我正在使用 Pandas 的混合物和 StatsModels绘制时间序列分解图。我关注了this answer但是当我调用 plot() 时,它似乎在绘制一个副本。 我的 DataFrame 看起来像
我是一名优秀的程序员,十分优秀!