フィルターのクリア

Calculate Negative loglikelihood of custom probability distribution

6 ビュー (過去 30 日間)
dj1du
dj1du 2022 年 8 月 20 日
コメント済み: Torsten 2022 年 8 月 21 日
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?

採用された回答

Torsten
Torsten 2022 年 8 月 20 日
編集済み: Torsten 2022 年 8 月 20 日
% 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 件のコメント
dj1du
dj1du 2022 年 8 月 20 日
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 2022 年 8 月 21 日
One concluding question:
I'm clueless in this respect - sorry.

サインインしてコメントする。

その他の回答 (1 件)

Torsten
Torsten 2022 年 8 月 20 日
編集済み: Torsten 2022 年 8 月 20 日
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.

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by