Statistical programming, matrix languages, and more

computing derivative numerically at each observation

Accepted Solution Solved
Reply
Contributor
Posts: 44
Accepted Solution

computing derivative numerically at each observation

As is well known that quasi maximum likelihood estimation requires computing first derivative of the individual likelihood at each observation. Does anybody know how to implement it in SAS?d


Accepted Solutions
Solution
‎02-25-2015 08:50 AM
SAS Super FREQ
Posts: 3,630

Re: computing derivative numerically at each observation

I assume you want to use finite difference approximations. Finite differences are available by using the NLPFDD function. See the article "Optimizing? Two hints for specifying derivatives."

View solution in original post


All Replies
Solution
‎02-25-2015 08:50 AM
SAS Super FREQ
Posts: 3,630

Re: computing derivative numerically at each observation

I assume you want to use finite difference approximations. Finite differences are available by using the NLPFDD function. See the article "Optimizing? Two hints for specifying derivatives."

Contributor
Posts: 44

Re: computing derivative numerically at each observation

Thank you Dr.

Contributor
Posts: 44

Re: computing derivative numerically at each observation

Dr. I have defined a module that returns a vector containing individual likelihood value at each observation. Then I want to compute the gradient using NLPFDD but SAS reports that the module must return  a scalar.

SAS Super FREQ
Posts: 3,630

Re: computing derivative numerically at each observation

The module should return the likelihood value for a specified value of the parameters, given the data.  The entire data set is used as input to the likelihood function, so it is not correct to say that the likelihood is evaluated "at each observation."  Look at the article "Maximum likelihood estimation in SAS/IML" and see if that helps.  Notice that the module takes a single argument, shich is the vector of parameters fr the model.  The data are specified by using the GLOBAL clause.

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 4 replies
  • 393 views
  • 0 likes
  • 2 in conversation