Maximum Likelihood MT

Maximum Likelihood MT (MaxlikMT) uses structures for input, control, and output. Structures add flexibility and help organize information. In MaxlikMT, the same procedure computing the log-likelihood or objective function will be used to compute analytical derivatives as well if they are being provided. Its return argument is a maxlikmtResults structure with three members, a scalar, or Nx1 vector containing the log-likelihood (or objective), a 1XK vector, or NxK matrix of first derivatives, and a KxK matrix or NxKxK array of second derivatives (it needs to be an array if the log-likelihood is weighted). Of course the derivatives are optional, or even partially optional, i.e., you can compute a subset of the derivatives if you like and the remaining will be computed numerically. This procedure will have an additional argument which tells the function which to compute, the log-likelihood or objective, the first derivatives, or the second derivatives, or all three. This means that calculations in common will not have to be redone.

MaxlikMT uses the DS and PV structures that are now in use in the GAUSS Run-Time Library. The DS structure is completely flexible, allowing you to pass anything you can think of into your procedure. The PV structure revolutionizes how you pass the parameters into the procedure. You no longer have to struggle to get the parameter vector into matrices for calculating the function and its derivatives, trying to remember, or figure out, which parameter is where in the vector. If your log-likelihood uses matrices or arrays, you can store them directly into the PV structure and remove them as matrices or arrays with the parameters already plugged into them. The PV structure can handle matrices and arrays where some of their elements are fixed and some free. It remembers the fixed parameters and knows where to plug in the current values of the free parameters. It can handle symmetric matrices where parameters below the diagonal are repeated above the diagonal.

There will no longer be any need to use global variables. Anything the procedure needs can be passed into it through the DS structure. And these new applications will use control structures rather than global variables. This means, in addition to thread safety, that it will be straightforward to nest calls to MaxlikMT inside of a call to MaxlikMT, not to mention Run-Time Library functions like QNewtonmt, QProgmt, and EQsolvemt.

Major Features of Maximum Likelihood MT

  • Structures
  • Simple bounds
  • Hypothesis testing for models with bounded parameters
  • Log-likelihood function
  • Algorithm
  • Secant algorithms
  • Line search methods
  • Weighted maximum likelihood
  • Active and inactive parameters
  • Bounds

Platform: Windows, LINUX and UNIX.

Requirements: GAUSS/GAUSS Light version 8.0 or higher.