ガンマ周辺分布と AR(1)係数を使用してマルコフ連鎖を作成する方法


8

合成時系列を生成したい。時系列は、ガンマ周辺分布と AR(1)パラメーターを持つマルコフ連鎖である必要があります。AR(1)モデルのノイズ項としてガンマ分布を使用するだけでこれを実行できますか、それともより高度なアプローチを使用する必要がありますか?ρ


AR(1)プロセスの定義を明確にすることができます。これは、タイトルに記載されている一般的な1次マルコフですか、それとも特定の形式の遷移を持つ1次マルコフですか?最初のケースでは、は1次の自己相関と見なされます。ρ
イブ

イヴありがとう。あなたと他のコメントのおかげで、私は問題の完全な解決策を持っていると思います。完全なソリューションを明日投稿する時間があるので、明日投稿します!
水文学者2017年

1
この質問がstats.stackexchange.com/q/180109/10479の重複であり、私自身の回答は@Glen_bの回答と多くの共通点があることに気づきました。ごめんなさい。
イヴ

回答:


3

確かにそうだと思うかもしれませんが(最初は私もそうでした)、ただし、AR(1)プロセスには新しいパラメーターがあるでしょう。形状とスケールについては、ます。書き込み。S G TΓ S G T = G T - E G TasgtΓ(a,s)g~t=gtE(gt)

次に、AR(1)はg_tで、はとしても記述できます および 思い出してください。AR(1)プロセスのプロパティによって、 および システムを解く2つのパラメーターのガンマ分布の最初の2つのモーメントの方程式を解くと、、および新しい形状パラメーターが得られます。、Y T = ρ Y T - 1 + G T Y 、T = E G T+ ρ Y T - 1 + G T E G T= A S V R G T= A S 2 E y t= a sgtyt=ρyt1+gt

yt=E(gt)+ρyt1+g~t
E(gt)=asVar(gt)=as2 VRYT=AS2
E(yt)=as1ρ
、Y、T、Y=EYT2/VRYTSY=VRYT/EYT
Var(yt)=as21ρ2
ytay=E(yt)2/Var(yt)sy=Var(yt)/E(yt)

ただし、が実際にことを示していないため、この引数は不完全です。基本的に、表現 をて、がこのような投稿を私が読んだこと(他の最近の回答も参照)は、これがガンマ変数ではないことを示唆しています。 Γ M A Y T = A SytΓMA()

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

そうは言っても、少しのシミュレーションは、このアプローチがかなり良い近似をもたらすことを示唆しています。

ここに画像の説明を入力してください

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))

@christophhankありがとう-これは本当に便利です。その間に他の誰かがチップを入れるかどうかを確認します!
水文学者

ありがとう。プロットはplot(grid,dgamma(grid,shape=shape.y,scale=scale.y), lwd=2, col="red", type = "l")lines(density(y), type="l", col="lightblue", lwd=2)実際には、nからのカーネル密度推定densityが大丈夫であるはずの非常に大きなであっても、不一致があることを示唆しています。
クリストフハンク

1
、ラプラス変換定常分布を満たすの。がシフトしたガンマに従う場合、はガンマ分布に従いません。は、確率質量が0の混合分布が必要です。yt=ρyt1+εtψ(s):=E[esy]ψ(s)/ψ(ρs)=E[esε]εtytε
イブ

私の推測よりも多くのドメイン知識をここで見るのは素晴らしいことです-私はそれに応じて私の答えを調整しました。
Christoph Hanck 2017年

3

これで、私が提起したこの質問への回答が得られましたが、それがさらなる質問につながります。

したがって、最初の解決策は次のとおりです。

静止マルコフ連鎖のため周辺分布の確率密度関数における次式で与えられます。Γ[α,p]Ptx

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

次に、$ P_t = uが指定されたでのの条件付き確率密度分布は次のとおりです。Pt+1x

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

ここで、は変更されたベッセル関数を示します。これにより、マルコフ連鎖にガンマ周辺分布、およびがであるAR相関構造が提供されます。Iνρ(1)ρ

