Отрицательная логарифмическая правдоподобность функционирует для поддерживаемых распределений Statistics and Machine Learning Toolbox™ весь конец с like
asin explike
. Каждая функция представляет параметрическое семейство распределений. Входные параметры являются списками значений параметров, задающих конкретный член семейства распределений, сопровождаемого массивом данных. Функции возвращают отрицательную логарифмическую правдоподобность параметров, учитывая данные.
Чтобы найти оценки наибольшего правдоподобия (MLEs), можно использовать отрицательную функцию логарифмической правдоподобности в качестве целевой функции задачи оптимизации и решить его при помощи функции MATLAB® fminsearch
или функции в Optimization Toolbox™ и Global Optimization Toolbox. Эти функции позволяют вам выбирать алгоритм поиска и осуществлять низкоуровневый контроль над осуществлением алгоритма. В отличие от этого, mle
функционируйте и функции подбора кривой распределения тот конец с fit
, такой как normfit
и gamfit
, используйте предварительно установленные алгоритмы с опциями, ограниченными установленными statset
функция.
Можно задать параметрическое семейство распределений при помощи функции плотности вероятности (PDF) f (x |θ), где x представляет результат случайной переменной, и θ представляет параметры распределения. Когда вы представление f (x |θ) в зависимости от θ для фиксированного x, функциональный f (x |θ) является вероятностью параметров θ для одного результата x. Вероятность параметров θ для независимого и тождественно распределенного набора данных случайной выборки X:
Учитывая X, MLEs максимизируют L (θ) по всему возможному θ. Числовые алгоритмы находят MLEs, которые (эквивалентно) максимизируют функцию логарифмической правдоподобности, журнал (L (θ)). Логарифм преобразовывает продукт потенциально маленьких вероятностей в сумму журналов, которую легче отличить от 0 в расчете. Для удобства Statistics and Machine Learning Toolbox отрицательные функции логарифмической правдоподобности возвращают отрицание этой суммы, потому что алгоритмы оптимизации обычно ищут минимумы, а не максимумы.
В этом примере показано, как найти MLEs при помощи gamlike
и fminsearch
функции.
Используйте 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