Рассчитать 95% ДИ вокруг предсказанных подогнанных значений из сгруппированной модели NLS в R - PullRequest
0 голосов
/ 04 апреля 2020

Этот вопрос похож на пост Как рассчитать 95% интервал прогнозирования из nls , но в этом случае у меня есть сгруппированный объект nls. Изменение примера из связанного поста:

x <- seq(0, 4, 0.1)
y1 <- (x * 2 / (0.2 + x))
y <- y1 + rnorm(length(y1), 0, 0.2)

d1 <- data.frame(x, y, group = "one")
d2 <- data.frame(x, y = y + 2, group = "two")
d_all <- rbind(d1, d2)

#make the term v vary between group by adding [group]
mymodel <- nls(y ~ v[group] * x / (k + x),
               start = list(v = c(1.9, 1.9), k = 0.19),
               data = d_all)

Следуя примеру из гл. 8 из книги Нелинейная регрессия в R . Вы можете использовать методgnast.nls для прогнозирования подгоночных значений, указав «группу» вместе с фиктивными значениями x в newdata, поэтому прогноз знает, какой параметр 'v' использовать в предсказаниях:

#showing example just to predict fitted values for group 'one'
new_x <- with(d_all, seq(min(x), max(x), length.out = 100))
one <- factor("one", levels = c("one", "two"))
newdata_one <- data.frame(x = new_x, group = one)
predict_one <- predict(mymodel,  newdata = newdata_one)

Это работает для получения предсказанных подогнанных значений, но в настоящее время Предикат.nls не поддерживает доверительные интервалы. Итак, из связанного поста я попробовал такой же подход с investr :: predFit (), а также с функциейgnastNLS ()

investr::predFit(mymodel, newdata = newdata_one, interval="confidence")
#Error in eval(form[[3]]) : object 'v' not found

propagate::predictNLS(mymodel, newdata = newdata_one, interval = "confidence")
#Error in names(DAT) <- c(names(COEF), predVAR) : 
#'names' attribute [6] must be the same length as the vector [5]

Я предполагаю, что эти функции не поддерживают сгруппированные объекты NLS этого стиля, как и прогноз .nls делает. Для случая ошибки predFit - это правильно, в сводке оценочных параметров объектов nls нет параметра 'v', но есть 'v1' и 'v2', соответствующие оценкам этого параметра для каждой группы. Предложения / альтернативные подходы для построения доверительных интервалов вокруг предсказанных подогнанных значений для сгруппированных объектов NLS, как это?

...