mle

Максимальные оценки правдоподобия

Описание

phat = mle(data) возвращает максимальные оценки правдоподобия (MLE) для параметров нормального распределения, используя выборочные данные в векторе data.

пример

phat = mle(data,'distribution',dist) возвращает оценки параметров для распределения, заданного dist.

пример

phat = mle(data,'pdf',pdf,'start',start) возвращает оценки параметров для пользовательского распределения, заданные функцией плотности вероятностей pdf. Вы также должны задать начальные значения параметров, start.

пример

phat = mle(data,'pdf',pdf,'start',start,'cdf',cdf) возвращает оценки параметров для пользовательского распределения, заданные функцией плотности вероятностей pdf и пользовательскую функцию кумулятивного распределения cdf.

phat = mle(data,'logpdf',logpdf,'start',start) возвращает оценки параметров для пользовательского распределения, заданные функцией логарифмической плотности вероятностей logpdf. Вы также должны задать начальные значения параметров, start.

пример

phat = mle(data,'logpdf',logpdf,'start',start,'logsf',logsf) возвращает оценки параметров для пользовательского распределения, заданные функцией логарифмической плотности вероятностей logpdf и пользовательскую функцию выживания журнала logsf.

пример

phat = mle(data,'nloglf',nloglf,'start',start) возвращает оценки параметров для пользовательского распределения, заданные функцией отрицательной логарифмической правдоподобности nloglf. Вы также должны задать начальные значения параметров, start.

phat = mle(___,Name,Value) задает опции, использующие аргументы пары "имя-значение" в дополнение к любому из входных параметров в предыдущих синтаксисах. Например, можно задать цензурные данные, частоту наблюдений и доверительный уровень.

пример

[phat,pci] = mle(___) также возвращает 95% доверительные интервалы для параметров.

Примеры

свернуть все

Загрузите выборочные данные.

load carbig

Переменная MPG имеет мили на галлон для различных моделей автомобилей.

Нарисуйте гистограмму MPG данные.

 histogram(MPG)

Figure contains an axes. The axes contains an object of type histogram.

Распределение несколько прямо искривлено. Симметричное распределение, такое как нормальное распределение, может быть плохой подгонкой.

Оценка параметров распределения Burr Type XII для MPG данные.

phat = mle(MPG,'distribution','burr')
phat = 1×3

   34.6447    3.7898    3.5722

Максимальные оценки правдоподобия для параметра шкалы α составляют 34,6447. Оценки для двух параметров формы c и k распределения Burr Type XII составляют 3,7898 и 3,5722 соответственно.

Сгенерируйте выборочные данные размера 1000 из нецентрального хи-квадратного распределения со степенями свободы 8 и некентральностью параметра 3.

rng default % for reproducibility
x = ncx2rnd(8,3,1000,1);

Оцените параметры нецентрального распределения хи-квадрат из выборочных данных. Для этого пользовательский метод определения нецентрального хи-квадрата PDF с помощью pdf входной параметр.

[phat,pci] = mle(x,'pdf',@(x,v,d)ncx2pdf(x,v,d),'start',[1,1])
phat = 1×2

    8.1052    2.6693

pci = 2×2

    7.1120    1.6025
    9.0983    3.7362

Оценка степеней свободы составляет 8,1052, и параметр нецентральности равен 2.6693. 95% доверительный интервал для степеней свободы равен (7.1121.9.0983), а нецентральный параметр равен (1.6025.3.7362). Доверительные интервалы включают истинные значения параметров 8 и 3, соответственно.

Загрузите выборочные данные.

load('readmissiontimes.mat');

Данные включают ReadmissionTime, который имеет время реадмиссии для 100 пациентов. Область вектора-столбца Censored имеет цензурную информацию для каждого пациента, где 1 указывает на цензурное наблюдение, а 0 указывает на то, что наблюдается точное время реадмиссии. Это моделируемые данные.

