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

Version 2 (modified by Víctor de Buen Remiro, 12 years ago) (diff)

--

Generación de modelos ARIMA simulados por ingeniería inversa

La generación de modelos ARIMA simulados por ingeniería inversa tiene una gran utilidad en el desarrollo de aplicaciones relativas a modelos ARIMA pues permite contrastar de forma masiva los resultados teóricos con los reales.

Para ser más exactos se trata de modelos ARIMA multi-estacionales que se generan automáticamente a partir de unos pocos parámetros dados por el usuario, como las periodicidades estacionales, los grados máximos de diferencias, partes AR y MA, longitud, fechado y fecha final de la serie, desviación típica teórica, etc.

Pongamos que queremos generar una serie ARIMA diaria con estacionalidad semanal. Lo primero que hay que hacer es construir el generador de modelos al que hay que pasarles las periodicidades regular (1) y estacional (7)

NameBlock rndArima = ArimaTools::@RandArima::Create([[1,7]]);

Si llamamos al método

Set rndArima::draw(?);

nos devolverá una tabla de filas con estructura

Struct @ARIMAStruct { 
  Real Periodicity; 
  Polyn AR; 
  Polyn MA; 
  Polyn DIF; 
} 

y grados y coeficientes aleatorios como estos tres ejemplos

PeriodicityARMADIF
11-0.108083385881461*B-0.661191867198795*B^21+1.84687137714305*B+0.913258229847997*B^21-B
71-0.500501212900947*B^7-0.159991535823792*B^141+1.52869164096904*B^7+0.945664106402546*B^141
PeriodicityARMADIF
11+0.276724013923667*B1-0.608476788569242*B1-B
71+0.669428730927173*B^7+0.551377256400883*B^1411-B^7
PeriodicityARMADIF
11+1.71064830487263*B+0.7920374982059*B^21+0.1186861861303*B-0.577400461304933*B^21
71+0.852601298354566*B^711

Se puede establecer un grado mínimo y máximo para cada polinomio, AR, MA y DIF de cada estacionalidad. Para los polinomios AR y MA se puede configurar también el mínimo y el máximo de los módulos de los inversos de las raíces y si se desean raíces reales, reales positivas o si se admiten raíces complejas.

Los valores configurables tienen valores por defecto que normalmente sirven a efectos generales.

Para los polinomios AR y MA los valores por defecto son:

period_.rootsType_.min.degree_.min.invRootModule_.max.invRootModule_.max.degree
1RealOrComplexRoots00.10.995
7RealOrComplexRoots00.10.993

y para los de diferencias :

period_.min.degree_.max.degree
102
701

Si por ejemplo queremos forzar que las raíces AR regulares sean reales positivas y que el grado máximo MA estacinal sea 2 haríamos lo siguiente:

Text (rndArima::factor[1])::ar::rootsType := ArimaTools::@RandStationary::RootsType::RealPositiveRoots;
Real (rndArima::factor[2])::ma::max.degree := 2;
Set rndArima::rebuild(?);

La última línea se asegura de que toda la información del generador es consistente.