Отрицательный loglikelihood функционирует для поддерживаемых дистрибутивов Statistics and Machine Learning Toolbox™ весь конец с like
, как в explike
. Каждая функция представляет параметрическое семейство распределений. Входные параметры являются списками значений параметров, задающих конкретного члена семейства распределений, сопровождаемого массивом данных. Функции возвращают отрицательный loglikelihood параметров, учитывая данные.
Чтобы найти оценки наибольшего правдоподобия (MLEs), можно использовать отрицательную функцию loglikelihood в качестве целевой функции задачи оптимизации и решить его при помощи функции MATLAB® fminsearch
или функции в Optimization Toolbox™ и Global Optimization Toolbox. Эти функции позволяют вам выбирать алгоритм поиска и осуществлять низкоуровневый контроль над осуществлением алгоритма. В отличие от этого, mle
функционируют и функции подбора кривой распределения, которые заканчиваются fit
, таким как normfit
и gamfit
, используют предварительно установленные алгоритмы с опциями, ограниченными установленными функцией statset
.
Вероятности являются плотностью условной вероятности. Можно задать параметрическое семейство распределений при помощи функционального f (x, a), где x и a представляют случайную переменную и параметры, соответственно. Когда a фиксируется, функция является функцией плотности вероятности (PDF) в x, f (x |a). Когда x фиксируется, функция является вероятностью параметров a, f (a |x). Объединенная вероятность параметров по независимому набору данных случайной выборки X
Учитывая X, MLEs максимизируют L (a) по всему возможному a. Числовые алгоритмы находят MLEs, которые (эквивалентно) максимизируют функцию loglikelihood, журнал (L (a)). Логарифм преобразовывает продукт потенциально маленьких вероятностей в сумму журналов, которую легче отличить от 0 в вычислении. Для удобства Statistics and Machine Learning Toolbox отрицательные функции loglikelihood возвращают отрицание этой суммы, потому что алгоритмы оптимизации обычно ищут минимумы, а не максимумы.
Этот пример показывает, как найти MLEs при помощи функций fminsearch
и gamlike
.
Используйте функцию gamrnd
, чтобы сгенерировать случайную выборку от определенного Гамма Распределения.
rng default; % For reproducibility a = [1,2]; X = gamrnd(a(1),a(2),1e3,1);
Визуализируйте поверхность вероятности в окружении a
, данного X
при помощи функции gamlike
.
mesh = 50; delta = 0.5; a1 = linspace(a(1)-delta,a(1)+delta,mesh); a2 = linspace(a(2)-delta,a(2)+delta,mesh); logL = zeros(mesh); % Preallocate memory for i = 1:mesh for j = 1:mesh logL(i,j) = gamlike([a1(i),a2(j)],X); end end [A1,A2] = meshgrid(a1,a2); surfc(A1,A2,logL)
Ищите минимум поверхности вероятности при помощи функции fminsearch
.
LL = @(u)gamlike([u(1),u(2)],X); % Likelihood given X
MLES = fminsearch(LL,[1,2])
MLES = 1×2
0.9980 2.0172
Сравните MLES
с оценками, возвращенными функцией gamfit
.
ahat = gamfit(X)
ahat = 1×2
0.9980 2.0172
Различием каждого параметра между MLES
и ahat
являются меньше, чем 1e-4
.
Добавьте MLEs в объемную поверхностную диаграмму.
hold on plot3(MLES(1),MLES(2),LL(MLES),'ro','MarkerSize',5,'MarkerFaceColor','r') view([-60 40]) % Rotate to show the minimum
fminsearch
| negloglik
| statset
| surfc