Я проводил анализ неопределенности в год 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')
и затем блокпост, чтобы получить окончательную нужную мне фигуру: пример блокпоста