mlecov

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

Описание

пример

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

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

пример

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

пример

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

пример

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

Примеры

свернуть все

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

load carbig

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

Задайте пользовательскую функцию, которая возвращает 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,pci] = mle(Weight,'pdf',@lognormpdf,'Start',[4.5 0.3])
phat = 1×2

    7.9600    0.2804

pci = 2×2

    7.9327    0.2611
    7.9872    0.2997

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

acov = mlecov(phat,Weight,'pdf',@lognormpdf)
acov = 2×2
10-3 ×

    0.1937   -0.0000
   -0.0000    0.0968

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

se = sqrt(diag(acov))'
se = 1×2

    0.0139    0.0098

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

Повторно вычислите доверительные интервалы pci от стандартной погрешности se при помощи Вальдового метода (нормальное приближение).

alpha = 0.05;
probs = [alpha/2; 1-alpha/2];
pci2 = norminv(repmat(probs,1,numel(phat)),[phat; phat],[se; se])
pci2 = 2×2

    7.9327    0.2611
    7.9872    0.2997

Задайте пользовательскую функцию, которая возвращает журнал PDF бета распределения. Сохраните файл в своей текущей папке как 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') % For reproducibility
x = betarnd(1.23,3.45,25,1);
phat = mle(x,'Distribution','beta')
phat = 1×2

    1.1213    2.7182

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

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

    0.0810    0.1646
    0.1646    0.6074

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

load('readmissiontimes.mat')

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

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

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

Оцените параметр пользовательского дистрибутива и задайте его начальное значение параметров (Start аргумент значения имени).

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

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

load('readmissiontimes.mat');

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

Задайте пользовательскую логарифмическую функцию плотности вероятности (PDF) и регистрируйте функцию выживания для распределения Weibull с масштабным коэффициентом lambda и параметр формы k. Когда данные содержат подвергнутые цензуре наблюдения, необходимо передать обоих журнал PDF и логарифмическая функция выживания к mle и mlecov.

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

Оцените параметры пользовательского дистрибутива для подвергнутых цензуре выборочных данных. Задайте начальные значения параметров (Start аргумент значения имени) для пользовательского дистрибутива.

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

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

свернуть все

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

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

Выборочные данные и информация о цензуре раньше оценивали параметры распределения paramsВ виде вектора из выборочных данных или матрицы 2D столбца выборочных данных и информации о цензуре.

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

Задайте data как вектор или матрица 2D столбца в зависимости от типов цензуры наблюдений в data.

  • Полностью наблюдаемые данные — Задают data как вектор из выборочных данных.

  • Данные, которые содержат полностью наблюдаемые, лево-подвергнутые цензуре, или подвергнутые цензуре правом наблюдения — Задают data как вектор из выборочных данных, и задают Censoring аргумент значения имени как вектор, который содержит информацию о цензуре для каждого наблюдения. Censoring вектор может содержать 0, –1, и 1, которые относятся к полностью наблюдаемым, лево-подвергнутым цензуре, и подвергнутым цензуре правом наблюдениям, соответственно.

  • Данные, которые включают подвергнутые цензуре интервалом наблюдения — Задают data как матрица 2D столбца выборочных данных и информации о цензуре. Каждая строка data указывает диапазон возможных времен выживания или отказа для каждого наблюдения и может иметь одно из этих значений:

    • [t,t] — Полностью наблюдаемый в t

    • [–Inf,t] — Лево-подвергнутый цензуре в t

    • [t,Inf] — Подвергнутый цензуре правом в t

    • [t1,t2] — Подвергнутый цензуре интервалом между [t1,t2], где t1 <t2

mlecov игнорирует NaN значения в data. Кроме того, любой NaN значения в векторе цензурирования (Censoring) или вектор частоты (Frequency) причина mlecov проигнорировать соответствующие строки в data.

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

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

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

Пример: @newpdf

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

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

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

Пример: @customlogpdf

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

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

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

