У меня есть следующие dataframe:как получить geom_smooth для функции NLS assymptote с помощью SSasympOff
df1<- structure(list(Site = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("ALT01"), class = "factor"), Nets = 1:18, Cumulative.spp = c(12L,13L, 15L, 17L, 17L, 17L, 17L, 19L, 19L, 19L, 19L, 20L, 22L, 22L, 22L, 22L, 22L, 22L)), .Names = c("Site", "Nets", "Cumulative.spp"), row.names = c(NA, 18L), class = "data.frame")
, и я пытаюсь получить ggplot2 сюжет с ответом geom_smooth этой функции:
Model1<-nls(Cumulative.spp ~ SSasympOff(Nets, A, lrc, c0), data = df1)
как правило, если у меня была модель так:
Model2 <- lm(Cumulative.spp ~ I(log(Nets), data = df1)
Я попробовал два метода
Метод 1
Я хотел бы сделать это:
library(ggplot2)
ggplot(df1, aes(x=Nets, y = Cumulative.spp)) + geom_point() + geom_smooth(method="lm", formula=y~log(x), fill="blue", fullrange=T)
, но когда я пытаюсь сделать то же самое с assymptote он не работает:
ggplot(df1, aes(x=Nets, y = Cumulative.spp)) + geom_point() + geom_smooth(method="nls", formula=y~SSasympOff(x, A, lrc, c0), color="blue", fullrange=T)
, но я получил эту ошибку и этот участок:
Warning message:
Computation failed in `stat_smooth()`:
$ operator is invalid for atomic vectors
Method2
Я попытался прогнозирования по сравнению с первоначальным dataframe, чтобы получить доверительный интервал и с помощью geom_line
над предсказанными значениями и geom_ribbon
на интервале, но когда я делаю
predict(Model1, df1, interval = "confidence")
, но я не получаю доверительный интервал, только t он предсказал значение
любой помощи будет оценен
Почему не просто добавьте предсказанные значения, используя 'geom_line', а затем интервал, используя' geom_ribbon'? – bouncyball
hi @bouncyball Я пытался это сделать, но я не получаю интервал, я пробовал «предсказать (Model1, df1, interval =« доверие »)' как то, что я нашел в документации 'predict.nls', но это не дает мне доверительный интервал, я добавлю это к тому, что я пробовал в вопросе. –
, возможно, вы можете использовать метод bootstrap percentile, тогда ... не понимали, что получение доверительных интервалов будет настолько сложным с 'nls'. Моя ошибка – bouncyball