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]=xp−1exp[−x/α]αpΓ[p]x≥0
entonces el pdf condicional de en dado $ P_t = u es:Pt+1x
fPt+1|Pt[x|u]=1α(1−ρ)ρ(p−1)/2[xu](p−1)/2exp[−x+ρuα(1−ρ)]Ip−1[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?