mlecov

Асимптотическая ковариация средств оценки наибольшего правдоподобия

Описание

пример

acov = mlecov(params,data,'pdf',pdf) возвращает приближение в асимптотическую ковариационную матрицу средств оценки наибольшего правдоподобия параметров для распределения, заданного пользовательской функцией плотности вероятности pdf.

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

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

пример

acov = mlecov(params,data,'logpdf',logpdf) возвращает acov для распределения, заданного пользовательской логарифмической функцией плотности вероятности logpdf.

пример

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

пример

acov = mlecov(params,data,'nloglf',nloglf) возвращает acov поскольку распределение, заданное пользовательской отрицательной логарифмической правдоподобностью, функционируют nloglf.

пример

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

Примеры

свернуть все

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

load carbig

Векторный Weight показывает веса 406 автомобилей.

В Редакторе MATLAB® создайте функцию, которая возвращает функцию плотности вероятности (PDF) логарифмически нормального распределения. Сохраните файл в своей текущей рабочей папке как lognormpdf.m.

function newpdf = lognormpdf(data,mu,sigma)
newpdf = exp((-(log(data)-mu).^2)/(2*sigma^2))./(data*sigma*sqrt(2*pi));

Оцените параметры, mu и sigma, из пользовательски заданного распределения.

phat = mle(Weight,'pdf',@lognormpdf,'start',[4.5 0.3])
phat =

    7.9600    0.2804

Вычислите аппроксимированную ковариационную матрицу оценок параметра.

acov = mlecov(phat,Weight,'pdf',@lognormpdf)
acov =

   1.0e-03 *

    0.1937   -0.0000
   -0.0000    0.0968

Оцените стандартные погрешности оценок.

se = sqrt(diag(acov))
se =

    0.0139
    0.0098

Стандартная погрешность оценок mu и сигмы 0.0139 и 0.0098, соответственно.

В редакторе MATLAB создайте функцию, которая возвращает логарифмическую функцию плотности вероятности бета распределения. Сохраните файл в своей текущей рабочей папке как betalogpdf.m.

function logpdf = betalogpdf(x,a,b)
logpdf = (a-1)*log(x)+(b-1)*log(1-x)-betaln(a,b);

Сгенерируйте выборочные данные от бета распределения параметрами 1.23 и 3.45 и оцените параметры с помощью симулированных данных.

rng('default')
x = betarnd(1.23,3.45,25,1);
phat = mle(x,'dist','beta')
phat =

    1.1213    2.7182

Вычислите аппроксимированную ковариационную матрицу оценок параметра.

acov = mlecov(phat,x,'logpdf',@betalogpdf)
acov =

    0.0810    0.1646
    0.1646    0.6074

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

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, соответственно.

Вычислите аппроксимированную ковариационную матрицу оценок параметра.

acov = mlecov(phat,ReadmissionTime,...
'logpdf',custlogpdf,'logsf',custlogsf,'Censoring',Censored)
acov = 2×2

    0.5653    0.0102
    0.0102    0.0163

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

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

Вычислите отклонение оценки параметра.

acov = mlecov(phat,ReadmissionTime,'nloglf',custnloglf)
acov = 2.1374e-04

Вычислите стандартную погрешность.

sqrt(acov)
ans = 0.0146

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

свернуть все

Параметр оценивает в виде скалярного значения или вектора из скалярных значений. Эти оценки параметра должны быть оценками наибольшего правдоподобия. Например, можно задать оценки параметра, возвращенные mle.

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

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

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

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

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

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

Пример: @newpdf

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

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

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

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

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

Пример: @newcdf

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

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

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

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

Пример: @customlogpdf

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

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

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

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

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

Пример: @logsurvival

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

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

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

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

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

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

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

Пример: @negloglik

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

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

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

Пример: 'Censoring',cens,'Options',opt задает тот mlecov считывает подвергнутые цензуре информации данных из векторного cens и выполняет согласно новой структуре опций opt.

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

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

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

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

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

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

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

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

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

Числовые опции для вычисления Гессиана конечной разности в виде разделенной запятой пары, состоящей из 'Options' и структура, возвращенная statset.

Можно установить опции под новым именем и использовать его в аргументе пары "имя-значение". Применимый statset параметры следующие.

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

Значением по умолчанию является 'off'.

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

'DerivStep'

Значением по умолчанию является eps^(1/4).

Относительный размер шага используется в конечной разности для вычислений Гессиана. Это может быть скаляр или тот же размер как params. Меньшее значение, чем сила по умолчанию быть соответствующим, если 'GradObj' 'on'.

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

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

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

свернуть все

Приближение к асимптотической ковариационной матрице, возвращенной как p-by-p матрица, где p является количеством параметров в params.

Больше о

свернуть все

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

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

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