[R] Problems when computing the 1rst derivative of mixtures of densities

Spencer Graves spencer.graves at pdf.com
Sat Jul 8 03:35:57 CEST 2006


	  What problem are you trying to solve?  The mixture proportion you are 
trying to estimate violates the assumptions that provide a normal 
approximation to the distribution of maximum likelihood estimators. 
These situations even violate the assumptions for 2*log(likelihood 
ratio) being approximately chi-square.

	  If you want hypothesis tests or confidence intervals, Pinheiro and 
Bates (2000) recommended using 2*log(likelihood ratio) modified as 
suggested by Monte Carlo results.  More recently, Bates has incorporated 
an 'mcmcsamp' function in the 'lme4' and 'Matrix' libraries.

	  The best references I know on testing a parameter at a boundary are 
the following:

Pinheiro and Bates (2000) Mixed-Effects Models in S and S-PLUS 
(Springer, sec. 2.4)

Crainiceanu, Ruppert and Vogelsang (2003) “Some properties of Likelihood 
Ratio tests in linear mixed models”

Crainiceanu, Ruppert, Claeskens, and Wand (2005) “Exact Likelihood Ratio 
Tests for Penalized Splines”, Biometrika, 92(1)

	  Hope this helps.
	  Spencer Graves
p.s.  See also inline.

Clément Viel wrote:
> Hi everybody,
> 
> I am currently working on mixtures of two densities ( f(xi,teta)=
> (1-teta)*f1(xi) + teta*f2(xi) ),
> particularly on the behavior of the variance for teta=0 (so sample only
> comes from the first distribution).
> To determine the maximum likelihood estimator I use the Newton-Rapdon
> Iteration. But when
> computing the first derivative I get a none linear function (with several
> asymptotes) which is completely
> absurd.

Why do you think this is absurd?  Nonlinear estimation can be very 
difficult.

	  Also, have you reviewed the capabilities in R for working with 
mixtures of distributions?  I just got 167 hits for 
RSiteSearch("mixtures") and 49 for RSiteSearch("mixture distributions", 
"functions").
> 
> This is my function to compute the first derivative:
> 
> phy=function(teta,vect1,vect2){
>     return( sum(( vect2 - vect1) / (( 1 - teta) * vect1 + teta * vect2)))
> }
> 
> note: vect1 and vect2 contains  values of the  two distributions computed
> from sample previously extracted.
> 
> Beside, vect2 - vect1 is constant and ( 1 - teta) * vect1 + teta * vect2) is
> linear and always defined so I am expecting
> a linear function for the first derivative. To my mind, it's likely comes
> from the operation of division but I don't understand
> why results are skewed.
> 
> Have you got any suggestions, please?
> 
> 
> 
> ------------------------------------------------------------------------
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html



More information about the R-help mailing list