Я с трудом нахожу правильный способ суммирования многих логнормальных распределений, которые связаны между собой. Мои дистрибутивы моделируют разные неопределенные выбросы газа.
Я знаю их среднее значение, процентную неопределенность (определяющую 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
:
Не уверен, что значения mu и Sigma, которые я передам rlmvnorm
;
Из-за очень большой неопределенности, я получил много Inf
в моем выводе. Есть идеи как это исправить?
Спасибо за любые предложения