exponenta event banner

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 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);

Предположим, что параметр noncentrality зафиксирован значением 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 из распределения Rician с параметром нецентральности 8 и параметром масштаба 5. Сначала создайте дистрибутив Rician.

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

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

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

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

[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 входной аргумент. Для функции плотности требуется коэффициент 1/с для данных, масштабированных на 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 типа XIIα: параметр масштабаc: первый параметр формыk: параметр второй формы
'Discrete Uniform' или 'unid'Равномерное распределение (дискретное)n: максимальное наблюдаемое значение
'exp' или 'Exponential'Экспоненциальное распределениеλ: среднее значение
'ev' или 'Extreme Value'Распределение экстремальных значенийλ: параметр местоположенияstart: параметр scale
'gam' или 'Gamma'Гамма-распределениеa: параметр формыb: параметр масштаба
'gev' или 'Generalized Extreme Value'Обобщенное распределение экстремальных значенийk: параметр формыstart: параметр scaleλ: параметр местоположения
'gp' или 'Generalized Pareto'Обобщенное распределение Паретоk: параметр индекса хвоста (форма)start: параметр scalestart: параметр threshold (местоположение)
'geo' или 'Geometric'Геометрическое распределениеp: параметр вероятности
'hn' или 'Half Normal'Распределение половинной нормыλ: параметр местоположенияstart: параметр scale
'InverseGaussian'Обратное гауссово распределениеλ: параметр масштабаλ: параметр формы
'Logistic'Логистическое распределениеλ: среднее значение start: параметр scale
'LogLogistic'Логистическое распределениеλ: среднее логарифмических значенийλ: параметр шкалы логарифмических значений
'logn' или 'LogNormal'Логнормальное распределениеλ: среднее логарифмических значенийλ: стандартное отклонение логарифмических значений
'Nakagami'Распределение Накагамиλ: параметр формыstart: параметр scale
'nbin' или 'Negative Binomial'Отрицательное биномиальное распределениеr: число успешных операцийpВероятность успеха в одном испытании
'norm' или 'Normal'Нормальное распределениеλ: среднее значение λ: стандартное отклонение
'poiss' или 'Poisson'Распределение Пуассонаλ: среднее значение
'rayl' или 'Rayleigh'Распределение Рэлеяb: параметр масштаба
'Rician'Распределение Ricians: параметр нецентральностиstart: параметр scale
'Stable'Стабильное распределениеα: первый параметр формыβ: параметр второй формыγ: параметр масштабаδ: параметр местоположения
'tLocationScale't Распределение по местоположению и масштабированиюλ: параметр местоположенияstart: параметр scalestart: параметр shape
'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 и один или более индивидуальных параметров распределения в качестве входных параметров и возвращает вектор логарифмических значений вероятности.

Например, если имя пользовательской функции плотности вероятности log равно 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' если доступна Toolbox™ оптимизации.

'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, неполный поток в функциях распределения может привести к бесконечным log-вероятностям.

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