【发布时间】:2021-05-06 03:21:33
【问题描述】:
我有一个小的data base(txt 文件)。
我想在 R 中获得指数回归。
我使用的命令是:
regression <- read.delim("C:/Users/david/OneDrive/Desktop/regression.txt")
View(regression)
source('~/.active-rstudio-document', echo=TRUE)
m <- nls(DelSqRho ~ (1-exp(-a*(d-b)**2)), data=regression, start=list(a=1, b=1))
y_est<-predict(m,regression$d)
plot(x,y)
lines(x,y_est)
summary(m)
但是,当我运行它时,我得到一个错误:
Error in nls(DelSqRho ~ (1 - exp(-a * (d - b)^2)), data = regression, :
step factor 0.000488281 reduced below 'minFactor' of 0.000976562
我不知道如何解决,如何获得指数回归,请问有什么提示吗?
【问题讨论】:
-
... 在这种情况下,您可以通过拟合
start_m = lm(log(1/(1-DelSqRho)) ~ poly(d, 2, raw=TRUE), regression)(这是您的模型方程重新排列)并获取a = coef(start_m)[3]和b = sqrt(coef(start_m)[1]/coef(start_m)[3])来了解启动参数 -
@user20650 谢谢你的回答,但我没有得到正确的答案,我尝试了
start_m = lm(log(1/(1-DelSqRho)) ~ poly(d, 2, raw=TRUE), regression);;;;;; y_est<-predict(start_m,regression$DelSqRho),我得到了Error in eval(predvars, data, env) : numeric 'envir' arg not of length one
标签: r regression exponential nls