在 R 中使用 nls 时,xy.coords 中的线函数出现错误

问题描述 投票:0回答:1

在 R 中使用 nls 时,xy.coords 中的线函数出现错误

我正在 R 中运行非线性回归,其初始输出看起来不错。但是,当我尝试使用线函数绘制值时,线函数本身会给出错误“xy.coords(x, y) 中的错误:'x' 和 'y' 长度不同”。 x 和 y 数据的长度是相同的,而且我知道它具体来自lines 函数,因为数据绘制但线没有绘制。如何正确绘制线条?

通常我的代码如下所示:

x = c(400,240,230,130,117,28)
y = c(0,15,35,85,110,135)
df = data.frame(x,y)

plot(x,y,ylim=rev(range(y)),ylab='y',xlab='x',las=1)
m=nls(x~Y0*exp(-a*y),data=df,start=list(Y0=415,a=0.015))

b=0:415
y=predict(m,list(x=b))
lines(b,y,type="l",col="blue")
m

我现在唯一的问题是线不会绘制(点会绘制)。回归本身也运行良好,但我想知道lines函数的上游是否有某些东西导致绘制回归线的错误。

r line nls
1个回答
0
投票

我怀疑你需要

list(y=b)
而不是
list(x=b)

您的

x
目标值(位于
nls
回归的左侧),
y
相关值(右侧),
predict
通常将其
newdata=
参数视为a因变量列表/框架。

df = data.frame(x = c(400,240,230,130,117,28), y = c(0,15,35,85,110,135))
m <- nls(x ~ Y0*exp(-a*y), data = df, start = list(Y0 = 415, a = 0.015))
b <- 0:415
ynew <- predict(m, list(y = b))
lines(b, ynew, type = "l", col = "blue")

© www.soinside.com 2019 - 2024. All rights reserved.