Функции отрицательной логики для поддерживаемых распределений Toolbox™ статистики и машинного обучения заканчиваются на like, как в explike. Каждая функция представляет параметрическое семейство распределений. Входные аргументы представляют собой списки значений параметров, определяющих конкретный элемент семейства распределения, за которым следует массив данных. Функции возвращают отрицательную логику параметров, учитывая данные.
Чтобы найти оценки максимального правдоподобия (MLE), можно использовать функцию отрицательного логарифма как объективную функцию задачи оптимизации и решить ее с помощью функции MATLAB ®fminsearch или функции в Toolbox™ оптимизации и панели инструментов глобальной оптимизации. Эти функции позволяют выбрать алгоритм поиска и осуществлять низкоуровневый контроль над выполнением алгоритма. Напротив, mle функция и функции распределительного фитинга, которые заканчиваются на fit, такие как normfit и gamfit, использовать предустановленные алгоритмы с опциями, ограниченными теми, которые установлены statset функция.
Параметрическое семейство распределений можно задать с помощью функции плотности вероятности (pdf) f (x ' Когда вы рассматриваете f (x 'start) в качестве функции startдля фиксированного x, функция f (x' start) - это вероятность параметров startдля одного результата x. Вероятность параметров startдля независимого и одинаково распределенного набора данных случайной выборки X равна:
x 'start).
При значении X MLE максимизируют L (start) над всеми возможными Численные алгоритмы находят MLE, которые (эквивалентно) максимизируют функцию логарифмирования, log (L (start)). Логарифм преобразует произведение потенциально малых вероятностей в сумму логарифмов, которую легче отличить от 0 в вычислениях. Для удобства, функция «Статистика и инструментарий машинного обучения» (Statistics and Machine Learning Toolbox) возвращает отрицательное значение этой суммы, так как алгоритмы оптимизации обычно выполняют поиск минимумов, а не максимумов.
В этом примере показано, как найти MLE с помощью 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