квантили сумм с использованием распределений копул слишком медленные

Попытка создать таблицу для квантилей суммы двух зависимых случайных величин с использованием встроенных распределений копул (Clayton, Frank, Gumbel) с бета-маргиналами. Пробовал Nrobability и 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,80 ГГц (MMA 8.0.4)

Чтобы получить квантиль суммы, используя

FindRoot[nProbClayton[q, 1/10] == 1/100, {q, 1, 0, 2}// Timing // Quiet

различными методами

( `Method -> Automatic`, `Method -> "Brent"`, `Method -> "Secant"` ) 

занимает около минуты, чтобы найти единственный квантиль: Время

{48.781, {q -> 0.918646}}
{50.045, {q -> 0.918646}}
{65.396, {q -> 0.918646}}

Для других комбинаций маргинальных комбинаций время немного лучше.

Потребность: любые хитрости / способы улучшения таймингов.

6
задан Dr. belisarius 12 November 2011 в 14:22
поделиться