我想在R中使用健壮的非线性回归来拟合某些数据(nlrob)。但是,我认为这个问题对于非稳健和/或线性方法也应有效。
我编写了一个自定义函数,该函数返回因变量的值作为自变量加上一些额外参数的函数。我的问题是,对于每个“案例”,我可以有不同数量的额外参数。我该如何编码?
示例:
案例1
nlrob(y ~ f(x, p,p1),data = data1, start = c(p1 = 0 ))
案例2
nlrob(y ~ f(x,p, p1,p2,p3),data = data2, start = c(p1 = 0,p2 = 0,p3 = 0 ))
我应该如何编写函数f,使其可以接收并解析x,p和任意p *?如何编写nlrob行以使其起作用?换句话说,如何为任意数量的参数编写对nlrob和函数f的调用的通用行?
答案 0 :(得分:2)
系数可以是向量。例如,此处p
的{{1}}参数的长度可以为1或2:
f
例如,要与f <- function(x, p) if (length(p) == 1) p * x else p[1] * x + p[2]
nlrob(demand ~ f(Time, p), BOD, start = list(p = 1))
nlrob(demand ~ f(Time, p), BOD, start = list(p = 1:2))
一起使用,请定义method = "tau"
和upper
而不是lower
:
start