【发布时间】:2022-09-23 00:45:44
【问题描述】:
提前感谢大家的时间!
我正在尝试为 statsmodel 中的状态空间 mlemodels 中的面板运行 TVP-VAR。尝试拟合模型时出现错误。我的理解是,主要是关于启动参数我该怎么做?显示的类型错误如下,错误和 Traceback 都以粗体突出显示:
preliminary = tvppanelvarmodel.fit(maxiter=1000)
Traceback (most recent call last):
File \"/opt/anaconda3/envs/spyder-env/lib/python3.10/site-packages/numpy/core/fromnumeric.py\", line 57, in _wrapfunc
return bound(*args, **kwds)
File \"/opt/anaconda3/envs/spyder-env/lib/python3.10/site-packages/numpy/core/_methods.py\", line 159, in _clip
return _clip_dep_invoke_with_casting(
File \"/opt/anaconda3/envs/spyder-env/lib/python3.10/site-packages/numpy/core/_methods.py\", line 113, in _clip_dep_invoke_with_casting
return ufunc(*args, out=out, **kwargs)
**TypeError: \'>=\' not supported between instances of \'method\' and \'float\'**
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File \"/var/folders/m6/68zljfsj2t9_dzgpwwslj29r0000gp/T/ipykernel_11675/3038987883.py\", line 1, in <module>
preliminary = tvppanelvarmodel.fit(maxiter=1000)
File \"/opt/anaconda3/envs/spyder-env/lib/python3.10/site-packages/statsmodels/tsa/statespace/mlemodel.py\", line 704, in fit
mlefit = super(MLEModel, self).fit(start_params, method=method,
File \"/opt/anaconda3/envs/spyder-env/lib/python3.10/site-packages/statsmodels/base/model.py\", line 563, in fit
xopt, retvals, optim_settings = optimizer._fit(f, score, start_params,
File \"/opt/anaconda3/envs/spyder-env/lib/python3.10/site-packages/statsmodels/base/optimizer.py\", line 241, in _fit
xopt, retvals = func(objective, gradient, start_params, fargs, kwargs,
File \"/opt/anaconda3/envs/spyder-env/lib/python3.10/site-packages/statsmodels/base/optimizer.py\", line 651, in _fit_lbfgs
retvals = optimize.fmin_l_bfgs_b(func, start_params, maxiter=maxiter,
File \"/opt/anaconda3/envs/spyder-env/lib/python3.10/site-packages/scipy/optimize/lbfgsb.py\", line 197, in fmin_l_bfgs_b
res = _minimize_lbfgsb(fun, x0, args=args, jac=jac, bounds=bounds,
File \"/opt/anaconda3/envs/spyder-env/lib/python3.10/site-packages/scipy/optimize/lbfgsb.py\", line 298, in _minimize_lbfgsb
x0 = np.clip(x0, new_bounds[0], new_bounds[1])
File \"<__array_function__ internals>\", line 180, in clip
File \"/opt/anaconda3/envs/spyder-env/lib/python3.10/site-packages/numpy/core/fromnumeric.py\", line 2152, in clip
return _wrapfunc(a, \'clip\', a_min, a_max, out=out, **kwargs)
File \"/opt/anaconda3/envs/spyder-env/lib/python3.10/site-packages/numpy/core/fromnumeric.py\", line 66, in _wrapfunc
return _wrapit(obj, method, *args, **kwds)
File \"/opt/anaconda3/envs/spyder-env/lib/python3.10/site-packages/numpy/core/fromnumeric.py\", line 43, in _wrapit
result = getattr(asarray(obj), method)(*args, **kwds)
File \"/opt/anaconda3/envs/spyder-env/lib/python3.10/site-packages/numpy/core/_methods.py\", line 159, in _clip
return _clip_dep_invoke_with_casting(
File \"/opt/anaconda3/envs/spyder-env/lib/python3.10/site-packages/numpy/core/_methods.py\", line 113, in _clip_dep_invoke_with_casting
return ufunc(*args, out=out, **kwargs)
TypeError: \'>=\' not supported between instances of \'method\' and \'float\'
我的起始参数定义如下,虽然我对我的初始参数感到无法梳理。我没有在定义中添加退货。在 res 模块中,我使用 method=\'nm\',其中 \'nm\' 代表 Nelder-Mead`solver optimizer
def start_params(self):
start_params = [.1, .1, 100, 100, 100]
-
当您打算调用它时,您忘记在代码中的某处将
()放在方法名称之后。 -
如果没有
return语句,您的start_params()方法完全没有意义。将列表分配给与该方法相同的名称只会造成对该名称所指内容的混淆。
标签: python scipy time-series statsmodels state-space