Definir Lags Específicos¶
Exemplo criado por Wilson Rocha Lacerda Junior
Procurando mais detalhes sobre modelos NARMAX? Para informações completas sobre modelos, métodos e uma ampla variedade de exemplos e benchmarks implementados no SysIdentPy, confira nosso livro: Nonlinear System Identification and Forecasting: Theory and Practice With SysIdentPy
Este livro oferece orientação aprofundada para apoiar seu trabalho com o SysIdentPy.
Diferentes formas de definir o lag máximo para entrada e saída
from sysidentpy.model_structure_selection import FROLS
from sysidentpy.basis_function import Polynomial
Definindo lags usando um intervalo de valores¶
Se você passar valores inteiros para ylag e xlag, os lags são definidos como um intervalo de 1 até ylag e de 1 até xlag.
Por exemplo: se ylag=4, então os regressores candidatos são \(y_{k-1}, y_{k-2}, y_{k-3}, y_{k-4}\)
basis_function = Polynomial(degree=1)
model = FROLS(
order_selection=True,
ylag=4,
xlag=4,
info_criteria="aic",
basis_function=basis_function,
)
Definindo lags específicos usando listas¶
Se você passar ylag e xlag como uma lista, apenas os lags relacionados aos valores na lista serão criados. \(y_{k-1}, y_{k-4}\), \(x_{k-1}, x_{k-4}\)
model = FROLS(
order_selection=True,
ylag=[1, 4],
xlag=[1, 4],
info_criteria="aic",
basis_function=basis_function,
)
Definindo lags para modelos Multiple Input Single Output (MISO)¶
O exemplo a seguir mostra como definir lags específicos para cada entrada. Note que precisamos usar uma lista aninhada neste caso.
# O exemplo considera um modelo com 2 entradas, mas você pode usar o mesmo para qualquer quantidade de entradas.
model = FROLS(
order_selection=True,
ylag=[1, 4],
xlag=[[1, 2, 3, 4], [1, 7]],
info_criteria="aic",
basis_function=basis_function,
)
# Os lags definidos são:
# x1(k-1), x1(k-2), x(k-3), x(k-4)
# x2(k-1), x1(k-7)