Входной параметр пользовательской функцииОписание
paramsВектор из значений параметра распределения params.
dataВыборочные данные. data значение является вектором из выборочных данных или матрицей 2D столбца информации о цензуре и выборочных данных.
censЛогический вектор из информации о цензуре. nloglf должен принять cens даже если вы не используете Censoring аргумент значения имени. В этом случае можно записать nloglf проигнорировать cens.
freqЦелочисленный вектор из частот данных. nloglf должен принять freq даже если вы не используете Frequency аргумент значения имени. В этом случае можно записать nloglf проигнорировать freq.
truncДвухэлементный числовой вектор из границ усечения. nloglf должен принять trunc если вы используете TruncationBounds аргумент значения имени.

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

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

Пример: @negloglik

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

Аргументы name-value

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

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

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

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

Для подвергнутых цензуре или усеченных наблюдений необходимо задать оба cdf и pdf. Для полностью наблюдаемых и неусеченных наблюдений, mlecov не использует cdf. Можно указать информацию цензуры при помощи любого data или Censoring и задайте границы усечения при помощи TruncationBounds.

Пример: 'cdf',@newcdf

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

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

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

Для подвергнутых цензуре или усеченных наблюдений необходимо задать оба logsf и logpdf. Для полностью наблюдаемых и неусеченных наблюдений, mlecov не использует logsf. Можно указать информацию цензуры при помощи любого data или Censoring и задайте границы усечения при помощи TruncationBounds.

Пример: 'logsf',@logsurvival

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

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

Вы не можете задать подвергнутые цензуре интервалом наблюдения с помощью этого аргумента. Если выборочные данные включают подвергнутые цензуре интервалом наблюдения, задайте data использование матрицы 2D столбца. mlecov игнорирует Censoring значение, если data матрица 2D столбца.

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

mlecov игнорирует любой NaN значения в векторе цензурирования. Кроме того, любой NaN значения в data или вектор частоты (Frequency) причина mlecov проигнорировать соответствующие значения в векторе цензурирования.

Пример: 'Censoring',censored, где censored вектор, который содержит информацию о цензуре.

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

Усечение ограничивает в виде вектора из двух элементов.

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

Пример: 'TruncationBounds',[0,10]

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

Частота наблюдений в виде вектора из неотрицательных целочисленных количеств, который имеет одинаковое число строк как data. jэлемент th Frequency значение дает числу раз jстрока th data наблюдался. Значением по умолчанию является вектор 1 с, указывая на одно наблюдение на строку data.

mlecov игнорирует любой NaN значения в этом векторе частоты. Кроме того, любой NaN значения в data или вектор цензурирования (Censoring) причина mlecov проигнорировать соответствующие значения в векторе частоты.

Пример: 'Frequency',freq, где freq вектор, который содержит частоты наблюдения.

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

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

mlecov функция интерпретирует следующее statset опции.

Имя поляОписание
GradObj

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

DerivStep

Относительный размер шага используется в конечной разности для вычислений Гессиана в виде вектора одного размера с params.

Значением по умолчанию является eps^(1/4). Меньшее значение, чем сила по умолчанию быть соответствующим, если 'GradObj' 'on'.

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

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

Больше о

свернуть все

Типы цензуры

mlecov поддержки лево-подвергнутые цензуре, подвергнутые цензуре правом, и подвергнутые цензуре интервалом наблюдения.

  • Лево-подвергнутое цензуре наблюдение во время t — Событие имело место перед временем t, и точное время события неизвестно.

  • Подвергнутое цензуре правом наблюдение во время t — Событие имело место после времени t, и точное время события неизвестно.

  • Подвергнутое цензуре интервалом наблюдение в интервале [t1,t2] — Событие имело место после времени t1 и перед временем t2, и точное время события неизвестно.

Дважды подвергнутые цензуре данные включают и лево-подвергнутые цензуре и подвергнутые цензуре правом наблюдения.

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

Функция выживания является вероятностью выживания в зависимости от времени. Это также вызвано функция оставшегося в живых.

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

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