Задайте пользовательскую плотность вероятностей и совокупную функцию распределения.

custpdf = @(data,lambda) lambda*exp(-lambda*data);
custcdf = @(data,lambda) 1-exp(-lambda*data);

Оцените параметр, lambda, пользовательского распределения для цензурированных выборочных данных.

phat = mle(ReadmissionTime,'pdf',custpdf,'cdf',custcdf,'start',0.05,'Censoring',Censored)
phat = 0.1096

Загрузите выборочные данные.

load('readmissiontimes.mat');

Данные включают ReadmissionTime, который имеет время реадмиссии для 100 пациентов. Область вектора-столбца Censored имеет цензурную информацию для каждого пациента, где 1 указывает на цензурное наблюдение, а 0 указывает на то, что наблюдается точное время реадмиссии. Это моделируемые данные.

Задайте пользовательскую функцию плотности журнала вероятностей и выживания.

custlogpdf = @(data,lambda,k) log(k)-k*log(lambda)+(k-1)*log(data)-(data/lambda).^k;
custlogsf = @(data,lambda,k) -(data/lambda).^k;

Оцените параметры, lambda и k, пользовательского распределения для цензурированных выборочных данных.

phat = mle(ReadmissionTime,'logpdf',custlogpdf,'logsf',custlogsf,...
    'start',[1,0.75],'Censoring',Censored)
phat = 1×2

    9.2090    1.4223

Параметры шкалы и формы пользовательского распределения 9,2090 и 1.4223, соответственно.

Загрузите выборочные данные.

load('readmissiontimes.mat')

Данные включают ReadmissionTime, который имеет время реадмиссии для 100 пациентов. Это моделируемые данные.

Задайте отрицательную функцию журнала правдоподобия.

custnloglf = @(lambda,data,cens,freq) - length(data)*log(lambda) + sum(lambda*data,'omitnan');

Оцените параметры заданного распределения.

phat = mle(ReadmissionTime,'nloglf',custnloglf,'start',0.05)
phat = 0.1462

Сгенерируйте 100 случайных наблюдений из биномиального распределения с количеством испытаний, n = 20, и вероятность успеха, p = 0.75.

data = binornd(20,0.75,100,1);

Оцените вероятность успеха и 95% доверительных пределов с помощью моделируемых выборочных данных.

[phat,pci] = mle(data,'distribution','binomial','alpha',.05,'ntrials',20)
phat = 0.7615
pci = 2×1

    0.7422
    0.7800

Оценка вероятности успеха составляет 0,7615, а нижний и верхний пределы 95% доверительного интервала составляют 0,7422 и 0,78. Этот интервал охватывает истинное значение, используемое для моделирования данных.

Сгенерируйте выборочные данные размера 1000 из нецентрального хи-квадратного распределения со степенями свободы 10 и некентральностью параметра 5.

rng default % for reproducibility
x = ncx2rnd(10,5,1000,1);

Предположим, что параметр нецентральности фиксирован на значении 5. Оцените степени свободы нецентрального распределения хи-квадрат из выборочных данных. Для этого пользовательский метод определения нецентрального хи-квадрата PDF с помощью pdf входной параметр.

[phat,pci] = mle(x,'pdf',@(x,v,d)ncx2pdf(x,v,5),'start',1)
phat = 9.9307
pci = 2×1

    9.5626
   10.2989

Оценка для параметра нецентральности составляет 9,9307 с 95% доверительным интервалом 9,5626 и 10,2989. Доверительный интервал включает истинное значение параметров 10.

Сгенерируйте выборочные данные размера 1000 из распределения Райса с параметром нецентральности 8 и шкалой 5. Сначала создайте распределение Райса.

r = makedist('Rician','s',8,'sigma',5);

Теперь сгенерируйте выборочные данные из созданного выше распределения.

rng default % For reproducibility
x = random(r,1000,1);

