Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(python)pmdarima.auto_-arima(pyramid.auto_-arima)不会自动使用d和d参数_Python_Time Series_Pyramid Arima - Fatal编程技术网

(python)pmdarima.auto_-arima(pyramid.auto_-arima)不会自动使用d和d参数

(python)pmdarima.auto_-arima(pyramid.auto_-arima)不会自动使用d和d参数,python,time-series,pyramid-arima,Python,Time Series,Pyramid Arima,我手工制作了20个模型,发现每个模型都应该使用d=1或d=1,但auto_arima从不使用差异argseven,一个模型根本没有d或d,所有的试验都像1,0,1 x 0,0,1,52。我通过设置trace=True来检查它 我希望auto_arima执行参数网格搜索pdq=0~3、0~1、0~3和PDQs=0~3、0~1、0~3、52 我将参数设置如下: start_p=0, start_q=0, max_p=3, max_d=1, max_q=3,

我手工制作了20个模型,发现每个模型都应该使用d=1或d=1,但auto_arima从不使用差异argseven,一个模型根本没有d或d,所有的试验都像1,0,1 x 0,0,1,52。我通过设置trace=True来检查它

我希望auto_arima执行参数网格搜索pdq=0~3、0~1、0~3和PDQs=0~3、0~1、0~3、52

我将参数设置如下:

    start_p=0,
    start_q=0,
    max_p=3,
    max_d=1,
    max_q=3,
    start_P=0,
    D=None,
    start_Q=0,
    max_P=2,
    max_D=1,
    max_Q=2,
    max_order=10,
    m=52,
    seasonal=True,
    stationary=False,
    information_criterion='aic',
    alpha=0.05,
    test='kpss',
    seasonal_test='ocsb',
    stepwise=True,
    n_jobs=-1,
    start_params=None,
    trend=None,
    method=None,
    transparams=True,
    maxiter=None,
    n_fits=100,
    with_intercept=True,

如何让auto_arima执行网格搜索我想做的事情?

关于pmdarima及其auto_arima的实现,您应该了解一些事情。我现在正在玩这个游戏,所以我会尝试回答你的问题

网格搜索:auto_arima的实现使用逐步算法来识别最佳参数。它是逐步在您的参数上面,默认设置为真。报告中写道:

逐步算法比拟合所有超参数组合要快得多,而且不太可能过度拟合模型

如果要进行网格搜索,必须将此参数设置为False

差异参数:当您尝试此选项stepwise=False时,它应该尝试除两个参数-d和d之外的所有组合。这是因为它们是估计的,不包括在参数搜索中。在问题中列出的参数中,您有两个测试-测试和季节性测试。这些方法分别用于选择d和d的值

我建议您阅读有关的文档。您可以更好地了解它们如何处理差分参数估计

您也可以尝试直接测试这些方法,只需更改test的值:

从pmdarima.arima.utils导入NDIFF ndiffsy,test='kpss'
我不知道如何在网格搜索中测试d参数,我认为Python和R实现都做相同或相似的估计。因此,您可以自己完成这项工作,并使用手动设置的差分参数运行auto_arima,其余的则留在网格搜索中。否则,它将自动选择d和d的值。问题是-当这些自动测试显示不同时,您如何知道每个模型应该使用d=1和d=1?

谢谢您的回答。我感到困惑的是,基于AIC,模型应该使用D=1,D=1。我通过statsmodels手动制作了一个模型,并获得了良好的AIC分数,但auto-arima不会使用该参数,并返回最佳参数,例如D=0,q=0,即使AIC Difformer 800与later 2100的比较大。因此,我很好奇为什么自动arima不会使用该参数。我认为原因是,自动arima首先在kpss测试选择的案例中关注差分参数d估计,然后它尝试自动拟合其余的p和q,通过选择的信息标准选择它,在您的案例中是AIC的。如果你真的想要全网格搜索,你可能必须自己做。要么按照我在答案中所写的去做,要么完全按照解释去写