使用自定义功能和参数拟合模型

时间:2018-07-07 08:36:34

标签: r generics parameters curve-fitting data-fitting

我想在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的调用的通用行?

1 个答案:

答案 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