Code for the Maximum likelihood esitmate for the gamma distribution , both parameters unknown
Show older comments
In the book by [Klugmann: Loss Models] "HERE IS THE BOOK: BOOK" (pleasee see also the attachment Loss.jpg) [OR Here] on the page 383 I would like to see a command for Matlab that would compute the Maximum Likelihood Estimate
for the Gamma Distribution where both parameters α and θ are unknown , please see the attachment. I would like to see a command that would output for Example 15.4 these numbers:
=2561.1 and
=0.55616 for these data
[27,82,115,126,155,161,243,294,340,384,457,680,855,877,974,1193,1340,1884,2558,15743]
Answers (1)
format long
data = [27,82,115,126,155,161,243,294,340,384,457,680,855,877,974,1193,1340,1884,2558,15743];
p = mle(data,'Distribution','Gamma')
10 Comments
Torsten
on 9 Feb 2023
Define the log-likelihood function for the gamma distribution with the above data, differentiate it with respect to the parameters, set the two equations to 0 and solve them for the two optimal parameters.
Jan
on 9 Feb 2023
how do I make 1 parameter of Gamma known: and the other should be computed by MLE principle.
Not possible as far as I know. You will have to program this on your own following the way I described ( differentiating the maximum likelihood function with respect to the unknown parameter, setting the result to 0 and solving for the unknown parameter).
Also, how can I insert the censoring above 250 ?
What do you mean ? Maybe
data(data>250) = []
?
Jan
on 9 Feb 2023
syms alpha theta x
data = sym('data',[1 20]);
f = 1/gamma(alpha) * 1/(theta^alpha) *x^(alpha-1) * exp(-x/theta);
fp = prod(subs(f,x,data))
logfp = log(fp)
dlogfpdalpha = diff(logfp,alpha)
dlogfpdtheta = diff(logfp,theta)
Data = [27,82,115,126,155,161,243,294,340,384,457,680,855,877,974,1193,1340,1884,2558,15743];
dlogfpdalpha = subs(dlogfpdalpha,data,Data)
dlogfpdtheta = subs(dlogfpdtheta,data,Data)
sol = vpasolve([dlogfpdalpha==0,dlogfpdtheta==0],[alpha,theta],[0.5 2500])
sol = vpasolve([dlogfpdalpha==0,dlogfpdtheta==0],[alpha,theta],[0.5 1500])
gives theta more than 1500, namely 2561.14
Read in the documentation of "vpasolve" what the third argument given to the solver means.
Hint: It doesn't impose any constraint on the solution.
And you cannot impose any constraints on the solution.
You have a system of two equations in two unknowns. This is solved by
alpha: 0.55615779737149188594827727939715
theta: 2561.143629976936064991373664248
No way to influence these values in general.
Categories
Find more on Linear Algebra in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




