On 7/3/05, Doran, Harold <[EMAIL PROTECTED]> wrote: > Dear List: > > Is any one aware of a package that would extend the D() function and allow > for one to maximize a likelihood function symbolically? Something akin to > Solve[x==0, parameter] function in Mathematica? > > Clearly R has the capacity to _compute_ MLEs given a set of data. But, I'm > looking for a package that would allow for me to define the likelihood > function, find the 1st order partial derivative of this function (which can > already be handled in D()), and then symbolically maximize this function? >
There are a number of free symbolic mathematics packages such as Maxima and Yacas. Here is a simple example in Yacas. (Also see http://finzi.psych.upenn.edu/R/Rhelp02a/archive/31418.html for transferring functions from yacas to R). C:\usr\yacas> yacas [...various startup messages...] In> f(x) := Exp(-(x-mu)^2)/Sqrt(2*Pi) Out> True; In> logf(x) := Ln(f(x)); Out> True; In> loglik := logf(x1) + logf(x2) + logf(x3); Out> Ln(Exp(-(x1-mu)^2)/Sqrt(2*Pi))+Ln(Exp(-(x2-mu)^2)/Sqrt(2*Pi))+Ln(Exp(-(x3-m u)^2)/Sqrt(2*Pi)); In> score := D(mu) loglik; Out> (-(-2)*(x2-mu)*Exp(-(x2-mu)^2)*2*Pi)/(2*Pi*Exp(-(x2-mu)^2))-((-2)*(x1-mu)*E xp(-(x1-mu)^2)*2*Pi)/(2*Pi*Exp(-(x1-mu)^2))-((-2)*(x3-mu)*Exp(-(x3-mu)^2)*2*Pi)/ (2*Pi*Exp(-(x3-mu)^2)); In> score := Simplify(score); Out> 2*(x2+(-3)*mu+x1+x3); In> Solve(score == 0, mu); Out> (x2+x1+x3)/3; ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
