Bây giờ tôi có câu trả lời cho câu hỏi này tôi đặt ra, nhưng nó dẫn tôi đến một câu hỏi khác.
Vì vậy, đầu tiên, giải pháp như sau:
Đối với Chuỗi Markov cố định có phân phối biên , hàm mật độ xác suất của tại được cho bởi:P t xΓ[α,p]Ptx
fPt[x]=xp−1exp[−x/α]αpΓ[p]x≥0
thì pdf có điều kiện của tại cho $ P_t = u là:Pt+1x
fPt+1|Pt[x|u]=1α(1−ρ)ρ(p−1)/2[xu](p−1)/2exp[−x+ρuα(1−ρ)]Ip−1[2ρxu√α(1−ρ)]
trong đó biểu thị chức năng Bessel đã sửa đổi. Điều này cung cấp Chuỗi Markov với phân phối biên gamma và cấu trúc tương quan AR trong đó là .Iνρ(1)ρ
Thông tin chi tiết về điều này được đưa ra trong một bài báo xuất sắc của David Warren, được xuất bản năm 1986 trên Tạp chí Thủy văn, "Skewness chảy ra trong các hồ chứa tuyến tính không theo mùa với dòng chảy phân phối gamma" (Tập 85, tr127-137; http: // www.scTHERirect.com/science/article/pii/0022169486900806# ).
Điều này thật tuyệt, vì nó trả lời câu hỏi ban đầu của tôi, tuy nhiên, các hệ thống tôi muốn đại diện với bản PDF này yêu cầu tạo ra chuỗi tổng hợp. Nếu các tham số hình dạng và tỷ lệ của phân phối lớn, thì điều này là đơn giản. Tuy nhiên, nếu tôi muốn các tham số nhỏ thì tôi không thể tạo ra một chuỗi với các đặc điểm phù hợp. Tôi đang sử dụng MATLAB để làm điều này và mã như sau:
% 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
Nếu tôi sử dụng số lượng lớn hơn nhiều cho các tham số phân phối gamma thì biên sẽ xuất hiện, nhưng tôi cần sử dụng các giá trị nhỏ. Bất kỳ suy nghĩ về cách tôi có thể làm điều này?