Sometimes when I try to fit a model to data using the gnls function,
it doesn't return optimized values of the model parameters. Instead
it just returns the exact same values I used as initial guesses, but
with standard errors calculated. Example is as follows:
two_site_mHb <- gnls(y ~ (CS_AH2 + CS_AH1*10^(n1*(x-pKa1)) + CS_A_*10^
((n1+1)*x-n1*pKa1-pKa2)) / (1 + 10^(n1*(x-pKa1)) + 10^((n1+1)*x-
n1*pKa1-pKa2)), start=list(CS_AH2=y[1], CS_A_=y[length(y)], CS_AH1=y
[length(y)/2], pKa1=3.3, pKa2=5.9, n1=1.5))
and the results are:
Generalized nonlinear least squares fit
Model: y ~ (CS_AH2 + CS_AH1 * 10^(n1 * (x - pKa1)) + CS_A_ * 10^
((n1 + 1) * x - n1 * pKa1 - pKa2))/(1 + 10^(n1 * (x - pKa1)) +
10^((n1 + 1) * x - n1 * pKa1 - pKa2))
Data: NULL
AIC BIC logLik
-112.2501 -105.6390 63.12505
Coefficients:
Value Std.Error t-value p-value
CS_AH2 8.390 0.0081958 1023.6969 0
CS_A_ 8.629 0.0051456 1676.9804 0
CS_AH1 8.663 0.0085524 1012.9321 0
pKa1 3.300 0.0443557 74.3985 0
pKa2 5.900 0.4938263 11.9475 0
n1 1.500 0.2288179 6.5554 0
Correlation:
CS_AH2 CS_A_ CS_AH1 pKa1 pKa2
CS_A_ -0.044
CS_AH1 -0.288 0.179
pKa1 0.436 0.083 0.413
pKa2 0.179 -0.504 -0.681 -0.295
n1 0.641 -0.095 - 0.585 0.065 0.373
Standardized residuals:
Min Q1 Med Q3 Max
-1.85468073 -0.10985684 0.05285202 0.45446735 1.81225021
Residual standard error: 0.01055068
Degrees of freedom: 19 total; 13 residual
Any thoughts as to why it's just spitting back the initial guesses,
and how it might be avoided? Thanks.
-Brian Doctrow
[[alternative HTML version deleted]]