R错误:参数没有起始值
非线性真实世界数据,n=2600R错误:参数没有起始值,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
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