Simulación Numérica de Modelos Estocásticos Programa de Doctorado Biometría y Estadística NOTAS SOBRE LA GENERACIÓN DE PROCESOS ESTOCÁSTICOS Jordi Ocaña Rebull Marzo de 2001 Contenido 1. Procesos de Poisson 3 1.1. Procesos de Poisson homogéneos 3 1.2. Procesos de Poisson no homogéneos 3 1.3. Procesos de Poisson bidimensionales 7 2. Generación de procesos gausianos 9 2.1. Método de Cholesky 9 2.2. Método condicional 9 2.3. Método de Fourier 11 2.4. Comparación de los métodos para generar procesos gausianos 12 Bibliografía 12 2 GENERACIÓN DE PROCESOS ESTOCÁSTICOS 1. Procesos de Poisson La generación de un proceso de Poisson o, más en general, un proceso de “vida” y/o “muerte” es asimilable a la generación del correspondiente proceso de los tiempos de “llegada”, T1, T2,…. 1.1. Procesos de Poisson homogéneos Como es bien conocido, un proceso de Poisson homogéneo, con tasa o frecuencia de “llegadas” λ>0, constante, se puede simular a partir de la generación de una serie de “tiempos” Ti= Ti-1+(logRi)/λ a partir de incrementos de tiempo iid con distribución exponencial de parámetro λ, con densidad f(t)=λexp(−λt) para t>0. Esto es equivalente a que el proceso complementario de “contajes” de llegadas en un tiempo t, que indicaremos indistintamente Nt ó N(t), tenga distribución de Poisson de parámetro λt. 1.2. Procesos de Poisson no homogéneos A menudo son más realistas los modelos basados en procesos de Poisson no homogéneos, en los que la tasa de llegadas es una función del parámetro de tiempo, λ(t). Esta suposición se puede introducir estableciendo que la probabilidad de una o más llegadas en un tiempo δt a partir de t, es aproximadamente proporcional a δt, P {N t +δt − N t > 0} = λ (t ) δt + o (δt ) P {N t +δt − N t > 1} = o (δt ) En este caso resulta que, para un tiempo prefijado t0, N ( t0 ) ∼ P ( ∆ ( t0 ) ) , con ∆ (t ) = ∫ t 0 λ (u )du . Los tres métodos más conocidos de generación de un proceso de Poisson no homogéneo de este tipo se basan en la modificación de la escala de tiempo, en el condicionamiento y en una adaptación del método de rechazo. 3 1.2.1. Cambio de la escala de tiempo Supongamos que T1, T2, … son los tiempos de llegada según un proceso de Poisson no homogéneo. Si se realiza el siguiente cambio de escala de tiempo: τ= ∫ T 0 λ (u )du = ∆ (T ) , el proceso asociado a los tiempos τ1, τ2, … es un proceso de Poisson homogéneo con tasa de llegadas 1. Inversamente, el proceso asociado a los tiempos T1 = ∆−1 (τ1 ), T2 = ∆−1 (τ2 ), … (1.1) donde τ1, τ2, … corresponden a los tiempos asociados a un proceso homogéneo de tasa 1, es un proceso de Poisson no homogéneo de tasa λ(t). Las transformaciones (1.1) sugieren un método obvio de generación, cuya aplicabilidad depende fuertemente de la forma de λ (y por lo tanto de ∆ etc.). Se detendrá la generación del proceso homogéneo cuando deje de cumplirse la condición τi ≤ ∆ ( t0 ) . Como ejemplo de este método supongamos que λ(t) = exp(α + βt). En este caso, τ = ∆ (T ) = ∫ T 0 e e α βt du = (e − 1) β α +βu y, por lo tanto, T = ∆−1 (τ ) = 1.2.2. 1 log (1 + βτe −α ) . β Métodos basados en el condicionamiento Condicionado a N(t0)=n, los tiempos de llegada corresponden a los valores del estadístico ordinal T(1), T(2),…, T(n), generados a partir de la distribución si u<0 0 ∆ (u ) F (u ) = si 0 ≤ u ≤ t ∆ (t ) si u > t. 1 (1.2) Una vez generado el valor n a partir de una distribución de Poisson de parámetro ∆(t0), el problema reside en cómo generar valores ordenados a partir de la distribución (1.2). Una posibilidad está en el método de inversión: 4 supongamos que hemos conseguido generar el estadístico ordinal uniforme, ( ) U(0,1), R(1), R(2), …, R n . Dado que ( ) ( )=R ∆ T(i ) ∆ (t ) (i ) tenemos que ( ) T(i ) = ∆−1 ∆ (t ) R(i ) . (1.3) Una forma eficiente de generar el estadístico ordinal uniforme (ascendente) se basa en el método condicional. En efecto, la distribución marginal de R(1) permite indicar: { } n H 1 (r1 ) = P R(1) > r1 = (1 − r1 ) ( ) ( ) n R1 ∼ U (0,1), R1 = H 1 R(1) = 1 − R(1) , de manera que R(1) = H 1−1 (R1 ) = 1 − R1 n . 1 (1.4) Por otra parte, cualquier distribución condicionada R(j+1)|R(j)=rj,…,R(1)=r1 es equivalente a R(j+1)|R(j)=rj. Por lo tanto: { H j +1 (rj +1 ) = P R( j +1) > rj +1 Rj = rj } n−j 1 − r j +1 = 1 − rj n −j ( Rj = H j +1 R( j +1) Rj = R( j ) ) 1 − R ( j +1) = 1 − R (j ) , Rj ∼ U (0,1), de donde ( R( j +1) = 1 − 1 − R( j ) El método consistente en generar n ) 1 (n − j ) Rj +1. (1.5) variables aleatorias Ri iid U(0,1) y ordenarlas es desaconsejable, por razones de eficiencia. Si en (1.3) no es posible invertir ∆, hay que recurrir al procedimiento, muy poco eficiente, de generar los n tiempos Ti y ordenarlos. 5 1.2.3. Rechazo a partir de un proceso homogéneo Supongamos que, a partir del instante s (seguramente el último punto temporal al que ha llegado la simulación), se pretende generar el siguiente incremento de tiempo, X, de manera que el proceso de simulación avanzará hasta el instante s+X. Supongamos que existe y es finito el valor: λs* = sup {λ (t )} . (1.6) s ≤t ≤t0 Se puede demostrar que el siguiente algoritmo genera los momentos de llegada, T1, T2,…, Ti , Ti-1, …, de un proceso de Poisson no homogéneo de tasa λ(t): T = Ti-1 repetir: 1. Evaluar λT* según la expresión (1.6), 2. generar R ∼ U (0,1) y un incremento de tiempo exponencial X ∼ ε (λs* ) , e 3. incrementar el tiempo T = T + X hasta que se verifique que R λs* ≤ λ (T ) ; Ti = T. Se continuarán generando valores de tiempo mientras Ti ≤ t0. A costa de aumentar la probabilidad de rechazo, el punto 1 del algoritmo se puede suprimir tomando como tasa constante del proceso homogéneo el valor λ * = sup {λ (t )} o (peor todavía) cualquier valor λ’≥λ*. El algoritmo también 0≤t ≤t0 es válido si en lugar de un proceso homogéneo se emplea un proceso no homogéneo de tasa λ* ( t ) tal que λ * ( t ) ≥ λ ( t ) para todo t. Si λ * ( t ) es cercana a λ(t) y el proceso asociado es fácil de generar, el algoritmo puede resultar más eficiente que el basado en un proceso homogéneo. 6 1.3. Procesos de Poisson bidimensionales Los procesos de Poisson con parámetro bidimensional (asimilable en general a las coordenadas en una superficie) son una generalización natural de los procesos de Poisson homogéneos. En ocasiones se desea simular la distribución de puntos en el espacio (organismos, yacimientos, etc.), de manera que para una región de superficie s (y con i−1 cualquier forma) el número de Di−1 i Di puntos Ns tenga distribución de Poisson, P(λs). En estas condiciones, siempre respecto de un punto de partida o centro arbitrario, consideremos un punto, i−1, a una distancia Di−1 de este centro y la corona circular hasta el punto más próximo, a una distancia Di del centro. Fijémonos en que la posición de cada punto puede ser descrita mediante la distancia, o radio, Di, y un ángulo, θι. La distribución de la superficie de esta corona circular, Si = π ( Di2 − Di2−1 ) , es exponencial de parámetro λ: P { Si ≤ s } = P { "Ningún punto en la superficie s" } = 1 − e −λs de manera que 1 − log R = π ( Di2 − Di2−1 ) , R ∼ U ( 0,1 ) λ de donde log R1i πλ θi = 2πR2i , R1i , R2i ∼ U ( 0,1 ) , independientes, Di = Di2−1 − (1.7) sugiere un método de generación de las sucesivas coordenadas polares de los puntos ( D1, θ1 ) , ( D2, θ2 ) , … a partir de un centro inicial cualquiera. Para una región A, de forma irregular, el siguiente algoritmo “de rechazo” generaría de forma apropiada los puntos: 7 a Escójase un punto dentro de A (por ejemplo central). Se considerará como el origen de coordenadas, con Di=0 para i=0 y no formará parte del proceso generado. b Repetir: b.1 i=i+1, b.2 determinación de las coordenadas polares del punto i según (1.7), b.3 si el punto (Di,θi) pertenece a A, queda aceptado como punto generado (y se almacena como parte del resultado final del algoritmo) hasta que A ⊂ B ( Di ) , donde B(Di) indica la bola de radio Di. El método anterior es independiente de la forma de la región a la cual deben pertenecer los puntos. Existen métodos más eficientes para regiones de formas específicas. Por ejemplo, para una región rectangular de lados de longitud x0,y0, tenemos que s = x0y0 y Ns ∼ P(x0y0). En este caso suele ser preferible el siguiente algoritmo: Genérese un valor de Ns. Sea este valor n. Condicionado a Ns = n, las coordenadas euclídeas de los puntos a generar, (X1,Y1),…,(Xn,Yn) corresponden a los estadísticos uniformes ordinales X(1 ), …, X ( Y(1 ), …,Y n ( n) ) para una U ( 0, x 0 ) para una U ( 0, y0 ) , que se pueden generar de acuerdo con el algoritmo descrito en el punto 1.2.2. Alternativamente, se puede emplear el hecho de que los procesos proyectados sobre cada eje son independientes y corresponden a procesos de Poisson homogéneos de tasa λ. Para una región circular de radio d0 la última idea anterior no es directamente aplicable. Las proyecciones sobre los ejes x e y son procesos no homogéneos. Considerando coordenadas polares, la proyección sobre el eje de los radios (que antes hemos denominado D) es un proceso de Poisson no homogéneo, de tasa integrada, para d ≤ d0, ∆ (d ) = d ∫0 λ ( u )du = πd 2 . 8 Por lo tanto, para generar los radios Di serían aplicables los algoritmos descritos en 1.2. El algoritmo condicional 1.2.2 es especialmente adecuado puesto que para este proceso estocástico la forma de la distribución condicionada (1.2) es d 2 ∆ (d ) = , 0 ≤ d ≤ d0 . ∆ ( d0 ) d0 Los radios generados se tendrían que complementar con componentes angulares generadas como θi = 2πRi , Ri ∼ U ( 0,1 ) . 2. Generación de procesos gausianos Uno de los procesos estocásticos con espacio de estados y parámetro continuo más importantes en las aplicaciones es el proceso {Xt}, donde para todo n y todo t1,…,tn, X = ( Xt , …, Xtn ) ∼ N ( µ n , Σn ) . Aunque los instantes t1,…,tn para 1 los que se desea generar una realización del proceso pueden corresponder a cualquier valor positivo, a menudo interesa el caso en el que son valores equiespaciados. Sin pérdida de generalidad se puede suponer que se pretende generar el caso µn = 0. Aparentemente, el problema sigue siendo el de generar vectores con distribución normal multivariante. Recordemos que los dos métodos principales son: 2.1. Método de Cholesky 1. Obtengamos la matriz L, triangular inferior, tal que Σn = L·L’, 2. generemos Z = (Z1,…,Zn) iid N(0,1), 3. finalmente, X = L·Z. Método condicional 2.2. Para la distribución normal multivariante, todas las distribuciones condicionales son también normales. En concreto, la matriz de varianzas-covarianzas de ( Xn +1 = Xt , …, Xtn , Xt 1 n +1 ) ∼ N ( 0, Σn +1 ) se puede expresar como: Σn +1 Σn = Σ1n Σ1' n . Σ11 9 Si ya se ha generado hasta el instante tn, es decir, se ha obtenido una realización xn = ( xt , …, x tn ) 1 de Xn ∼ N ( 0, Σn ) , se tiene la siguiente distribución condicionada Xt n +1 Xn = xn ∼ N ( Σ1n Σn−1xn , Σ11 − Σ1n Σn−1Σ1' n ) . Los dos métodos son equivalentes en el sentido de que producirían la misma secuencia de valores a partir de la misma secuencia de valores independientes generados según una N(0,1). En principio el método de Cholesky es más eficiente para n fijo, mientras que el método condicional permitiría generar una secuencia de longitud indefinida. En realidad el problema de la generación de procesos gausianos no coincide exactamente con el de generar vectores normales, como mínimo por dos razones: a) n puede ser muy grande; no solamente la velocidad puede ser un factor limitante, también puede serlo la memoria, al tener que almacenar y manipular matrices de varianzas-covarianzas enormes, b) sería deseable poder continuar fácilmente una serie de longitud n previamente generada. En principio ninguno de los dos métodos anteriores admite muchas mejoras. Pero aquí es donde puede ser decisiva la estructura precisa de la matriz de varianzas-covarianzas: en general no interesa simular un proceso con matriz cualquiera sino con una estructura concreta. El caso más interesante es el de un proceso estacionario, con matriz de correlaciones con estructura de Toeplitz: ρ1 ρ2 1 ρ 1 ρ 2 1 ρ1 ρ1 1 ρ3 … ρn −1 ρ ρ2 … n −2 ρ1 … especificada totalmente por el vector rn = (ρ1, ρ2,…,ρn). En este caso el algoritmo condicional se puede mejorar bastante puesto que: ( E Xt n +1 ( var Xt ) Xn = xn = − ( Wy ) xn n +1 ) Xn = xn = 1 + rn′ y donde 10 0 0 … 1 W = 0 1 0 … 1 0 … 0 n×n e y =− Σn−1rn son las soluciones de las ecuaciones de Yule-Walker, Σn y = −rn , obtenidas mediante el algoritmo de Durbin. Este algoritmo de generación no es muy eficiente pero tiene pocos requerimientos de memoria. A costa de un consumo mucho mayor de memoria, se convierte en un algoritmo rápido (en cuanto a tiempos marginales de generación, es decir, para generar los valores propiamente, sin contar el tiempo de inicialización) si se almacena previamente una matriz con todas las soluciones de las ecuaciones de Yule-Walker: y21 y31 y32 y 41 y 42 y 43 … 2.3. . Método de Fourier Este método requiere un tiempo de inicialización bastante grande pero es muy rápido marginalmente. Si expandimos el vector rn en el vector hN definido como h N = ( h0 = 1, h1 = ρ1, h2 = ρ2, …, ρn −2, ρn −1, ρn −2, …, hN −1 = ρ1 ) N = 2(n-1), y calculamos la transformada de Fourier g de este vector N −1 gk = ∑ h j exp ( 2πikj N ), k = 0, …, N − 1 j =0 (o, preferiblemente la transformada de Fourier rápida, FFT, que requiere que N sea una potencia de 2, N = 2l), podremos almacenar finalmente el vector φ= g de longitud N. Una vez superada la fase anterior de inicialización, el proceso de generación de la realización de tamaño n del proceso consiste en los siguientes pasos: a) Generamos un vector ZN consistente en N valores iid N(0,1). La transformada de Fourier discreta del vector ZN proporcionará el vector eN. b) Obtenemos una realización del proceso normal estacionario mediante 11 1 Xj = N 2.4. N −1 ∑ φkek exp ( k =0 ) 2πijk , 0 ≤ j ≤ n − 1. N Comparación de los métodos para generar procesos gausianos Los tres métodos expuestos en los puntos anteriores tienen sus ventajas y sus inconvenientes. En general se puede decir que cada investigador puede elegir entre ellos en función de sus necesidades y de su valoración de tres características: generalidad, eficiencia y estabilidad numérica. Si “–“ significa la peor valoración, “x” una valoración intermedia y “+” la mejor, los tres métodos estarían situados en la siguiente escala: Método generalidad eficiencia estabilidad Cholesky + − + Condicional + algoritmo de Durbin x x x Fourier − + − Bibliografía La sección dedicada a la generación de procesos de Poisson está basada, principalmente, en: Dagpunar, J. (1988). Principles of Random Variate Generation. Clarendon Press. Bratley, P., Fox, B.L. and Schrage, L.E. (1983). A Guide to Simulation. Springer-Verlag. La sección dedicada a la generación de procesos gausianos está basada en la monografía: Hauser, M.A., Hörmann, W. The Generation of Stationary Gaussian Time Series. Institut f. Statistik, Wien, Austria. 12