組み込みのコピュラ分布 (Clayton、Frank、Gumbel) とベータ周辺分布を使用して、2 つの従属確率変数の合計の分位数のテーブルを作成しようとしています。さまざまな方法を試しNProbability
てみましたが、FindRoot
十分に高速ではありません。私が調査する必要があるコピュラ周辺の組み合わせの例は次のとおりです。
nProbClayton[t_?NumericQ, c_?NumericQ] :=
NProbability[ x + y <= t, {x, y} \[Distributed]
CopulaDistribution[{"Clayton", c}, {BetaDistribution[8, 2],
BetaDistribution[8, 2]}]]
を使用した数値確率の単一評価の場合
nProbClayton[1.9, 1/10] // Timing // Quiet
私は得る
{4.914, 0.939718}
Vista 64bit Core2 Duo T9600 2.80GHz マシン (MMA 8.0.4) 上
合計の分位数を取得するには、次を使用します
FindRoot[nProbClayton[q, 1/10] == 1/100, {q, 1, 0, 2}// Timing // Quiet
いろいろな方法で
( `Method -> Automatic`, `Method -> "Brent"`, `Method -> "Secant"` )
1 つの分位点を見つけるのに約 1 分かかります。タイミングは次のとおりです。
{48.781, {q -> 0.918646}}
{50.045, {q -> 0.918646}}
{65.396, {q -> 0.918646}}
他のコピュラ周辺の組み合わせの場合、タイミングはわずかに良くなります。
必要: タイミングを改善するためのトリック/方法。