CDF копулы Клейтона-Парето с параметром c
можно рассчитать в соответствии с
cdf[c_] := Module[{c1 = CDF[BetaDistribution[8, 2]]},
(c1[#1]^(-1/c) + c1[#2]^(-1/c) - 1)^(-c) &]
Тогда cdf[c][t1,t2]
- это вероятность того, что x<=t1
и y<=t2
. Это означает, что вы можете рассчитать вероятность того, что x+y<=t
в соответствии с
prob[t_?NumericQ, c_?NumericQ] :=
NIntegrate[Derivative[1, 0][cdf[c]][x, t - x], {x, 0, t}]
Время, которое я получаю на своей машине,
prob[1.9, .1] // Timing
(* ==> {0.087518, 0.939825} *)
Обратите внимание, что я получаю другое значение для вероятности, чем в оригинальном сообщении. Однако выполнение nProbClayton[1.9,0.1]
выдает предупреждение о медленной конвергенции, что может означать, что результат в исходном сообщении отключен. Кроме того, если я изменю x+y<=t
на x+y>t
в исходном определении nProbClayton
и вычислю 1-nProbClayton[1.9,0.1]
, я получу 0.939825
(без предупреждений), что соответствует результату, описанному выше.
За квантиль суммы я получаю
FindRoot[prob[q, .1] == .01, {q, 1, 0, 2}] // Timing
(* ==> {1.19123, {q -> 0.912486}} *)
Опять же, я получаю результат, отличный от того, что был в оригинальном сообщении, но аналогично предыдущему, меняя x+y<=t
на x+y>t
и вычисляя FindRoot[nProbClayton[q, 1/10] == 1-1/100, {q, 1, 0, 2}]
, возвращает то же значение для q
, что и выше.