Sorry for the typo, but I have the same error if using b instead of h: ``` > O = mle2(minuslogl = holling, start = list(a = A, b = B)) > Error in minuslogl(a = 3261, b = 10) : argument "x" is missing, with no default # let's add x X = c(8, 24, 39, 63, 89, 115, 153, 196, 242, 287, 344, 408, 473, 546, 619, 705, 794, 891, 999, 1096, 1242, 1363, 1506, 1648, 1753, 1851, 1987, 2101, 2219, 2328, 2425, 2575, 2646, 2698, 2727, 2771, 2818, 2853, 2895, 2926, 2964, 2995, 3025, 3053, 3080, 3102, 3119, 3141, 3152, 3159, 3172, 3182, 3196, 3209, 3220, 3231, 3239, 3246, 3252, 3261) O = mle2(minuslogl = holling, start = list(a = A, b = B, x = X)) Error in mle2(minuslogl = holling, start = list(a = A, b = B, x = X)) : some named arguments in 'start' are not arguments to the specified log-likelihood function ``` And even if I use the log-likelihood function: ``` O = mle2(minuslogl = nll, start = list(p = c(A, B), n = 57200000, x = X)) > Error in mle2(minuslogl = nll, start = list(p = c(A, B), n = 57200000, : some named arguments in 'start' are not arguments to the specified log-likelihood function ```
On Tue, Jun 30, 2020 at 12:03 PM Eric Berger <ericjber...@gmail.com> wrote: > > Hi Luigi, > I took a quick look. > > First error: > You wrote > O = mle2(minuslogl = holling, start = list(a = A, h = B, x = X)) > > it should be b=B (h is not an argument of holling()) > The error message gave very precise information! > > Second error: > You wrote > O = mle2(minuslogl = nll, start = list(a = A, h = B), data = list(n > = 57200000, k = A)) > but the arguments to nll() are p,n,k. Setting start to values for a > and h causes the function to complain. > > HTH, > Eric > > On Tue, Jun 30, 2020 at 12:45 PM Luigi Marongiu > <marongiu.lu...@gmail.com> wrote: > > > > Hello, > > I would like to optimize the function: > > ``` > > holling = function(a, b, x) { > > y = (a * x^2) / (b^2 + x^2) > > return(y) > > } > > ``` > > I am trying to use the function mle2 from bbmle, but how do I need to > > feed the data? > > If I give `holling` as function to be optimized, passing the starting > > values for `a`, `b`, and `x`, I get: > > ``` > > X = 1:60 > > A = 3261 > > B = 10 > > O = mle2(minuslogl = holling, start = list(a = A, h = B, x = X)) > > > Error in mle2(minuslogl = holling, start = list(a = A, b = B, x = X)) : > > some named arguments in 'start' are not arguments to the specified > > log-likelihood function > > ``` > > If I pass the negative log-function (assuming a binomial distribution > > of the data, which I am not sure about) > > ``` > > nll = function(p, n, k) { > > # extract parms > > a = p[1] > > h = p[2] > > # calculate probability of attack > > pred = a/(1+a*h*n) > > # calc NLL > > -sum(dbinom(k, prob = pred, size = n, log = TRUE)) > > } > > ``` > > then I get the same error: > > ``` > > > O = mle2(minuslogl = nll, start = list(a = A, h = B), > > + data = list(n = 57200000, k = A)) > > Error in mle2(minuslogl = nll, start = list(a = A, h = B), data = > > list(n = 57200000, : > > some named arguments in 'start' are not arguments to the specified > > log-likelihood function > > ``` > > but with the disadvantage of working on an assumed function (nll). > > How can I optimize the function `holling` properly? > > Thank you > > > > > > > > > > -- > > Best regards, > > Luigi > > > > ______________________________________________ > > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > > and provide commented, minimal, self-contained, reproducible code. -- Best regards, Luigi ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.