R nls指数曲线
R nls exponential curve
我有两个向量 X 和 y2,我希望对数据拟合指数曲线。
我尝试了 Stack Overflow 主题中描述的许多方法,但所有方法都只给我一条直线。例如我试过这个:
model.three <- lm(log(y2) ~ log(X))
plot(X,predict(model.three))
abline(model.three)
我的数据:
X <- seq(1:50)
Y <- rnorm(50,mean=0,sd=1)
y2 <- exp(X)
y2 <- Y+y2
这是您要找的吗?
model.three <- lm(log(y2) ~ log(X))
plot(X,predict(model.three))
## Instead of abline(), use this:
lines(model.three$fitted.values)
您的数据表达了 Y 和 X 之间的指数关系,即 Y = exp(X) + eps
,其中 eps
是一些噪音。
因此,我建议在 log(Y)
和 X
之间拟合一个模型,以捕捉两者之间的线性关系:
model.three <- lm(log(y2) ~ X)
summary(model.three)
摘要确认捕获的关系符合预期(即 X 的系数非常接近 1)。
由于在线性尺度上绘制数据没有用,我认为用 abline
绘制拟合直线是个好主意。
注意:准确地说,捕获 y2 和 exp(X) 之间的关系会更准确,但根据您的数据,拟合基本上是完美的。
我有两个向量 X 和 y2,我希望对数据拟合指数曲线。
我尝试了 Stack Overflow 主题中描述的许多方法,但所有方法都只给我一条直线。例如我试过这个:
model.three <- lm(log(y2) ~ log(X))
plot(X,predict(model.three))
abline(model.three)
我的数据:
X <- seq(1:50)
Y <- rnorm(50,mean=0,sd=1)
y2 <- exp(X)
y2 <- Y+y2
这是您要找的吗?
model.three <- lm(log(y2) ~ log(X))
plot(X,predict(model.three))
## Instead of abline(), use this:
lines(model.three$fitted.values)
您的数据表达了 Y 和 X 之间的指数关系,即 Y = exp(X) + eps
,其中 eps
是一些噪音。
因此,我建议在 log(Y)
和 X
之间拟合一个模型,以捕捉两者之间的线性关系:
model.three <- lm(log(y2) ~ X)
summary(model.three)
摘要确认捕获的关系符合预期(即 X 的系数非常接近 1)。
由于在线性尺度上绘制数据没有用,我认为用 abline
绘制拟合直线是个好主意。
注意:准确地说,捕获 y2 和 exp(X) 之间的关系会更准确,但根据您的数据,拟合基本上是完美的。