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 <ericjberger at 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.luigi at 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 at 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