Borrar filtros
Borrar filtros

Calculate Negative loglikelihood of custom probability distribution

3 visualizaciones (últimos 30 días)
Hello,
I have a 1D vector, whose data are chi distributed. The Matlab built-in function negloglik expects a probability distribution object pd, which for standard distributions can be created by fitdist. Unfortunately, my chi distribution is no standard distribution and is thus not supported by fitdist.
How can I calculated the Negative loglikelihood in my special case?

Respuesta aceptada

Torsten
Torsten el 20 de Ag. de 2022
Editada: Torsten el 20 de Ag. de 2022
% Generate random numbers from chi distribution with k = 6
k = 6;
y = rand(150,1);
x = gammaincinv(y,k/2);
x = sqrt(2*x);
% Recover k by maximum likelihood estimate
syms k
f = prod(x.^(k-1).*exp(-x.^2/2)/(2^(k/2-1)*gamma(k/2)));
logf = log(f)
logf = 
dlogfdk = simplify(diff(logf,k))
dlogfdk = 
knum = vpasolve(dlogfdk==0,k,[0 10])
knum = 
6.2804404606724144851804043896857
negative_log_likelihood = subs(-logf,k,knum)
negative_log_likelihood = 
148.38329537359329151154663411951
k = 0:0.1:10;
Logf = matlabFunction(logf);
plot(k,-Logf(k))
  6 comentarios
dj1du
dj1du el 20 de Ag. de 2022
One concluding question: Beside the negative loglikelihood, is it possible to calculate the Bayesian information criterion (BIC) and the Akaike information criterion (AIC) in a similar manner? These two latter criteria are said to provide a better determination of the 'best' fitting distribution.
Torsten
Torsten el 21 de Ag. de 2022
One concluding question:
I'm clueless in this respect - sorry.

Iniciar sesión para comentar.

Más respuestas (1)

Torsten
Torsten el 20 de Ag. de 2022
Editada: Torsten el 20 de Ag. de 2022
Why don't you deduce the equation you have to solve for k by hand ?
The paragraph
Continuous distribution, continuous parameter space
under
explains in detail what to do.
I get (for comparison):
sum_{i=1}^{i=n} log(xi) - n/2*log(2) - n/2*digamma(k/2) = 0
where xi (i=1,...,n) are your measurement data.
Solve for k (e.g. using fsolve) to get the maximum likelihood estimate for the parameter.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by