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

Reply via email to