EXTRACCIÓN DE SEÑALES EN MODELOS ARIMA 1- Densidad espectral (espectro) y periodograma Los primeros estudios de las series temporales se realizaron en el dominio del tiempo y se utilizaron diversos métodos ingeniosos de difícil justificación científica. Arthur Schuster introdujo un método denominado periodograma, el cual estudia las series temporales en el dominio de la frecuencia. Desgraciadamente, el periodograma, aunque es un estimador asintóticamente insesgado del espectro, es inconsistente, y por esta causa, es poco fiable. La posibilidad de estudiar el análisis de una serie temporal, en el dominio del tiempo o en el de la frecuencia, se justifica científicamente por la equivalencia entre la función de covarianza (definida en el dominio del tiempo) y el espectro o función de densidad espectral (definida en el dominio de la frecuencia), y esta relación nos la proporciona las transformadas de Fourier por ser una de ellas la transformada de la otra función. Consideremos {𝑋𝑡 }𝑡∈𝑇 un proceso estacionario con función de autocovarianzas satisfaciendo ∑|ℎ|<∞|𝛾ℎ | < ∞ Definición: Se define la densidad espectral de {𝑋𝑡 }𝑡∈𝑇 o espectro como la función 𝑓(𝜔) = 1 ∑ 𝛾ℎ 𝑒 −𝑖𝜔ℎ , 𝑐𝑜𝑛 − ∞ < 𝜔 < ∞ 𝜋 |ℎ|<∞ Donde 𝑒 −𝑖𝜔ℎ = 𝑐𝑜𝑠𝜔 − 𝑖𝑠𝑒𝑛𝜔 Se observa, que dado la condición ∑|ℎ|<∞|𝛾ℎ | < ∞, implica que la serie anterior converge 2 absolutamente, ya que |𝑒 −𝑖𝜔ℎ | = cos2 𝜔 + 𝑠𝑒𝑛2 𝜔 = 1 PROPIEDADES: 1234- Es una función real. Es una función periódica con periodo 2𝜋 y par 𝑓(𝜔) ≥ 0 , ∀𝜔 ∈ [0, 𝜋] Está relacionada con la función de autocorrelación. EJEMPLOS: A) {𝑍𝑡 }𝑡∈𝑇 en un ruido blanco con varianza 𝜎 2 . Entonces 𝑓(𝜔) = 𝜎2 𝜋 , ∀𝜔. Esto quiere decir que todas las frecuencias son tenidas con la misma importancia en la variabilidad de la serie. B) {𝑋𝑡 }𝑡∈𝑇 es un proceso MA(1): 𝑋𝑡 = 𝑍𝑡 − 𝜃𝑍𝑡−1 , siendo {𝑍𝑡 }𝑡∈𝑇 un proceso de ruido blanco con varianza 𝜎 2 y |𝜃| < 1. 𝜎 2 (1 − 2𝜃𝑐𝑜𝑠𝜔 + 𝜃 2 ) 𝑓(𝜔) = 𝜋 La forma del espectro depende del signo de θ. Cuando θ<0 la densidad espectral está concentrada en frecuencias bajas y cuando θ>0 la densidad espectral se concentra en frecuencias altas. Θ=0.6 Θ=-0.6 C) {𝑋𝑡 }𝑡∈𝑇 es un proceso AR(1): 𝑋𝑡 − 𝜙𝑋𝑡−1 = 𝑍𝑡 , siendo {𝑍𝑡 }𝑡∈𝑇 un proceso de ruido blanco con varianza 𝜎 2 y |𝜙| < 1. 𝜎2 𝑓(𝜔) = 𝜋(1 − 2𝜙𝑐𝑜𝑠𝜔 + 𝜙 2 ) Igual, que en un proceso MA, la densidad del espectro depende del signo de 𝜙, cuando 𝜙 es positivo la densidad se concentra en las frecuencias más bajas y al contrario, cuando 𝜙 es negativo se concentra en las frecuencias más altas en valor absoluto 𝝓 = 𝟎. 𝟔 𝝓 = −𝟎. 𝟔 INTERPRETACIÓN DE LA DENSIDAD ESPECTRAL: Para cualquier 𝜔0 ∈ [0, 𝜋], 𝜔0 ∫ 𝑓(𝜔)𝑑𝜔 0 Representa la parte de varianza de {𝑋𝑡 }𝑡∈𝑇 que se asocia a frecuencias 𝜔 que son menores o iguales que 𝜔0 . Definición: Se define el periodograma basado en la muestra 𝑋1 , 𝑋2 , … , 𝑋𝑛 como la función: 𝐼(𝜔) = 1 ∑ 𝛾̂ℎ 𝑒 −𝑖𝜔ℎ , 𝜔 ∈ [0, 𝜋] 𝜋 |ℎ|<𝑛 El periodograma se puede expresar como: 𝑛−1 1 𝐼(𝜔) = (𝛾̂0 + 2 ∑ 𝛾̂ℎ cos(𝜔ℎ)) , 𝜔 ∈ [0, 𝜋] 𝜋 ℎ=1 Se cumple que: 𝜋 ∫ 𝐼(𝜔)𝑑𝜔 = 𝛾̂0 0 Además, la relación desde el dominio de la frecuencia (periodograma) y el dominio del tiempo (autocovarianzas) es la que sigue: 𝜋 ∫ 𝐼(𝜔)𝑒 −𝑖𝜔ℎ 𝑑𝜔 = 𝛾̂ℎ 0 La representación gráfica del espectro estimado nos proporciona un primer conocimiento de la estructura del modelo y nos sugiere modelos más apropiados: si existieran realmente periodos en la serie temporal, en las frecuencias correspondientes a dichos periodos (periodo=1/frecuencia) presentaría la gráfica picos concentraciones de masas espectrales. muy pronunciados con grandes Los picos pronunciados suelen presentarse en las componentes estacionales: anuales, semestrales, trimestrales, mensuales, etc., y en general, estas series no presentan ciclos perfectos, es decir con repetición a intervalos de tiempo exactamente iguales y amplitudes iguales. El espectro de series con tendencias o posibles ciclos de gran duración es típico que contengan gran parte de la masa espectral en las frecuencias muy bajas. 2- Filtros lineales y dominio de la frecuencia Un filtro lineal tiene la estructura: 𝜑(𝐵) = ∑ 𝜑𝑗 𝐵 𝑗 𝑗 Donde B es el operador retardo. Es decir: 𝐵𝑍𝑡 = 𝑍𝑡−1 Por lo tanto, todos los procesos ARIMA(p, d, q), constituyen la aplicación de un filtro 𝜑(𝐵) a un ruido blanco: 𝑍𝑡 = 𝜑(𝐵)𝐴𝑡 Para trabajar en el dominio de las frecuencias, se tiene la transformación: Ψ(𝜔) = ∑ 𝜑𝑗 𝑒 −𝑖𝜔𝑗 𝑗 Esta función resume las características del filtro. Se llama función de respuesta a la frecuencia. Se puede descomponer la función de respuesta como sigue: Ψ(𝜔) = |Ψ(𝜔)|𝑒 𝑖𝜃(𝜔) Donde |Ψ(𝜔)| = √Ψ(𝜔)Ψ(𝜔 −1 ), representa el módulo de Ψ(𝜔) (es la llamada función de Ψim (𝜔) ganancia), y el argumento de éste es 𝜃(𝜔) = 𝐴𝑟𝑐𝑇𝑎𝑛𝑔( Ψre (𝜔) ) (es la llamada función de base). Si tenemos 𝑍𝑡 = 𝜑(𝐵)𝐴𝑡 , la relación entre los espectros de 𝑍𝑡 y el ruido blanco 𝐴𝑡 (espectro constante) está determinado por el cuadrado de la función de ganancia: 𝑆𝑧 (𝜔) = |Ψ(𝜔)|2 𝑆𝑎 (𝜔) = |Ψ(𝜔)|2 𝜎𝑎2 = Ψ(𝜔)Ψ(𝜔−1 )𝜎𝑎2 |Ψ(𝜔)|2 es conocida como función de transferencia. ¿CÓMO CALCULAMOS EL ESPECTRO A PARTIR DEL FILTRO LINEAL? Tenemos el filtro 𝜑(𝐵) = ∑𝑗 𝜑𝑗 𝐵 𝑗 , tal que 𝑍𝑡 = 𝜑(𝐵)𝐴𝑡 Entonces, realizamos los cambios: 𝐵 = 𝑒 𝑖𝜔 𝐹 = 𝐵−1 = 𝑒 −𝑖𝜔 Ψ(𝜔) = 𝜑(𝑒 𝑖𝜔 ) ∗ 𝜑(𝑒 −𝑖𝜔 ) ∗ 𝜎𝑎2 = 𝜑(𝐵) ∗ 𝜑(𝐹) ∗ 𝜎𝑎2 = 𝜎𝑎2 ∑ 𝛽𝑗 (𝐵 𝑗 + 𝐹 𝑗 ) 𝑗 Nos quedan polinomios simétricos en B y en F, luego: 𝐵 𝑗 + 𝐹 𝑗 = 𝑒 𝑖𝜔𝑗 + 𝑒 −𝑖𝜔𝑗 = 2cos(𝜔𝑗) Finalmente, tras estos cambios: Ψ(𝜔) = 𝜎𝑎2 ∑ 2𝛽𝑗 cos(𝜔𝑗) 𝑗 De esta manera conseguimos el espectro a partir del filtro del proceso ARIMA. 3- Extracción de Señales En el contexto de la extracción de señales, una serie de tiempo se piensa como la agregación de un conjunto de series ortogonales que son inobservables. Es decir, un proceso estocástico puede ser descompuesto en cuatro componentes: la tendencia, el ciclo, la estación y por último el componente irregular Definición de las componentes de una serie - - Tendencia: es el componente asociado a las oscilaciones de baja frecuencia representando los movimientos a largo plazo. Ciclo: recoge las fluctuaciones de mediano plazo de la serie, aunque existen distintas definiciones de este componente, que lo vinculan con periodos que son mayores a los de la componente estacional y menores a los de la tendencia. Estación: es el componente que se asocia al comportamiento regular de la serie en las frecuencias correspondientes a periodos de un año, un semestre, un cuatrimestre… Irregular: tiene una estructura aleatoria y contiene oscilaciones no sistemáticas. Es el asociado a las frecuencias más altas. Es decir, obtener la descomposición: 𝑍𝑡 = 𝑁𝑡 + 𝑆𝑡 + 𝐼𝑡 Donde 𝑍𝑡 = 𝑓(𝐵)𝑎𝑡 = 𝜃(𝐵) 𝑎 , 𝑦 Φ(𝐵) = ∏ 𝜙𝑖 (𝐵) Φ(𝐵) 𝑡 𝑖 Y queremos conseguir las series: 𝑁𝑡 = 𝜃𝑛 (𝐵) 𝑎 𝑑𝑜𝑛𝑑𝑒 𝑎𝑛𝑡 ~𝑁(0, 𝜎𝑛2 ) 𝜙𝑛 (𝐵) 𝑛𝑡 𝑆𝑡 = 𝜃𝑠 (𝐵) 𝑎 𝑑𝑜𝑛𝑑𝑒 𝑎𝑠𝑡 ~𝑁(0, 𝜎𝑠2 ) 𝜙𝑠 (𝐵) 𝑠𝑡 𝑍𝑡 = 𝑓(𝐵)𝑎𝑡 = 𝜃(𝐵) 𝜃𝑛 (𝐵) 𝜃𝑠 (𝐵) 𝑎𝑡 = 𝑎𝑛𝑡 + 𝑎 + 𝑖(𝐵)𝑎𝑖𝑡 Φ(𝐵) 𝜙𝑛 (𝐵) 𝜙𝑠 (𝐵) 𝑠𝑡 Los ruidos blancos de las componentes son independientes entres sí. Por lo tanto: 𝜙𝑠 (𝐵)𝜙𝑛 (𝐵)𝑍𝑡 = 𝜃(𝐵)𝑎𝑡 = 𝜃𝑛 (𝐵)𝜙𝑠 (𝐵)𝑎𝑛𝑡 + 𝜃𝑠 (𝐵)𝜙𝑛 (𝐵)𝑎𝑠𝑡 + 𝜙𝑛 (𝐵)𝜙𝑠 (𝐵)𝑖(𝐵)𝑎𝑖𝑡 Para conseguir la descomposición trabajamos con espectros, es decir, en el dominio de la frecuencia: Espectro del noise: 𝑆𝑧 (𝜔) = 𝜃(𝐵)𝜃(𝐹) 2 𝜎 Φ(𝐵)Φ(𝐹) Estos polinomios son simétricos en 𝐵 = 𝑒 𝑖𝜔 y en 𝐹 = 𝐵−1 = 𝑒 −𝑖𝜔 , por lo tanto los podemos escribir de la forma: 𝑃(𝜔) = 𝑃(𝐵)𝑃(𝐹) = ∑ 𝛽𝑛 (𝐵𝑛 + 𝐹 𝑛 ) = ∑ 𝛽𝑛 (𝑒 𝑖𝜔𝑛 + 𝑒 −𝑖𝜔𝑛 ) = ∑ 𝛽𝑛 2cos(𝜔𝑛) 𝑛 𝑛 𝑛 Suponemos que el grado de 𝜃 es más grande que el grado de Φ, por lo tanto tenemos que dividir para que nos quede una partición en cociente y resto, es decir: 𝜃(𝐵)𝜃(𝐹) 𝑅(𝐵, 𝐹) = 𝑄(𝐵, 𝐹) + Φ(𝐵)Φ(𝐹) Φ(𝐵)Φ(𝐹) Si el grado de 𝜃 fuera más pequeño que el grado de Φ, trabajaríamos directamente con la fracción inicial. Después tendríamos que descomponer la fracción polinomial en factores simples sin raíces comunes. Por ejemplo: 𝑅(𝐵, 𝐹) 𝐶1 (𝐵, 𝐹) 𝐶2 (𝐵, 𝐹) = + Φ(𝐵)Φ(𝐹) 𝜙1 (𝐵)𝜙1 (𝐹) 𝜙2 (𝐵)𝜙2 (𝐹) La factorización se realiza de manera que los picos espectrales alrededor de la frecuencia 𝜔 = 0 esten asociadas a las raíces del polinomio autorregresivo del componente de la tendencia, 𝜋 mientras que los picos espectrales alrededor de las frecuencias estacionales 𝜔 = 2 𝑜 𝜔 = 𝜋, se asociarán a las raíces del polinomio autorregresivo de la componente estacional. Tenemos que calcular los coeficientes de los polinomios 𝐶1 (𝐵, 𝐹) y 𝐶2 (𝐵, 𝐹), de tal forma que se cumpla la ecuación: 𝑅(𝐵, 𝐹) = 𝐶1 (𝐵, 𝐹)𝜙2 (𝐵)𝜙2 (𝐹) + 𝐶2 (𝐵, 𝐹)𝜙1 (𝐵)𝜙1 (𝐹) Una vez que hemos encontrado esos polinomios en B y en F, tenemos que minimizar las distintas componentes, y restar ese mínimo obteniendo nuevos numeradores, esto es: 𝐶1∗ (𝐵, 𝐹) 𝐶1 (𝐵, 𝐹) = − 𝜀1 𝜙1 (𝐵)𝜙1 (𝐹) 𝜙1 (𝐵)𝜙1 (𝐹) 𝐶2∗ (𝐵, 𝐹) 𝐶2 (𝐵, 𝐹) = − 𝜀2 𝜙2 (𝐵)𝜙2 (𝐹) 𝜙2 (𝐵)𝜙2 (𝐹) 𝐶 (𝐵,𝐹) 𝑖 Donde 𝜀𝑖 = 𝑚𝑖𝑛 [𝜙 (𝐵)𝜙 ] 𝑐𝑜𝑛 𝑖 = 1, 2 (𝐹) 𝑖 𝑖 Y estos mínimos se lo sumamos a la componente irregular, junto con 𝑄(𝐵, 𝐹): 𝑄 ∗ (𝐵, 𝐹) = 𝑄(𝐵, 𝐹) + 𝜀 Entonces tenemos la siguiente descomposición: 𝜃(𝐵)𝜃(𝐹) 𝐶1∗ (𝐵, 𝐹) 𝐶2∗ (𝐵, 𝐹) = 𝑄 ∗ (𝐵, 𝐹) + + Φ(𝐵)Φ(𝐹) 𝜙1 (𝐵)𝜙1 (𝐹) 𝜙2 (𝐵)𝜙2 (𝐹) Y de aquí: 1= 𝜃(𝐵)𝜃(𝐹) 𝑄 ∗ (𝐵, 𝐹)Φ(𝐵)Φ(𝐹) 𝐶1∗ (𝐵, 𝐹)𝜙2 (𝐵)𝜙2 (𝐹) 𝐶2∗ (𝐵, 𝐹)𝜙1 (𝐵)𝜙1 (𝐹) = + + Φ(𝐵)Φ(𝐹) 𝜃(𝐵)𝜃(𝐹) 𝜃(𝐵)𝜃(𝐹) 𝜃(𝐵)𝜃(𝐹) Ahora tenemos que formar los filtros: Primero descomponemos los polinomios en parte en B y parte en F utilizando el algoritmo de Tunnicliffe Wilson: 𝐴(𝐵, 𝐹) 𝐺(𝐵) 𝐺(𝐹) = + 𝜃(𝐵)𝜃(𝐹) 𝜃(𝐵) 𝜃(𝐹) De que obtenemos el polinomio G, tenemos que conseguir una extensión de la serie hacia adelante y hacia atrás, es decir, denotemos: 𝑍𝑡𝐹 → 𝑃𝑟𝑒𝑣𝑖𝑠𝑖ó𝑛 𝑒𝑛 𝑣𝑎𝑙𝑜𝑟𝑒𝑠 𝑓𝑢𝑡𝑢𝑟𝑜𝑠 𝑑𝑒 𝑡 𝑑𝑒 𝑍𝑡 𝑍𝑡𝐵 → 𝑃𝑟𝑒𝑣𝑖𝑠𝑖ó𝑛 𝑒𝑛 𝑣𝑎𝑙𝑜𝑟𝑒𝑠 𝑝𝑎𝑠𝑎𝑑𝑜𝑠 𝑑𝑒 𝑡 𝑑𝑒 𝑍𝑡 Aplicamos: 𝑍1𝑖 = 𝐺𝑖 (𝐵) 𝐵 : 𝑍 ≪ 𝑍𝑡 ≪ 𝑍𝑡𝐹 𝜃(𝐵) 𝑡 𝑍2𝑖 = 𝐺𝑖 (𝐹) 𝐵 : 𝑍 ≪ 𝑍𝑡 ≪ 𝑍𝑡𝐹 𝜃(𝐹) 𝑡 Nuestra serie resultante queda: 𝑍 𝑖 = 𝑍1𝑖 + 𝑍2𝑖 Donde i representa cada componente, es que a partir de cierto punto la notación se complica. La descomposición canónica consiste en maximizar la varianza del componente irregular, 𝑎𝑖𝑡 ~𝑁(0, 𝜎𝑖2 ), al mismo tiempo que se minimiza la varianza de los demás componentes. En el dominio de la frecuencia minimizar la varianza de un componente es equivalente a inducir un cero en los espectros de las componentes canónicos, 𝑁𝑡 𝑦 𝑆𝑡 . Por ejemplo, suponiendo que el componente de la tendencia obedece un camino aleatorio: (1 − 𝐵)𝑁𝑡 = 𝑎𝑛𝑡 𝑐𝑜𝑛 𝑎𝑛𝑡 𝑒𝑠 𝑅𝐵 𝑐𝑜𝑛 𝑣𝑎𝑟𝑖𝑎𝑛𝑧𝑎 𝑖𝑔𝑢𝑎𝑙 𝑎 1. El espectro de 𝑁𝑡 es igual a: 𝑠𝑁 (𝜔) = 1 2(1 − 𝑐𝑜𝑠𝜔) 1 El cual alcanza un mínimo en la frecuencia 𝜔 = 𝜋 -> 𝑠𝑁 (𝜔) = 4 Resulta claro, que inducir un cero en el espectro es a su vez, equivalente a tener una raíz unitaria en el polinomio MA de las componentes canónicas. Por ello, el espectro de la descomposición canónica de la tendencia que obedece un camino aleatorio está dada por: 𝑠𝑁∗ (𝜔) = 𝑠𝑁 (𝜔) − 1 1 1 1 + 𝑐𝑜𝑠𝜔 = − = 4 2(1 − 𝑐𝑜𝑠𝜔) 4 4(1 − 𝑐𝑜𝑠𝜔) Lo cual corresponde al siguiente modelo para la tendencia canónica 1 (1 − 𝐵)𝑇𝑡 = (1 + 𝐵)𝑣𝑡∗ 𝑑𝑜𝑛𝑑𝑒 𝑣𝑡∗ ~𝑅𝐵 (0, ) 4 Como se puede observar la descomposición canónica puede ser vista como un problema de asignación de ruido entre las componentes, el cual se resuelve asignando todo el ruido al componente irregular. Como resumen el algoritmo sigue los siguientes pasos: 1- Descomposición de la estructura ARIMA en resto y fracción 2- Descomposición en fracciones simples 3456- Cambio de variable para calcular los mínimos de los componentes racionales Resto los mínimos espectrales a las funciones racionales Formar los filtros Aplico filtros vía Burman EJEMPLO: Dado el modelo ARIMA: (1 − 0.6 ∗ 𝐵)(1 − 𝐵4 )𝑍𝑡 = (1 − 0.1𝐵)(1 − 0.8𝐵4 )𝐴𝑡 Creamos una serie, tal que: Date begin = y2000m01; Date end = y2005m12; Polyn ari = (1-0.6*B)*(1-B^4); Polyn ma = (1-0.1*B)*(1-0.8*B^4); Real initLength = 100*5; Date begin_ = Succ(begin, Mensual, -initLength); Serie r0 = SubSer(Gaussian(0, 1, Mensual), begin_, end); Serie n0 = DifEq(ma/ari, r0); Serie residuals = SubSer(r0, begin, end); Serie noise = SubSer(n0, begin, end); 𝑍𝑡 = (1 − 0.1𝐵)(1 − 0.8𝐵4 ) 𝐴 = 𝑓(𝐵)𝐴𝑡 (1 − 0.6 ∗ 𝐵)(1 − 𝐵4 ) 𝑡 𝑐𝑜𝑛 𝐴𝑡 ~𝑅𝐵(0, 1) Tras realizar el modelo y la estimación, nos estima los siguientes parámetros: Periodo AR MA DIF 1.0 1-0.416*B 1+0.0469*B 1 4.0 1 1-0.7665*B^4 1-B^4 Tenemos que separar el denominador del polinomio en parte tendencial y parte estacional en dos polinomios sin raíces comunes: 𝜙𝑡 (𝐵) = (1 − 0.416B) ∗ (1 − B) 𝜙𝑠 (𝐵) = 1 + 𝐵 + 𝐵2 + 𝐵3 Y la parte MA 𝜃(𝐵) = (1 + 0.0469B) ∗ (1 − 0.7665B 4 ) El periodograma es el siguiente: Resultados: Tendencia Estacionalidad Parte irregular 4- Paquete SignalExtraction Este paquete consta de dos funciones principales para extraer las señales, una de ellas por el método de Burman y la otra utilizando el método descrito anteriormente: Para utilizar estas funciones son necesarias: La serie del noise El conjunto (set) arima, donde tenemos los polinomios del modelo ARIMA, que tabulado guarda la forma: Con estos elementos tendremos que construir los argumentos de las funciones: 1- SignalExtraction::MSXBurman(tetha, noise, noiseB, noiseF) 2- SignalExtraction::signals(theta, noise, noiseB, noiseF, Sigma) SetOfPolyn(phi1, SetOfPolyn(phi1, phi2,…), phi2,…), Donde: tetha es el polinomio del numerador (parte MA del modelo ARIMA) el conjunto de polinomios SetOfPolyn(phi1, phi2, …) es un conjunto que contiene los polinomios correspondientes a tendencia, estacionalidad,…, es decir, está separación de polinomios la realizamos nosotros como convenga, no pueden contener raíces comunes. La serie del noise noiseB y noiseF es la serie del noise extendido hacia adelante y hacia atrás según su correspondiente ARIMA. Para calcularlo se pueden utilizar funciones del propio paquete como son las siguientes: Real n = CountS(noise); Serie noiseF = SignalExtraction::ForecastingNoiseF(noise, arima, n/2); Serie noiseB = SignalExtraction::ForecastingNoiseB(noise, arima, n/2); Donde arima es el conjunto de polinomios que hemos explicado antes. Sigma, es la varianza de los residuos, es decir, si tenemos: 𝑀𝐴 𝑁𝑡 = 𝐴 , 𝑑𝑜𝑛𝑑𝑒 𝐴𝑡 ~𝑁(0, 𝜎 2 ) 𝐴𝑅𝐼 𝑡 Sigma es 𝜎̂ 2 y se puede calcular utilizando la función del propio paquete: Real v = VarS(SignalExtraction::ARIMAAlmagroEval_Residuals(arima, noise)); En el caso de no conseguir este sigma, igualarlo a 1. Las funciones devuelven, si el proceso termina con éxito (que no siempre es el caso), un conjunto donde aparecen k+2 series, siendo k el número de polinomios en el que separamos la parte ARI. Las otras dos series, una corresponde a la serie del noise y la otra a la parte irregular. El código del ejemplo anterior sería el siguiente: // Extraemos el noise y el arima Set arima = estimation::GetModel.Results(?)::GetSubmodel(1)::GetARIMA(?); Serie noiseE = estimation::GetModel.Results(?)::GetSubmodel(1)::GetNoise(?); Real var = estimation::GetModel.Results(?)::GetSubmodel(1)::GetSigma2(?); Serie noiseB = SignalExtraction::ForecastingNoiseB(noiseE, arima, 500); Serie noiseF = SignalExtraction::ForecastingNoiseF(noiseE, arima, 500); ////////////////////////////////////////////////////////////////////////////// // Periodo // 1.0 AR MA 1-0.4164*B // 4.0 1 DIF 1+0.0469*B 1-0.7665*B^4 1 1-B^4 // Descomponemos en factores Polyn tetha = SetProd(EvalSet(arima, Polyn (Set se) { se["ma"] })); Polyn ar1 = arima[1]["ar"]; Polyn dif4 = arima[2]["dif"]; Polyn phi1 = ar1; Polyn phi2 = (1-B); Polyn phi3 = Quotient(dif4/(1-B)); Real v = VarS(SignalExtraction::ARIMAAlmagroEval_Residuals(arima, noiseE)); Set se_New = SignalExtraction::signals(tetha, SetOfPolyn(phi1*phi2, phi3), noiseE, noiseB, noiseF, v); Anexo: By Burman Ejemplo: (Burman) Realizamos el mismo ejemplo anterior como dice Burman: (1 − 0.6 ∗ 𝐵)(1 − 𝐵4 )𝑍𝑡 = (1 − 0.1𝐵)(1 − 0.8𝐵4 )𝐴𝑡 𝑐𝑜𝑛 𝐴𝑡 ~𝑅𝐵(0, 1) Tras realizar el modelo y la estimación, nos estima los siguientes parámetros: Periodo AR MA DIF 1.0 1-0.416*B 1+0.0469*B 1 4.0 1 1-0.7665*B^4 1-B^4 Separamos en las mismas componentes: 𝜃(𝐵) = (1 + 0.0469 ∗ B)(1 − 0.7665 ∗ B 4 ) 𝜑1 (𝐵) = (1 − 0.416 ∗ B) ∗ (1 − 𝐵) 𝜑2 (𝐵) = 1 + 𝐵 + 𝐵2 + 𝐵3 Lo que primero hace el algoritmo es hacer el cambio de variable a la función del espectro de los polinomios: 𝑥 = 𝑐𝑜𝑠𝜔 Y nos quedan los polinomios: 𝜃(𝑥) = 0.054 + 0.005 ∗ 𝑥 + 12.292 ∗ 𝑥 2 + 1.15 ∗ 𝑥 3 − 12.292 ∗ 𝑥 4 − 1.15 ∗ 𝑥 5 𝜑1 (𝑥) = 2.346 − 4.012 ∗ 𝑥 + 1.665 ∗ 𝑥 2 𝜑2 (𝑥) = 8 ∗ 𝑥 2 + 8 ∗ 𝑥 3 Divide: 𝜃(𝑥) 𝑅(𝑥) = 𝑄(𝑥) + 𝜑1 (𝑥)𝜑2 (𝑥) 𝜑1 (𝑥)𝜑2 (𝑥) Luego: 0.054 + 0.005 ∗ 𝑥 + 12.292 ∗ 𝑥 2 + 1.15 ∗ 𝑥 3 − 12.292 ∗ 𝑥 4 − 1.15 ∗ 𝑥 5 18.77 ∗ 𝑥 2 − 13.32 ∗ 𝑥 3 − 18.77 ∗ 𝑥 4 + 13.32 ∗ 𝑥 5 0.054 + 0.005 ∗ 𝑥 + 13.91 ∗ 𝑥 2 − 13.91 ∗ 𝑥 4 = −0.086 + 18.77 ∗ 𝑥 2 − 13.32 ∗ 𝑥 3 − 18.77 ∗ 𝑥 4 + 13.32 ∗ 𝑥 5 El siguiente paso es separar en fracciones simples: 𝜃(𝑥) 𝑅(𝑥) 𝜃1 (𝑥) 𝜃2 (𝑥) = 𝑄(𝑥) + = 𝑄(𝑥) + + 𝜑1 (𝑥)𝜑2 (𝑥) 𝜑1 (𝑥)𝜑2 (𝑥) 𝜑1 (𝑥) 𝜑2 (𝑥) Esto nos queda: 1 0.151 − 0.088 ∗ 𝑥 0.426 + 0.728 ∗ 𝑥 + 0.427 ∗ 𝑥 2 = + 𝜑1 (𝑥)𝜑2 (𝑥) 2.346 − 4.012 ∗ 𝑥 + 1.665 ∗ 𝑥 2 8 ∗ 𝑥2 + 8 ∗ 𝑥3 𝜃1 (𝑥) 𝜃2 (𝑥) + 𝜑1 (𝑥) 𝜑2 (𝑥) 0.008 − 0.004 ∗ 𝑥 + 2.106 ∗ 𝑥 2 − 1.237 ∗ 𝑥 3 − 2.106 ∗ 𝑥 4 + 1.237 ∗ 𝑥 5 = −0.086 + 2.346 − 4.012 ∗ 𝑥 + 1.665 ∗ 𝑥 2 2 0.023 + 0.041 ∗ 𝑥 + 5.955 ∗ 𝑥 + 10.13 ∗ 𝑥 3 + 0.013 ∗ 𝑥 4 − 10.13 ∗ 𝑥 5 − 5.94 ∗ 𝑥 6 + 8 ∗ 𝑥2 + 8 ∗ 𝑥3 = (∗) 𝑄(𝑥) + Ahora tenemos que dividir las fracciones simples para dejar menor grado en el numerador que en el denominador, y el cociente de cada división se lo sumamos a 𝑄(𝑥): (∗) = −0.086 + (−0.74 − 0.52 ∗ 𝑥 + 0.52 ∗ 𝑥 2 + 0.74 ∗ 𝑥 3 ) + (0.74 + 0.52 ∗ 𝑥 − 0.52 ∗ −1.748−1.744∗𝑥 0.023+0.041∗𝑥+0.024∗𝑥 2 + 2 2.346−4.012∗𝑥+1.665∗𝑥 8𝑥 3 +8𝑥 2 −1.748−1.744∗𝑥 0.023+0.041∗𝑥+0.024∗𝑥 2 + 2.346−4.012∗𝑥+1.665∗𝑥 2 8𝑥 3 +8𝑥 2 𝑥 2 − 0.74 ∗ 𝑥 3 ) + Ahora calculo los mínimos: min −1.748 − 1.744 ∗ 𝑥 = 0.435 2.346 − 4.012 ∗ 𝑥 + 1.665 ∗ 𝑥 2 min 0.023 + 0.041 ∗ 𝑥 + 0.024 ∗ 𝑥 2 = 0.005 8𝑥 3 + 8𝑥 2 Restamos los mínimos a cada fracción: −1.748 − 1.744 ∗ 𝑥 − 0.435 2.346 − 4.012 ∗ 𝑥 + 1.665 ∗ 𝑥 2 0.023 + 0.041 ∗ 𝑥 + 0.024 ∗ 𝑥 2 − 0.005 8𝑥 3 + 8𝑥 2 Los mínimos se lo sumamos a 𝑄(𝑥) En general, tenemos la siguiente ecuación: = −0.086 + 𝑄 ∗ (𝑥) + 𝜃1∗ (𝑥) 𝜃2∗ (𝑥) + 𝜑1 (𝑥) 𝜑2 (𝑥) 0.72 + 0.001 ∗ 𝑥 − 0.724 ∗ 𝑥 2 4𝑥 2 − 8𝑥 + 4 0.0232 + 0.0419 ∗ 𝑥 − 0.016 ∗ 𝑥 2 − 0.04 ∗ 𝑥 3 + 8𝑥 3 + 8𝑥 2 = −0.086 + Hacemos el cambio de variable, para volver a polinomios en B y en F: 𝑥 = 𝑐𝑜𝑠𝜔 = 𝐵+𝐹 2 Y nos los polinomios simétricos resultantes son: 𝜃1∗ (𝐵, 𝐹) = 0.3643 + 0.0009(𝐵 + 𝐹) − 0.181(𝐵2 + 𝐹 2 ) 𝜃2∗ (𝐵, 𝐹) = 0.0152 + 0.005(𝐵 + 𝐹) − 0.004(𝐵2 + 𝐹 2 ) − 0.005(𝐵3 + 𝐹 3 ) 𝜑1 (𝐵)𝜑1 (𝐹) = 4 + 3(𝐵 + 𝐹) + 2(𝐵2 + 𝐹 2 ) + (𝐵3 + 𝐹 3 ) 𝜑2 (𝐵)𝜑2 (𝐹) = 3.179 − 2.006(𝐵 + 𝐹) + 0.416(𝐵2 + 𝐹 2 ) Ahora, utiliza el Algoritmo de Tunnicliffe Wilson: 𝐶(𝐵, 𝐹) 𝐺(𝐵) 𝐺(𝐹) = + 𝜃(𝐵)𝜃(𝐹) 𝜃(𝐵) 𝜃(𝐹) Después aplica los filtros a los noise’s como se hizo arriba.