how to do mle on custom mvnpdf ?
    3 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    chao-hung huang
 el 17 de Mzo. de 2019
  
    
    
    
    
    Respondida: Jeff Miller
      
 el 17 de Mzo. de 2019
            Hi,
i'm trying to fit two correlated model with MVNpdf.
But it seems that the SIGMA of the function cannot set parameters there
mvnpdf(X,mu,SIGMA)
the model as below


%% S for dr_t
%% L for dl_t
Sx=S(1:end-1);Sy=S(2:end);
Lx=L(1:end-1);Ly=L(2:end);
diffL=Ly-Lx;diffS=Sy-Sx;
func=@(theta) -sum(log(mvnpdf([diffL diffS], ...
                              [theta(1)*(theta(2)-Lx)*delta_t theta(4)*(Lx-Sx)*delta_t], ...
                              [theta(3) theta(6);theta(5) theta(6)])));
param=fminsearch(func,[0.8 0.01 1 0.2 1 0]);
however, i find it doesn't work
it shows "SIGMA must be a square, symmetric, positive definite matrix" and Error in fminsearch.
Is there any solution ? Thanks !!
0 comentarios
Respuesta aceptada
  Jeff Miller
      
 el 17 de Mzo. de 2019
        I don't really understand what you are trying to do, but the error message "SIGMA must be a square, symmetric, positive definite matrix" suggests the problem.  fminsearch is trying different theta values, and sometimes it tries values for which the sigma matrix [theta(3) theta(6);theta(5) theta(6)] is not positive definite.
Inside your error function (not an anonymous one),you will have to compute a legal SIGMA from whatever values fminsearch suggests.  (To do that, you may need to re-parameterize the problem a little bit.)  For example, fminsearch might try a negative value for theta(3), but variances have to be positive.  So, for example, you might have something like
thiscovar = theta(6);
SIGMA(1,1) = abs(theta(3));
SIGMA(1,2) = thiscovar;
SIGMA(2,1) = thiscovar;
SIGMA(2,2) = abs(theta(5));
and then call mvnpdf with this computed SIGMA.
0 comentarios
Más respuestas (0)
Ver también
Categorías
				Más información sobre Verification, Validation, and Test en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

