Как сложить два зависимых логнормальных распределений в R - PullRequest
0 голосов
/ 13 января 2020

Я с трудом нахожу правильный способ суммирования многих логнормальных распределений, которые связаны между собой. Мои дистрибутивы моделируют разные неопределенные выбросы газа.

Я знаю их среднее значение, процентную неопределенность (определяющую 95% ДИ) и их логарифмическое распределение. Например, если у меня было только два:

Emi1 = 12 ± 90%; Emi2 = 20 ± 120%

Я бы сделал:

Emi1 <- rlnorm(10000, meanlog=12, sdlog=12*0.9)
Emi2 <- rlnorm(10000, meanlog=20, sdlog=20*1.2) 

верно?

Теперь я строю ковариационную матрицу, следуя определению:

Emi <- cbind(Emi1, Emi2)
M_mean <- matrix(data=1, nrow=10000) %*% c(12,20)
D <- Emi - M_mean # offset the mean
C <- (nrow(Emi)-1)^-1 *t(D) %*% D # covariance matrix

Теперь я выберу два распределения для учета их ковариации:

Emi_sum_prep <- rlmvnorm (n=10000, mu=c(12,20), Sigma= C) # rlmvnorm from package ‘dmutate’

Если бы мне удалось вычислить Emi_sum_prep, то для вычисления суммы двух выбросов с зависимой неопределенностью я бы сделать:

sum    <- rowSums(Emi_sum_prep)

и окончательное распределение:

quantile(sum, probs=c(0, 0.05, 0.95, 0.5))

пока я застрял на Emi_sum_prep:

  1. Не уверен, что значения mu и Sigma, которые я передам rlmvnorm;

  2. Из-за очень большой неопределенности, я получил много Inf в моем выводе. Есть идеи как это исправить?

Спасибо за любые предложения

...