R错误:参数没有起始值

R错误:参数没有起始值,r,non-linear-regression,R,Non Linear Regression,非线性真实世界数据,n=2600 SAMPLE X values 71.33 74.98 80 85.35 90.03 Y values 119.17 107.73 99.72 75 54.59 我手动绘制了一个公式作为起点 formula: y = b/x^2+a manual: y = 800000/x^2-39.5 sum of residuals = 185 correlation forecast to actual =0.79 使用R

非线性真实世界数据,n=2600

SAMPLE 
X values    71.33   74.98   80  85.35   90.03
Y values    119.17  107.73  99.72   75  54.59
我手动绘制了一个公式作为起点

formula:  y = b/x^2+a
manual:   y = 800000/x^2-39.5
sum of residuals = 185
correlation forecast to actual =0.79 
使用R中的nls公式,我得到一条错误消息:

a_start = -39.5
b_start = 800000
m<-nls(y~b/(x^2)+a, start=list(a=a_start,b=b_start))

Error in nls(y~ b/(x^2) + a, start = list(a = a_start, b = b_start)) : 
parameters without starting value in 'data': y, x
a_start=-39.5
b_开始=800000

我可以重现你的错误<代码>nls
函数中缺少参数
数据

 m<-nls(y ~ b/(x^2)+a, start=list(a=a_start, b=b_start))
 # Error in nls(y ~ b/(x^2) + a, start = list(a = a_start, b = b_start)) : 
 # parameters without starting value in 'data': y, x
阅读公式手册页,了解绝缘表达式

?formula
公式的手册页上说

^运算符表示交叉到指定的程度。例如 (a+b+c)^2与(a+b+c)*(a+b+c)相同,后者依次扩展为a 包含a、b和c的主要影响及其影响的公式 二阶相互作用

它还建议使用
I()
来防止公式运算符和算术运算符之间的歧义

这里是另一个引用公式手册页

为了避免这种混淆,可以使用函数I()将这些 在模型公式中使用运算符的部分 算术意义。例如,在公式y~a+I(b+c)中 b+c应解释为b和c之和

此外,本手册页也值得一读

 ?AsIs
在函数公式中。在那里,它被用来禁止解释 运算符,如“+”、“-”、“*”和“^”作为公式运算符,因此 用作算术运算符。这被解释为一个符号 术语。公式


是的,非常完美,而且这些改变奏效了!我不是程序员,所以我发现一些R文档很难阅读,或者在这里寻找某些语法解决方案。
 ?AsIs