Cómo crear una cadena de Markov con distribución marginal gamma y coeficiente AR (1) de


8

Quiero generar una serie temporal sintética. La serie temporal debe ser una cadena de Markov con una distribución marginal gamma y un parámetro AR (1) de . ¿Puedo hacer esto simplemente usando una distribución gamma como término de ruido en un modelo AR (1), o necesito usar un enfoque más sofisticado?ρ


La definición de un proceso AR (1) podría aclararse: ¿es este un Markov general de primer orden como está escrito en el título o un Markov de primer orden con una forma específica de transición? En el primer caso, se consideraría como la autocorrelación de primer orden. ρ
Yves

Gracias Yves Creo que tengo una solución completa al problema, gracias a los suyos y otros comentarios a continuación. ¡Publicaré la solución completa mañana cuando haya tenido tiempo de escribirla!
hidrólogo

1
Me acabo de dar cuenta de que esta pregunta es un duplicado de stats.stackexchange.com/q/180109/10479 y que mi propia respuesta tenía mucho en común con la de @Glen_b. Lo siento.
Yves

Respuestas:


3

Uno podría adivinar (también lo hice inicialmente) que sí, pero que el proceso AR (1) tendrá nuevos parámetros. Para la forma y la escala , y mucho . Escriba .asgtΓ(a,s)g~t=gtE(gt)

Entonces, un proceso AR (1) en , también puede escribirse como Recuerde y . Por propiedades de los procesos AR (1), y Resolviendo el sistema de ecuaciones de los dos primeros momentos de una distribución gamma para sus dos parámetros produce nuevos parámetros de forma de , y .gtyt=ρyt1+gt

yt=E(gt)+ρyt1+g~t
E(gt)=asVar(gt)=as2
E(yt)=as1ρ
Var(yt)=as21ρ2
ytay=E(yt)2/Var(yt)sy=Var(yt)/E(yt)

Sin embargo, este argumento es incompleto ya que no muestra que sea ​​de hecho . Básicamente, anote el representación de modo que puede ser visto como una serie ponderada de gamma rvs degradados Mi lectura de publicaciones como esta (ver también las otras respuestas más recientes) sugiere que esta no es una variante gamma.ytΓMA()

yt=as1ρ+j=0ρjg~t,
yt

Dicho esto, una pequeña simulación sugiere que el enfoque produce una aproximación bastante buena:

ingrese la descripción de la imagen aquí

n <- 50000

shape.u <- 2
scale.u <- 1
u <- rgamma(n,shape=shape.u,scale=scale.u)

rho <- 0.75
y <- arima.sim(n=n, list(ar=rho), innov = u)
hist(y, col="lightblue", freq = F, breaks = 40)

(Theoretical.mean <- shape.u*scale.u/(1-rho))
mean(y)
(Theoretical.Variance <- shape.u*scale.u^2/(1-rho^2))
var(y)

shape.y <- Theoretical.mean^2/Theoretical.Variance
scale.y <- Theoretical.Variance/Theoretical.mean

grid <- seq(0,15,0.05)  
lines(grid,dgamma(grid,shape=shape.y,scale=scale.y))

Gracias @christophhank, esto es realmente útil. ¡Veré si alguien más interviene mientras tanto!
hidrólogo

Gracias. El trazado plot(grid,dgamma(grid,shape=shape.y,scale=scale.y), lwd=2, col="red", type = "l")y, lines(density(y), type="l", col="lightblue", lwd=2)sin embargo, sugiere que existe una discrepancia incluso para los muy grandes n, cuando el estimador de densidad del núcleo densitydebería estar bien.
Christoph Hanck

1
Con , la transformada de Laplace de la distribución estacionaria satisface . Cuando sigue una gamma desplazada, no sigue una distribución gamma. Se requiere una distribución mixta con masa de probabilidad en 0 para . yt=ρyt1+εtψ(s):=E[esy]ψ(s)/ψ(ρs)=E[esε]εtytε
Yves

Es genial ver más conocimiento de dominio aquí de lo que creo, adapté mi respuesta en consecuencia.
Christoph Hanck

3

Ahora tengo la respuesta a esta pregunta que planteé, pero me lleva a otra pregunta.

Entonces, primero, la solución es la siguiente:

Para una cadena de Markov estacionaria con una distribución marginal , la función de densidad de probabilidad de en viene dada por:Γ[α,p]Ptx

fPt[x]=xp1exp[x/α]αpΓ[p]x0

entonces el pdf condicional de en dado $ P_t = u es:Pt+1x

fPt+1|Pt[x|u]=1α(1ρ)ρ(p1)/2[xu](p1)/2exp[x+ρuα(1ρ)]Ip1[2ρxuα(1ρ)]

donde denota la función Bessel modificada. Esto proporciona una cadena de Markov con una distribución marginal gamma y una estructura de correlación AR donde es .Iνρ(1)ρ

