Отрицательные функции логарифмической правдоподобности для поддерживаемых распределений Statistics and Machine Learning Toolbox™ все заканчиваются like
, как в 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, MLE максимизируют L (θ) по всем возможным θ. Численные алгоритмы находят MLE, которые (эквивалентно) максимизируют функцию логарифмической правдоподобности, журнал (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
.
Добавьте MLE к объемной поверхностной диаграмме.
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