Python 的 ARIMA 季节性预测:在路径上找不到 x12a 和 x13as
ARIMA seasonal prediction with Python: x12a and x13as not found on path
我正在使用 Statsmodels 来实现时间序列的季节性 ARIMA 预测。这是我的代码:
import statsmodels.api as sm
from statsmodels.tsa.x13 import x13_arima_select_order, _find_x12
import pandas
import scipy
import numpy
import imp
data_source = imp.load_source('data_source', '/mypath/')
def main():
data=data_source.getdata()
res = x13_arima_select_order(data)
print (res.order, res.sorder)
main()
当 运行 代码时,我得到这个异常:
X13NotFoundError("x12a and x13as not found on path. Give the "
statsmodels.tools.sm_exceptions.X13NotFoundError: 在路径上找不到 x12a 和 x13as。给出路径,放在PATH中,或者设置X12PATH或X13PATH环境变量。
从 source code for statsmodels.tsa.x13 来看,您需要在系统上安装 x12a
或 x13as
二进制应用程序。
除此之外,必须在用户的 PATH
环境变量中设置这些二进制文件所在文件夹的路径。
您没有提及您使用的是什么操作系统 运行,因此这里有一个页面,其中包含 link 到 OS 左侧的特定下载页面,可帮助您安装所需的软件。
https://www.census.gov/srd/www/x13as/
这是 link 我引用的来源,用于找出您的环境中缺少的内容:
http://statsmodels.sourceforge.net/devel/_modules/statsmodels/tsa/x13.html
def x13_arima_analysis(endog, maxorder=(2, 1), maxdiff=(2, 1), diff=None,
exog=None, log=None, outlier=True, trading=False,
forecast_years=None, retspec=False,
speconly=False, start=None, freq=None,
print_stdout=False, x12path=None, prefer_x13=True):
...
x12path = _check_x12(x12path)
if not isinstance(endog, (pd.DataFrame, pd.Series)):
if start is None or freq is None:
raise ValueError("start and freq cannot be none if endog is not "
"a pandas object")
endog = pd.Series(endog, index=pd.DatetimeIndex(start=start,
periods=len(endog),
freq=freq))
...
def _check_x12(x12path=None):
x12path = _find_x12(x12path)
if not x12path:
raise X13NotFoundError("x12a and x13as not found on path. Give the "
"path, put them on PATH, or set the "
"X12PATH or X13PATH environmental variable.")
return x12path
...
def _find_x12(x12path=None, prefer_x13=True):
"""
If x12path is not given, then either x13as[.exe] or x12a[.exe] must
be found on the PATH. Otherwise, the environmental variable X12PATH or
X13PATH must be defined. If prefer_x13 is True, only X13PATH is searched
for. If it is false, only X12PATH is searched for.
"""
我正在使用 Statsmodels 来实现时间序列的季节性 ARIMA 预测。这是我的代码:
import statsmodels.api as sm
from statsmodels.tsa.x13 import x13_arima_select_order, _find_x12
import pandas
import scipy
import numpy
import imp
data_source = imp.load_source('data_source', '/mypath/')
def main():
data=data_source.getdata()
res = x13_arima_select_order(data)
print (res.order, res.sorder)
main()
当 运行 代码时,我得到这个异常:
X13NotFoundError("x12a and x13as not found on path. Give the " statsmodels.tools.sm_exceptions.X13NotFoundError: 在路径上找不到 x12a 和 x13as。给出路径,放在PATH中,或者设置X12PATH或X13PATH环境变量。
从 source code for statsmodels.tsa.x13 来看,您需要在系统上安装 x12a
或 x13as
二进制应用程序。
除此之外,必须在用户的 PATH
环境变量中设置这些二进制文件所在文件夹的路径。
您没有提及您使用的是什么操作系统 运行,因此这里有一个页面,其中包含 link 到 OS 左侧的特定下载页面,可帮助您安装所需的软件。
https://www.census.gov/srd/www/x13as/
这是 link 我引用的来源,用于找出您的环境中缺少的内容: http://statsmodels.sourceforge.net/devel/_modules/statsmodels/tsa/x13.html
def x13_arima_analysis(endog, maxorder=(2, 1), maxdiff=(2, 1), diff=None,
exog=None, log=None, outlier=True, trading=False,
forecast_years=None, retspec=False,
speconly=False, start=None, freq=None,
print_stdout=False, x12path=None, prefer_x13=True):
...
x12path = _check_x12(x12path)
if not isinstance(endog, (pd.DataFrame, pd.Series)):
if start is None or freq is None:
raise ValueError("start and freq cannot be none if endog is not "
"a pandas object")
endog = pd.Series(endog, index=pd.DatetimeIndex(start=start,
periods=len(endog),
freq=freq))
...
def _check_x12(x12path=None):
x12path = _find_x12(x12path)
if not x12path:
raise X13NotFoundError("x12a and x13as not found on path. Give the "
"path, put them on PATH, or set the "
"X12PATH or X13PATH environmental variable.")
return x12path
...
def _find_x12(x12path=None, prefer_x13=True):
"""
If x12path is not given, then either x13as[.exe] or x12a[.exe] must
be found on the PATH. Otherwise, the environmental variable X12PATH or
X13PATH must be defined. If prefer_x13 is True, only X13PATH is searched
for. If it is false, only X12PATH is searched for.
"""