Предположим, что параметр шкалы известен, и оцените параметр нецентральности из выборочных данных. Для этого используйте mleнеобходимо задать пользовательскую функцию плотности вероятностей Райса.

[phat,pci] = mle(x,'pdf',@(x,s,sigma) pdf('rician',x,s,5),'start',10)
phat = 7.8953
pci = 2×1

    7.5405
    8.2501

Оценка для параметра нецентральности составляет 7,8953 с 95% доверительным интервалом 7,5404 и 8,2501. Доверительный интервал включает истинное значение параметров 8.

Добавьте параметр шкалы к распределению хи-квадрат для адаптации к масштабу данных и подгонки его. Сначала сгенерируйте выборочные данные размера 1000 из распределения хи-квадрат со степенями свободы 5 и масштабируйте его в 100 раз.

rng default % For reproducibility
x = 100*chi2rnd(5,1000,1);

Оцените степени свободы и коэффициент масштабирования. Для этого пользовательский метод задает функцию хи-квадратной плотности вероятностей с помощью pdf входной параметр. Функция плотности требует a 1/s коэффициент для данных, масштабируемых s.

[phat,pci] = mle(x,'pdf',@(x,v,s)chi2pdf(x/s,v)/s,'start',[1,200])
phat = 1×2

    5.1079   99.1681

pci = 2×2

    4.6862   90.1215
    5.5297  108.2146

Оценка степеней свободы составляет 5,1079, а шкала - 99,1681. Интервал 95% доверия для степеней свободы является (4,6862,5,5279), и параметр масштаба является (90.1215 108.2146). Доверительные интервалы включают истинные значения параметров 5 и 100, соответственно.

Входные параметры

свернуть все

Выборочные данные mle используется для оценки параметров распределения, заданных как вектор.

Типы данных: single | double

Тип распределения для оценки параметров, заданный как одно из следующего.

distОписаниеПараметр 1Параметр 2Параметр 3Параметр 4
'Bernoulli'Распределение БернуллиpВероятность успеха для каждого испытания
'Beta'Бета- Распределениеa: первый параметр формыb: второй параметр формы
'bino' или 'Binomial'Биномиальное Распределениеn:: количество судебных разбирательствpВероятность успеха для каждого испытания
'BirnbaumSaunders'Распределение Бирнбаум-Сондерсβ: параметр шкалыγ: параметр формы
'Burr'Распределение Burr Type XIIα: шкалаc: первый параметр формыk: второй параметр формы
'Discrete Uniform' или 'unid'Равномерное распределение (дискретное)n: максимальное наблюдаемое значение
'exp' или 'Exponential'Экспоненциальное Распределениеμ: среднее
'ev' или 'Extreme Value'Распределение экстремальных значенийμ: параметр местоположенияσ: параметр шкалы
'gam' или 'Gamma'Гамма- Распределениеa: параметр формыb: шкала
'gev' или 'Generalized Extreme Value'Обобщенное распределение экстремальных значенийk: параметр формыσ: параметр шкалыμ: параметр местоположения
'gp' или 'Generalized Pareto'Обобщенное распределение Паретоk: конечный индекс (форма) параметрσ: параметр шкалыθ: параметр порога (местоположения)
'geo' или 'Geometric'Геометрическое распределениеp: параметр вероятности
'hn' или 'Half Normal'Полунормальное Распределениеμ: параметр местоположенияσ: параметр шкалы
'InverseGaussian'Обратное Гауссово Распределениеμ: параметр шкалыλ: параметр формы
'Logistic'Логистическое распределениеμ: среднее σ: параметр шкалы
'LogLogistic'Логистическое распределениеμ: среднее значение логарифмических значенийσ: масштабный параметр логарифмических значений
'logn' или 'LogNormal'Логнормальное распределениеμ: среднее значение логарифмических значенийσ: стандартное отклонение логарифмических значений
'Nakagami'Распределение Накагамиμ: параметр формыω: параметр шкалы
'nbin' или 'Negative Binomial'Отрицательное биномиальное распределениеrКоличество успеховp: вероятность успеха в одном испытании
'norm' или 'Normal'Нормальное Распределениеμ: среднее σ: стандартное отклонение
'poiss' или 'Poisson'Распределение Пуассонаλ: среднее
'rayl' или 'Rayleigh'Распределение Релеяb: шкала
'Rician'Распределение Райсаs: параметр нецентральностиσ: параметр шкалы
'Stable'Стабильное Распределениеα: первый параметр формыβ: второй параметр формыγ: параметр шкалыδ: параметр местоположения
'tLocationScale't Распределение по шкале местоположенияμ: параметр местоположенияσ: параметр шкалыν: параметр формы
'unif' или 'Uniform'Равномерное распределение (непрерывное)a: нижняя конечная точка (минимум)b: верхняя конечная точка (максимум)
'wbl' или 'Weibull'Распределение Вейбулаa: шкалаb: параметр формы