Más detalles sobre esto se dan en un excelente artículo de David Warren, publicado en 1986 en el Journal of Hydrology, "Flujo de salida en depósitos lineales no estacionales con entradas distribuidas gamma" (Volumen 85, pp127-137; http: // www.sciencedirect.com/science/article/pii/0022169486900806# ).

Esto es genial, porque responde a mi pregunta inicial, sin embargo, los sistemas que quiero representar con este PDF requieren la generación de series sintéticas. Si los parámetros de forma y escala de la distribución son grandes, entonces esto es sencillo. Sin embargo, si quiero que los parámetros sean pequeños, no puedo generar una serie con las características apropiadas. Estoy usando MATLAB para hacer esto y el código es el siguiente:

% specify parameters for distribution
p = 0.05;
a = 0.5;

% generate first value
u = gamrnd(p,a);

$ keep a version of the margins pdf
x = 0.00001:0.00001:6;

f = (x.^(p-1)).*(exp(-x./a))./((a.^p).*gamma(p));

% specify the correlation structure
rho = 0.5;

% store the first value
input(1,1) = u;

% generate 999 other cvalues using the conditional distribution
for i = 2:1:999

    i
    z = (2./(a.*(1-rho))).*sqrt(rho.*x.*u);

    PDF = (1./a).*(1./(1-rho)).*(rho.^(-(p-1)./2)).*((x./u).^((p-1)./2)).*...
           exp(-(x+rho.*u)./(a.*(1-rho))).*besseli(p-1,z);

    ycdf = cumsum(PDF,'omitnan')/sum(PDF,'omitnan');

    rn = rand;
    u = x(find(ycdf>rn,1));
    input(i,1) = u;

end

Si utilizo números mucho más grandes para los parámetros de distribución gamma, entonces el marginal sale bien, pero necesito usar valores pequeños. ¿Alguna idea sobre cómo puedo hacer esto?


Podría usar la representación del proceso estocástico en lugar de la distribución condicional. Consulte mi respuesta stats.stackexchange.com/a/289326/10479 para ver un ejemplo de simulación de una cadena de Markov de primer orden con un margen gamma arbitrario utilizando un proceso de ruido de disparo.
Yves

Gracias @Yves. La razón por la que quiero usar la distribución marginal es porque puedo derivar propiedades específicas de la serie de salida (varianza, asimetría y curtosis) en términos de la distribución de entrada, pero estoy luchando para generar la entrada aleatoria de la distribución condicional. Si siguiera su modelo de ruido de disparo, ¿las estadísticas derivadas para la salida seguirían siendo las mismas?
hidrólogo

La distribución condicional para el ruido de disparo (SN) podría no estar disponible en forma cerrada ya que se han propuesto aproximaciones de punto de referencia (Google busca con ruido de disparo y predicción ); tales aproximaciones suelen ser muy buenas. La representación SN no implica entradas y salidas como en el artículo que citó, pero los saltos exponenciales pueden considerarse entradas que equilibran una pérdida continua, por ejemplo, debido a la evaporación.
Yves

2

Hay varias formas de obtener un proceso de Markov de primer orden con márgenes gamma. Una muy buena referencia sobre este tema es el artículo de GK Grunwald, RJ Hyndman y LM Tedesko: una visión unificada de los modelos AR (1) .

Como verá, la clásica "forma de innovación" no es la forma más fácil de especificar la transición de Markov , a menos que se tome como aleatorio. Usando distribuciones bien elegidas; Beta para y Gamma para , se puede obtener un margen gamma.yt=ϕyt1+εtp(yt|yt1)ϕϕεt

Un famoso proceso AR (1) de tiempo continuo con margen Gamma es el proceso de ruido de disparo con pasos exponenciales, ampliamente utilizado, por ejemplo, en hidrología y relacionado con el proceso de Poisson. Esto también se puede usar con un muestreo de tiempo discreto, luego aparece como un coeficiente aleatorio AR (1) con distribución de tipo mixto para la innovación.


2

Una idea inspirada en la cópula sería transformar un proceso AR gaussiano (1), digamos donde es donde tal que la distribución marginal de a un nuevo proceso donde es La función cuantil de la distribución gamma y es la función de densidad normal estándar acumulativa.

xt=ϕ1xt1+wt
wtN(0,σw2)σw2=1ϕ2xtN(0,1)yt=F1(Φ(xt);a,s))F1Φ

Si bien el proceso resultante tendría la propiedad de Markov, no sería AR (1), sin embargo, ya que su función de autocorrelación parcial no se corta para retrasos mayores que 1 como se ve en la siguiente simulación:yt

phi <- .5
x <- arima.sim(model=list(ar=phi),n=1e+6,sd=sqrt(1-phi^2))
y <- qgamma(pnorm(x), shape=.1)
par(mfrow=c(2,1))
acf(y)
pacf(y)

ingrese la descripción de la imagen aquí

Si, por el contrario, dejamos que sea ​​AR (p) con coeficientes adecuados, entonces quizás pueda hacerse aproximadamente AR (1), es decir, elija el orden y modo que el pacf de sea ​​lo suficientemente pequeño para todos los rezagos superiores a 1. Pero ahora el proceso ya no tendría la propiedad Markov.xtytpϕ1,,ϕpytyt


Gracias por todos sus comentarios, son muy apreciados. Como resultado de sus reflexivas publicaciones, creo que tengo una solución, que publicaré una vez que pueda escribirla ...
hidrólogo

La serie es de hecho una cadena de Markov de primer orden y tiene un margen gamma (si se inició adecuadamente). Simplemente no toma la forma clásica de innovación, a mis ojos, no es una preocupación. Usar la fórmula estándar para el PACF teórico es engañoso porque se basa en el supuesto de normalidad, que ya no se cumple aquí. yt
Yves

1
@Yves No, la definición habitual de pacf no asume la normalidad, se aplica a cualquier proceso estacionario de covarianza, incluido como se definió anteriormente. yt
Jarle Tufto

@JarleTufto +1 Oh sí, tienes razón. Sin embargo, sigo creyendo que el proceso es Markov: ¿podrían las propiedades de la muestra PACF explicar el problema que señaló en la trama? yt
Yves

1
@JarleTufto Me atrajo una trampa clásica pero bastante sutil: e no tienen correlación condicional (en ) pero tienen correlación parcial . Por lo tanto, el PACF para el retraso 2 puede ser distinto de cero. ytyt2yt1
Yves
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.