wiki:AdditiveFilter
close Warning: Can't synchronize with repository "(default)" (/var/svn/mms does not appear to be a Subversion repository.). Look in the Trac log for more information.

Version 5 (modified by Daniel Eduardo Castro Morell, 13 years ago) (diff)

--

Modelos aditivos, multiplicativos y aditivo-multiplicativo

De forma general, los modelos puros (aditivos o multiplicativos) y los modelos mixtos (aditivo-multiplicativo) se representan:

Output=Noise+Filter

Donde el filtro es la suma de términos explicativos, y si el ruido tiene presenta una estructura ARIMA llamamos residuos al ruido desestructurado:

\begin{equation*}
\begin{split}
Filter&=\sum_{i}ExpTerm_{i}\\
Noise&=\frac{MA}{ARI}:Residuals
\end{split}
\end{equation*}

Modelos aditivos

En el caso de los modelos aditivos el output se corresponde con las observaciones.

Output=Observations=Noise+Filter

Modelos multiplicativos

En el caso de los modelos multiplicativos el output se corresponde con la transformación de las observaciones, típicamente la transformación logarítmica.

\begin{equation*}
\begin{split}
Output=Log(Observations)=Noise+Filter\\
Observations=e^{Noise+Filter}=e^{Noise}\times\prod_i e^{ExpTerm_i}
\end{split}
\end{equation*}

Modelos aditivo-multiplicativo

En los modelos aditivo-multiplicativo algunos términos explicativos que tienen efectos aditivos y otros tienen efectos multiplicativos sobre las observaciones. Los términos aditivos con efecto multiplicativo forman el filtro, y los que tienen efectos aditivos conforman el filtro observacional (ObsFilter). El modelo se plantea:

\begin{equation*}
\begin{split}
Output&=Log(Observations-ObsFilter)=Noise+Filter\\
Filter&=\sum_{Multiplicative\ Terms}ExpTerm_i\\
ObsFilter&=\sum_{Additive\ Terms}ExpTerm_i
\end{split}
\end{equation*}

Una forma de resolver los modelos mixtos, se basa en la aproximación:

Log(1+x)\approx x, \ \mid x \mid < 1

De donde se deriva a:

\begin{equation*}
\begin{split}
Log(Observations-ObsFilter)&=Log(Observations\times(1-\frac{ObsFilter}{Observations}))\\
&=Log(Observations)+Log(1-\frac{ObsFilter}{Observations})\\
&\approx Log(Observations) - \frac{ObsFilter}{Observations},\ \mid ObsFilter \mid  \ll \mid Observations \mid 
\end{split}
\end{equation*}

Tomando el error como:

err=\frac{Log(1-\frac{ObsFilter}{Observations})+\frac{ObsFilter}{Observations}}{Log(1-\frac{ObsFilter}{Observations}}

Entonces, por ejemplo, para:

\mid\frac{ObsFilter}{Observations}\mid=0.0983

se comete un error del 5%.

Actualmente, se muestra un mensaje de advertencia cuando se encuentra un error superior al 2%, se informa por cada submodelo cual es el mayor error cometido y cuando éste supera el 5% no se considera válida la estimación.

Generalización

Generalizando, se introduce el concepto: Observaciones Efectivas (ObservationsEff), donde:

ObservationsEff=Observations-ObsFilter

Y para los modelos puros (Aditivos o Multiplicativos), se verfica:

\begin{equation*}
\begin{split}
ObsFilter&=0\\
ObservationsEff&=Observations\\
\end{split}
\end{equation*}

Uso en MMS

En MMS el manejo de términos con efectos aditivos o multiplicativos se reduce a su declaración y luego recuperar los resultados de las estimaciones o previsiones.

Declaración de términos explicativos aditivos o multiplicativos

Al crear un término explicativo en MMS se puede declarar si tiene un efecto aditivo o no (y por lo tanto tendrá un efecto multiplicativo) sobre las observaciones.

Para crear un término explicativo con efecto aditivo, especifique: Real _.isAdditive = 1

Para crear un término explicativo con efecto multiplicativo, o bien omita este campo (pues tiene su valor por omisión es 0) o especifique: Real _.isAdditive = 0

Recuperación de los resultados de la estimación

A la clase MMS::@Submodel.Results se le adicionan los métodos para obtener el filtro observacional GetObsFilter(Real void), para obtener las observaciones efectivas GetObservationsEff(Real void), y para calcular la descomposición de las observaciones efectivas GetObservationsEff.Decomposition(Set decomposition).

Recuperación de los resultados de la previsión

A la clase MMS::@Submodel.Forecast se le adicionan los métodos para obtener la previsión del filtro observacional GetObsFilter.Forecast(Real void) y para obtener las observaciones efectivas GetObservationsEff(Real void).

Un ejemplo simple del uso de modelos aditivo-multiplicativo en MMS/Samples/Basics/F.prj

Attachments (1)

Download all attachments as: .zip