Пример: 'rician'

Пользовательская функция распределения вероятностей, заданная как указатель на функцию, созданный с помощью @.

Эта пользовательская функция принимает вектор data и один или несколько индивидуальных параметров распределения в качестве входных параметров и возвраты вектор значений плотности вероятностей.

Для примера, если имя пользовательской функции плотности вероятностей newpdf, затем можно задать указатель на функцию в mle следующим образом.

Пример: @newpdf

Типы данных: function_handle

Пользовательская кумулятивная функция распределения, заданная как указатель на функцию, созданный с помощью @.

Эта пользовательская функция принимает вектор data и один или несколько индивидуальных параметров распределения в качестве входных параметров и возвраты вектор совокупных значений вероятностей.

Вы должны определить cdf с pdf если данные подвергнуты цензуре, и вы используете 'Censoring' аргумент пары "имя-значение". Если 'Censoring' отсутствует, вы не должны указывать cdf при использовании pdf.

Например, если имя пользовательской кумулятивной функции распределения newcdf, затем можно задать указатель на функцию в mle следующим образом.

Пример: @newcdf

Типы данных: function_handle

Пользовательская функция плотности вероятностей журнала, заданная как указатель на функцию, созданный с помощью @.

Эта пользовательская функция принимает вектор data и один или несколько индивидуальных параметров распределения как вход параметров и возвратов вектор журнала значений вероятностей.

Для примера, если имя пользовательской функции журнала плотности вероятностей customlogpdf, затем можно задать указатель на функцию в mle следующим образом.

Пример: @customlogpdf

Типы данных: function_handle

Пользовательская функция выживания журнала, заданная как указатель на функцию, созданный с помощью @.

Эта пользовательская функция принимает вектор data и один или несколько индивидуальных параметров распределения как вход параметров и возвратов вектор журнала значений вероятности выживания.

Вы должны определить logsf с logpdf если данные подвергнуты цензуре, и вы используете 'Censoring' аргумент пары "имя-значение". Если 'Censoring' отсутствует, вы не должны указывать logsf при использовании logpdf.

Например, если имя пользовательской функции выживания журнала logsurvival, затем можно задать указатель на функцию в mle следующим образом.

Пример: @logsurvival

Типы данных: function_handle

Пользовательская отрицательная функция логарифмической правдоподобности, заданная как указатель на функцию, созданный с помощью @.

Эта пользовательская функция принимает следующие входные параметры.

paramsВектор значений параметров распределения. mle определяет количество параметров из числа элементов в start.
dataВектор данных.
censЛогический вектор цензурных значений.
freqВектор целочисленных частот данных.

nloglf должен принять все четыре аргумента, даже если вы не используете 'Censoring' или 'Frequency' Аргументы пары "имя-значение". Можно писать 'nloglf' игнорировать cens и freq аргументы в этом случае.

nloglf возвращает скалярное отрицательное значение логарифмической правдоподобности и, опционально, отрицательный вектор логарифмической градиентности (см. 'GradObj' поле в 'Options').

