mle

Оценки наибольшего правдоподобия

Синтаксис

phat = mle(data)
phat = mle(data,'distribution',dist)
phat = mle(data,'pdf',pdf,'start',start)
phat = mle(data,'pdf',pdf,'start',start,'cdf',cdf)
phat = mle(data,'logpdf',logpdf,'start',start)
phat = mle(data,'logpdf',logpdf,'start',start,'logsf',logsf)
phat = mle(data,'nloglf',nloglf,'start',start)
phat = mle(___,Name,Value)
[phat,pci] = mle(___)

Описание

phat = mle(data) возвращает оценки наибольшего правдоподобия (MLEs) для параметров нормального распределения, с помощью выборочных данных в векторном 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) возвращает оценки параметра для пользовательского дистрибутива, заданного отрицательной функцией loglikelihood nloglf. Необходимо также задать начальные значения параметров, start.

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

пример

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

Примеры

свернуть все

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

load carbig

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

Чертите гистограмму данных MPG.

 histogram(MPG)

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

Оцените параметры распределения Типа XII Шума для данных MPG.

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

   34.6447    3.7898    3.5722

Оценки наибольшего правдоподобия для масштабного коэффициента α 34.6447. Оценки для двух параметров формы c и k из Шума распределение Типа 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.1121    1.6025
    9.0983    3.7362

Оценка для степеней свободы 8.1052, и параметр нецентрированности 2.6693. 95%-й доверительный интервал для степеней свободы (7.1121,9.0983), и параметр нецентрированности (1.6025,3.7362). Доверительные интервалы включают истинные значения параметров 8 и 3, соответственно.

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

load(fullfile(matlabroot,'examples','stats','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(fullfile(matlabroot,'examples','stats','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(fullfile(matlabroot,'examples','stats','readmissiontimes.mat'));

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

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

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

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

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 от распределения 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. Функция плотности требует 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'Подпилите распределение типа 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'Распределение Loglogisticμ: среднее значение логарифмических значенийσ: масштабный коэффициент логарифмических значений
'logn' или 'LogNormal'Логарифмически нормальное распределениеμ: среднее значение логарифмических значенийσ: стандартное отклонение логарифмических значений
'Nakagami'Распределение Nakagamiμ: сформируйте параметрω: масштабный коэффициент
'nbin' или 'Negative Binomial'Отрицательное биномиальное распределениеr: количество успеховp: вероятность успеха в одном испытании
'norm' или 'Normal'Нормальное распределениеμ: среднее значение σ: стандартное отклонение
'poiss' или 'Poisson'Распределение Пуассонаλ: среднее значение
'rayl' или 'Rayleigh'Распределение Релеяb: масштабный коэффициент
'Rician'Распределение Ricians: параметр нецентрированностиσ: масштабный коэффициент
'Stable'Стабильное распределениеα: сначала сформируйте параметрβ: второй параметр формыγ: масштабный коэффициентδ: параметр положения
'tLocationScale't Распределение Шкалы Местоположенияμ: параметр положенияσ: масштабный коэффициентν: сформируйте параметр
'unif' или 'Uniform'(Непрерывное) равномерное распределениеa: более низкая конечная точка (минимум)b: верхняя конечная точка (максимум)
'wbl' или 'Weibull'Распределение Weibulla: масштабный коэффициент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

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

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

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

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

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

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

Пример: @negloglik

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

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

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

Пример: 0.05

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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 для следующих дистрибутивов:

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

Типы данных: логический

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

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

'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™ доступен.

Аргумент пары "имя-значение" '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 сходиться к локальному оптимуму, который не является глобальной переменной maximizer, или не удаваться сходиться полностью. Даже в случаях, для которых логарифмическая вероятность хорошего поведения около глобального максимума, выбор отправной точки часто крайне важен для сходимости алгоритма. В частности, если начальные значения параметров далеки от MLEs, потеря значимости в функциях распределения может привести к бесконечным логарифмическим вероятностям.

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