この詳細については、1986年にJournal of Hydrologyに掲載されたDavid Warren著の優れた論文「ガンマ分布の流入を伴う非季節性線形貯水池における流出のゆがみ」(Volume 85、pp127-137; http:// www.sciencedirect.com/science/article/pii/0022169486900806#)。

これは私の最初の質問に答えるので素晴らしいですが、このPDFで表現したいシステムでは、合成シリーズを生成する必要があります。分布の形状とスケールパラメータが大きい場合、これは簡単です。ただし、パラメーターを小さくしたい場合は、適切な特性を持つシリーズを生成できません。私はこれを行うためにMATLABを使用しており、コードは次のとおりです:

% 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

ガンマ分布パラメータにはるかに大きな数を使用すると、限界がその場で出てきますが、小さな値を使用する必要があります。どうすればこれを行うことができますか?


条件付き分布ではなく、確率過程の表現を使用できます。ショットノイズプロセスを使用した任意のガンママージンを持つ1次マルコフチェーンのシミュレーションの例については、私の回答stats.stackexchange.com/a/289326/10479を参照してください。
Yvesは

@Yvesありがとうございます。周辺分布を使用する理由は、入力分布に関して出力系列の特定のプロパティ(分散、歪度、尖度)を導出できるためですが、条件付き分布からランダム入力を生成するのに苦労しています。私があなたのショットノイズモデルに従っていた場合、流出の派生統計は同じままですか?
水文学者2017

ショットノイズ(SN)の条件付き分布は、鞍点近似が提案されているため(クローズドフォームでは利用できない場合があります(ショットノイズ予測を使用したGoogle検索))。通常、このような近似は非常に優れています。SN表現には、引用した記事のように流入と流出は含まれませんが、指数ジャンプは、蒸発などによる連続的な損失のバランスをとる流入と見なすことができます。
Yvesは、

2

ガンママージンを含む一次マルコフプロセスを取得する方法はいくつかあります。このトピックに関する非常に優れた参考資料は、GK Grunwald、RJ Hyndman、およびLM Tedeskoによる論文です: AR(1)モデルの統合ビュー

ご覧のとおり、古典的な「イノベーション形式」は、マルコフ遷移を指定する最も簡単な方法ではありません、がランダムと見なされない限り。適切に選択された分布を使用します。ベータ版とガンマ 版では、ガンママージンを取得できます。yt=ϕyt1+εtp(yt|yt1)ϕϕεt

ガンママージンのある有名な連続時間AR(1)プロセスは、 指数関数ステップを含むショットノイズプロセスであり、水文学やポアソンプロセスに関連して広く使用されています。これは離散時間サンプリングでも使用でき、革新のために混合タイプの分布を持つランダム係数AR(1)として表示されます。


2

コピュラに触発されたアイデアは、ガウスAR(1)プロセスを変換することです。たとえば、 ここで、はで、、その結果の周辺分布新しいプロセスにここで、でありますガンマ分布の変位値関数とは、累積標準正規密度関数です。

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

結果のプロセスはマルコフプロパティがありますが、次のシミュレーションに示すように、部分自己相関関数は1より大きいラグに対してカットオフしないため、AR(1)にはなりません。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)

ここに画像の説明を入力してください

代わりに、適切な係数を使用してをAR(p)にする場合、おそらくをほぼAR(1)にすることができます。つまり、のパックが十分に小さくなるように次数と選択します。すべてのラグが1より大きい場合。ただし、プロセスはMarkovプロパティがなくなります。y t p ϕ 1ϕ p y t y txtytpϕ1,,ϕpytyt


すべてのコメントをありがとう-彼らは非常に感謝しています。あなたの思いやりのある投稿の結果として、私は解決策があると思います。タイプできるようになったら投稿します...
水文学者

系列は確かに1次のマルコフ連鎖であり、ガンママージンがあります(適切に開始された場合)。それは単に古典的なイノベーションの形をとらないだけです。私の目には、心配ではありません。理論上のPACFに標準の公式を使用すると、正規性の仮定に依存するため、誤解を招きます。yt
イヴ

1
@Yvesいいえ、pacfの通常の定義は正規性を想定しておらず、上記で定義されたを含むすべての共分散定常プロセスに適用されます。yt
Jarle Tufto 2017年

@JarleTufto +1そうそう、あなたは正しい。しかし、私はまだプロセスがマルコフであると信じています:サンプル PACFのプロパティは、プロットで指摘した問題を説明できますか?yt
イブ

1
@JarleTufto私は古典的であるがかなり微妙な落とし穴に惹かれました:とは()条件付き相関はありませんが、部分的な相関があります。したがって、ラグ2のPACFはゼロ以外にすることができます。y t 2 y t 1ytyt2yt1
Yves
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.