如何找到适合非线性数据的起始值?

时间:2017-03-22 18:17:33

标签: r parameters estimation nonlinear-optimization

我正在尝试计算最佳地最小化非线性模型的最小二乘的两个参数(下面)。我已经在stackoverflow和其他地方搜索了一个很好的方法,但无济于事。

数据

x<-c(0.0, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 1.0);
y<-c(0,0.501766379,0.508975489, 0.531691175, 0.503410116, 0.539983481, 0.551075694, 0.695050048, 1);
data1 <- data.frame(x,y)

模型

y~(a*x^2+x*(1-x))/(a*x^2+2*x*(1-x)+b*(1-x)^2)

我微薄的努力

min.RSS <- function(data, par) {
with(data, sum((par[1]*x^2+x*(1-x))/(par[1]*x^2+2*x*(1-x)+par[2]*(1-x)^2)))
           }
result <- optim(par = c(0, 1), min.RSS, data = data1$y)

1 个答案:

答案 0 :(得分:0)

我使用nls函数计算出来了。我担心获得合适的起始值,但是我的担忧似乎没有根据,因为任何合理的起始值都有效。

解决方案:

m<-nls(y ~ (a*x^2+x*(1-x))/(a*x^2+2*x*(1-x)+b*(1-x)^2), start=list(a=1,b=.5))
beta <- coefficients(m)

这产生所需的参数(在对象“beta”中)。