Если имя пользовательской функции правдоподобия отрицательного журнала negloglik, затем можно задать указатель на функцию в mle следующим образом.

Пример: @negloglik

Типы данных: function_handle

Начальные значения параметров для пользовательских функций, заданные как скалярное значение или вектор скалярных значений.

Использование start когда вы подбираете пользовательские распределения, то есть когда вы используете pdf и cdf, logpdf и logsf, или nloglf входные параметры.

Пример: 0.05

Пример: [100,2]

Типы данных: single | double

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Censoring',Cens,'Alpha',0.01,'Options',Opt задает, что mle оценивает параметры для распределения цензурированных данных, заданные массивом Cens, вычисляет 99% доверительные пределы для оценок параметра и использует параметры управления алгоритмом, заданные структурой Opt.

Индикатор цензуры, заданный как разделенная разделенными запятой парами, состоящая из 'Censoring' и логический массив того же размера, что и data. Используйте 1 для наблюдений, которые подвергаются правильной цензуре, и 0 для наблюдений, которые полностью наблюдаются. По умолчанию все наблюдения полностью наблюдаются.

Например, если информация о цензурных данных находится в двоичном массиве, называемом Censored, затем можно задать цензурные данные следующим образом.

Пример: 'Censoring',Censored

mle поддерживает цензуру для следующих распределений:

Бирнбаум-Сондерс
Шум
Экспоненциал
Экстремальное значение
Гамма
Обратный Гауссов
Ядро
Логарифмическая логистика
Логистический
Логарифмически нормальный
Nakagami
Нормальный
Rician
t шкала местоположения
Weibull

Типы данных: logical

Частота наблюдений, заданная как разделенная разделенными запятой парами, состоящая из 'Frequency' и массив, содержащий неотрицательные целочисленные счетчики, которые имеют тот же размер data. По умолчанию это одно наблюдение за элементом data.

Например, если частоты наблюдения сохранены в массиве с именем Freq, можно задать частоты следующим образом.

Пример: 'Frequency',Freq

Типы данных: single | double

Уровень значимости для доверительного интервала оценок параметров, pci, заданная как разделенная разделенными запятой парами, состоящая из 'Alpha' и скалярное значение в области значений (0,1). Уровень доверия pci является 100(1-Alpha)% . Значение по умолчанию является 0.05 для 95% доверия.

Для примера для пределов доверия 99% можно задать уровень доверия следующим образом.

Пример: 'Alpha',0.01

Типы данных: single | double

Количество испытаний для соответствующего элемента data, заданная как разделенная разделенными запятой парами, состоящая из 'Ntrials' и скаляр или вектор того же размера, что и data.

Применяется только к биномиальному распределению.

Пример: 'Ntrials',total

Типы данных: single | double

Параметр местоположения для полунормального распределения, заданный как разделенная разделенными запятой парами, состоящая из 'mu' и скалярное значение.

Применяется только к наполовину нормальному распределению.

Пример: 'mu',1

Типы данных: single | double

Параметры управления алгоритмом аппроксимации, заданные как разделенная разделенными запятой парами, состоящая из 'Options' и структуру, возвращенную statset.

Не применяется ко всем распределениям.

Используйте 'Options' аргумент пары "имя-значение" для управления деталями максимальной оптимизации правдоподобия при подборе пользовательского распределения. Для имен параметров и значений по умолчанию введите statset('mlecustom'). Можно задать опции под новым именем и использовать их в аргументе пары "имя-значение". mle интерпретирует следующие statset параметры для пользовательских подборов кривой распределения.

ПараметрЗначение
'GradObj'

По умолчанию это 'off'.

'on' или 'off', с указанием на то, fmincon или нет может ожидать пользовательскую функцию, предоставляемую в nloglf входной параметр для возврата вектора градиента отрицательной логарифмической правдоподобности в качестве второго выхода.

