[R] argument "x" is missing in minpack.lm
Ivan Krylov
kry|ov@r00t @end|ng |rom gm@||@com
Wed Jul 1 15:42:46 CEST 2020
On Wed, 1 Jul 2020 15:24:35 +0200
Luigi Marongiu <marongiu.luigi using gmail.com> wrote:
>You are right: The vector X is actually Y -- the response I would like
>to fit the curve upon. I understood I should fit nls.lm with a
>function that describes the data (Holling or Gomperz), initial
>parameters, and the actual values (Y). In return, I get the optimized
>values for the parameters. But when I re-run the function that
>describes the data with the optimized parameters, I get values close
>to zero.
The function to be minimized should have access to all three: the
parameters to optimize, the independent and dependent variable values.
Only then there is enough information to compute residuals and minimise
their sum of squares.
holly <- function(p, x, y) (p$a * x^2) / (p$b^2 + x^2) - y
# residuals = y.hat(x, params) - y.actual
O <- nls.lm(par = list(a = 3261, b = 10), fn = holly, x = X, y = Y)
summary(O)
# Parameters:
# Estimate Std. Error t value Pr(>|t|)
# a 4380.4979 106.8144 41.01 <2e-16 ***
# b 30.3779 0.9995 30.39 <2e-16 ***
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 157.5 on 58 degrees of freedom
# Number of iterations to termination: 7
# Reason for termination: Relative error in the sum of squares is at
# most `ftol'.
In our previous examples we ended up asking R to minimise y.hat(x)
calculated at wrong x values instead of minimising residuals.
--
Best regards,
Ivan
More information about the R-help
mailing list