私は、フィッティングnlsを助け、特異行列にならない初期推定値を見つける必要があります。私はどんな助けにも大いに感謝します。 st
以下NLS Curve Fit特異行列エラー
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
おかげで、 Krina
あなたの数式は 'y〜1 /(1 + Epsup/x)^(Bup + Bdn)'と同じです。そのため、 'Bup + Bdn'しか推定できません。また同じです: 'y〜(1 + Epsup/x)^( - Bup-Bdn)' – jogo
Thsはhttp://stackoverflow.com/questions/34201377/r-and-nls-singular-gradientと同じ問題ではありません-matrix-at-initial-parameter。その問題では、問題は過大パラメータでした。この問題は、一般的に、 'Epsup = Epsdn'またはパラメータのいずれかが0に近い場合にのみオーバーパラメタ化されるわけではなく、' 1 + Epsup/x'と '1 + Epsdn/x 'は正のままである。したがって、そのような悪い領域から離れないように十分に良い値を見つけることができれば、解決することができます。 –