mle игнорирует 'GradObj' при использовании fminsearch.

'DerivStep'

По умолчанию это eps^(1/3).

Относительное различие, заданное как скаляр или вектор того же размера, что и start, используемый в конечном различии производных приближений при использовании fmincon, и 'GradObj' является 'off'.

mle игнорирует 'DerivStep' при использовании fminsearch.

'FunValCheck'

По умолчанию это 'on'.

'on' или 'off', с указанием на то, mle или нет проверяет значения, возвращенные пользовательскими функциями распределения, на валидность.

Плохой выбор начальной точки иногда может заставить эти функции вернуться NaNs, бесконечные значения или значения вне области допустимого, если они записаны без соответствующей проверки на ошибку.

'TolBnd'

По умолчанию это 1e-6.

Смещение для нижней и верхней границ при использовании fmincon.

mle рассматривает нижнюю и верхнюю границы как строгие неравенства, то есть открытые границы. С fmincon, это аппроксимируется путем создания замкнутых границ, вставляемых из заданных нижней и верхней границ TolBnd.

Пример: 'Options',statset('mlecustom')

Типы данных: struct

Нижние границы для параметров распределения, заданные как разделенная разделенными запятой парами, состоящая из 'Lowerbound' и вектор того же размера, что и start.

Этот аргумент пары "имя-значение" действителен только при использовании pdf и cdf, logpdf и logcdf, или nloglf входные параметры.

Пример: 'Lowerbound',0

Типы данных: single | double

Верхние границы для параметров распределения, заданные как разделенная разделенными запятой парами, состоящая из 'Upperbound' и вектор того же размера, что и start.

Этот аргумент пары "имя-значение" действителен только при использовании pdf и cdf, logpdf и logsf, или nloglf входные параметры.

Пример: 'Upperbound',1

Типы данных: single | double

Оптимизационная функция mle использует в максимизации вероятность, заданную как разделенная разделенными запятой парами, состоящая из 'Optimfun' и любой из них 'fminsearch' или 'fmincon'.

По умолчанию это 'fminsearch'.

Можно задать только 'fmincon' Если Optimization Toolbox™ доступна.

The 'Optimfun' аргумент пары "имя-значение" действителен только тогда, когда вы подбираете пользовательские распределения, то есть когда вы используете pdf и cdf, logpdf и logsf, или nloglf входные параметры.

Пример: 'Optimfun','fmincon'

Выходные аргументы

свернуть все

Оценка параметра, возвращенная в виде скалярного значения или вектора-строки.

Доверительные интервалы для оценок параметров, возвращенные как вектор-столбец или матрица в зависимости от количества параметров, отсюда и размер phat.

pci - матрица 2 байта k, где k - количество параметров mle оценки. Первая и вторая строки pci показать нижний и верхний доверительные пределы, соответственно.

Подробнее о

свернуть все

Функция выживания

Функция выживания является вероятностью выживания как функция времени. Это также называется функцией выжившего. Это дает вероятность того, что время выживания индивидуума превышает определенное значение. Поскольку совокупная функция распределения F (t) является вероятностью того, что время выживания меньше или равно заданному точке времени, функция выживания для непрерывного распределения, S (t), является дополнением совокупной функции распределения: S (t) = 1 - F (t).

Совет

Когда вы поставляете функции распределения, mle вычисляет оценки параметров с помощью итерационного алгоритма максимизации. С некоторыми моделями и данными плохой выбор начальной точки может вызвать mle сходиться к локальному оптимуму, который не является глобальным максимизатором, или не сходиться полностью. Даже в случаях, когда логарифмическая правдоподобность хорошо себя ведет вблизи глобального максимума, выбор начальной точки часто имеет решающее значение для сходимости алгоритма. В частности, если начальные значения параметров далеки от MLE, нижнее течение в функциях распределения может привести к бесконечным логарифмической правдоподобности.

Представлено до R2006a