【发布时间】:2017-07-19 13:45:26
【问题描述】:
我需要帮助来拟合 nls 并找到不会导致奇异矩阵的初始估计。我将非常感谢任何帮助。
via_data$Concentration <- c(0.197, 0.398, 0.792, 1.575,
3.154, 6.270, 12.625, 25.277,
25.110, 49.945, 74.680)
via_data$Viability <- c(100, 94.62, 96.21, 87.53,
80, 62.22, 39.11,
30.80, 30, 22, 2.56)
x <- via_data$Concentration
y <- via_data$Viability
fit <- nls(y ~((1/(1+Epsup/x)^Bup)*(1/(1+Epsdn/x)^Bdn)), start=list(Epsup=0, Bup=1, Epsdn=10, Bdn=-5), trace=T)
Error in nlsModel(formula, mf, start, wts) :
singular gradient matrix at initial parameter estimates
谢谢, 克里纳
【问题讨论】:
-
您的公式与
y ~ 1/(1+Epsup/x)^(Bup+Bdn)相同,因此您只能估计Bup+Bdn。同样相同:y ~ (1+Epsup/x)^(-Bup-Bdn) -
这和stackoverflow.com/questions/34201377/… 不是同一个问题。在那个问题中,问题是过度参数化。这个问题通常不会过度参数化,但只有在
Epsup = Epsdn或任何参数接近零的情况下,以及我们必须确保1+Epsup/x和1+Epsdn/x保持正数的问题。因此,如果我们能找到足够好的起始值以远离这些糟糕的区域,它就可以解决......
标签: r curve-fitting nls