анализ чувствительности к неопределенности с использованием пакета Pomp из латинского гиперкуба - PullRequest
0 голосов
/ 18 апреля 2020

Я проводил анализ неопределенности в год go, используя пакет Pomp. Цель состояла в том, чтобы количественно оценить влияние вариаций каждого используемого параметра на итоговую переменную (Rhv). Я объединил анализ неопределенности с помощью выборки из латинского гиперкуба (LHS) с анализом чувствительности с помощью надежного метода коэффициента корреляции с частичным рангом (PR CC).
Теперь, когда я пытаюсь обновить эту работу, она больше не работает. Я хотел бы помочь, если это возможно. Извините за длинный пост.

Пример:

##### 1.explain data
library(pomp)
AvgT <- c(19, 30)
b <- 0.0047 * AvgT + 0.0467
Bm <- c(0.37, 0.67)    
Bh <- c(0.17, 0.73)    
eta <- c(0,0.4)
teta <- c(0.1, 0.57)
gammaH <- c(1/8, 1/3)
gammaHl <- c(1/6, 1/4)
gammav <- c(1/10, 1/7)
Ml <- c(0, 200.104)
Hl <- c(0.1352, 30.1182)
c <- c(0.1, 0.3)
muv <- c(1/30,1/3)

##### 2.do the Latin hypercube sampling method to generate 100 000samples
scalars1 <- sobol(vars=list(b = b, Bm = Bm, Bh = Bh,
                            eta = eta, teta = teta, c = c, muv = muv,
                            gammaH = gammaH, gammaHl = gammaHl, gammav = gammav,
                            Ml = Ml, Hl = Hl, AvgT = AvgT), 
                  1e+05)

Я получил это сообщение, хотя оно отлично работало год go. Я знаю, что пакет Pomp был обновлен.

Ошибка в sobol (vars = list (b = b, Bm = Bm, Bh = Bh, eta = eta, teta = teta,: не удалось найти функция "sobol"

Обычно после этого я выполняю:

##### 3.create the function
Rhv <- function(b, Bm, Bh, eta, teta, c, gammaH, gammaHl, gammav, muv,
               Ml, Hl, AvgT) {
  sqrt((((b * b * eta * Bm * Bh * ((Ml * c) / (Hl)) * teta) * (1 / gammaH * 1 / muv))
        + ((b * b * Bm * Bh * ((Ml * c) / Hl) * teta) * (1 / gammaHl * 1 / muv))) *
       ((1 / gammav) / (((1 / gammav + 1 / muv)))))
  }
##### 4. do.call allows to call function with names as list 
vals1<- do.call(Rhv, scalars1)

##### 5. bind the columns with scalars results and R0
Both1 <- cbind(scalars1, Rhv=vals1)
head(Both1)
[example data Both1][1]

#####6.PRCC analysis
library('epiR')

и затем блокпост, чтобы получить окончательную нужную мне фигуру: пример блокпоста

1 Ответ

0 голосов
/ 20 апреля 2020

sobol как отдельная функция была удалена из пакета pomp лет a go с версией 0.65-1. Вместо этого вы должны использовать функцию sobolDesign.

Проверить онлайн-справку (?pomp::sobolDesign) или pomp виньетка пакета раздел design.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...