【发布时间】:2017-07-29 03:48:19
【问题描述】:
因为我想单独拥有 nls 模型,所以我在 geom_smooth 函数内部和 ggplot 外部对我的数据进行了拟合:
library(ggplot2)
set.seed(1)
data <- data.frame(x=rnorm(100))
a <- 4
b <- -2
data$y <- with(data, exp(a + b * x) + rnorm(100) + 100)
mod <- nls(formula = y ~ (exp(a + b * x)), data = data, start = list(a = a, b = b))
data$fit <- predict(mod, newdata=data)
plot <- ggplot(data, aes(x=x, y=y)) +
geom_point() +
geom_smooth(method = "nls", colour = "red", formula=y ~ exp(a + b * x),
method.args = list(start = c(a = a, b = b)), se=F, span=0) +
geom_line(aes(x=x, y=fit), colour="blue") +
scale_y_log10()
我只是想知道为什么这两种方法虽然具有相同的参数,却给出了不同的拟合? geom_smooth 是否使用了一些转换?
【问题讨论】:
-
是因为天秤吗?如果删除 +scale_y_log10(),线条看起来更相似。
-
可以,但结果仍然不相等,尽管输入相同。