SCM

Forum: developers

Monitor Forum | Start New Thread Start New Thread
RE: maxXX arguments [ Reply ]
By: Arne Henningsen on 2015-08-23 06:05
[forum:42492]
"qac" could be a good choice. If it is very unlikely that we implement other corrections, 'marquardt = FALSE' may also be a suitable solution.

RE: maxXX arguments [ Reply ]
By: Ott Toomet on 2015-08-21 01:33
[forum:42473]
Regarding what you said in the e-mail:

hessCorrection is not a good choice as the default method does not correct Hessian, just takes shorter and shorter steps if the original step fails. Marquardt does, in a way, although it is more of correcting the next guess and not Hessian per se. 'correction' might work although seems a bit generic...

Perhaps an accronym: qac = Qadratic Approximation Correction...

RE: maxXX arguments [ Reply ]
By: Arne Henningsen on 2015-04-07 06:51
[forum:42138]
Hi Ott

You are right regarding the dot in the name of the function. So what's about maxLik( , control = maxLikControl( ... ), ... )?

I am not sure which control parameters should be included in argument "control". I think that some control parameters, e.g. the maximum number of iterations, depend on the chosen optimisation method, right? In this case, I think that the optimisation method needs to be included in aargument "control", right?

Given that you urgently want to implement additional control parameters, it is perhaps the best for now to just add additional arguments to maxXX() and add a control argument later. What do you think?

Best wishes,
Arne

RE: maxXX arguments [ Reply ]
By: Ott Toomet on 2015-03-30 03:41
[forum:42117]
Yes,
it seems like a good idea. What could be the argument? control? max.control? maxControl? (.something is not a good idea when using S3 classes). I don't quite understand how do you put '...' both as the systemfit arguments and as control arguments. But I haven't looked at your code either.

There are probably some arguments that are reasonably part of the control (various tolerances, print.level, iterlim). What about 'method' for maxLik? What about constraints for contrained maximization? I am inclined to leave those out but haven't quite thought where to draw the line... I need the Marquardt method for my research now, so I can devote some prime time to that. Implementation is probably not that hard but consistency may be more tricky...

Thoughts?

Ott

RE: maxXX arguments [ Reply ]
By: Arne Henningsen on 2015-03-26 20:34
[forum:42104]
I think that it is very important that the maxXX() functions remain backward-compatible. On the other hand, it may be handy in some occasions / applications to have a list of control parameters. Hence, I think that it could be a good idea to implement both options (as you also suggested). For instance, I have done this for the systemfit() command, as this was suggested by the reviewers of the JSS. In order to achieve this, we implemented the function systemfit.control(), which creates the list of control parameters and checks is the control parameters have reasonable values. Then systemfit() is defined as systemfit( someArguments, control = systemfit.control( ... ), ... ) so that additional arguments to systemfit() are passed to systemfit.control() and added to the list of control parameters. Do you think that we should use this solution also for the maxXX() functions?

/Arne

maxXX arguments [ Reply ]
By: Ott Toomet on 2015-03-25 14:14
[forum:42093]
currently all the call parameters are given as individual arguments. Should we keep it in this way? Many other packages seem to prefer a common control list like 'control=list(...)'.

I admit as a user I prefer individual arguments, not the control list, unless I want to supply a large number of arguments. Implement both options?

Namely, I implemented Marquardt (1963) Hessian control (haven't committed). This added 3 arguments to what is essentially maxNR function. I would like to merge the code of both functions:
* to manage a single code base
* to get this also for BHHH
but in this case we need another extra parameter, something like 'step=c("halving", "marquardt")'. And I kind of need this function for my own work, so would love to move it over to CRAN soon...

Ideas?
Ott


Thanks to:
Vienna University of Economics and Business Powered By FusionForge