exponenta event banner

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

пример

acov = mlecov(params,data,'logpdf',logpdf,'logsf',logsf) прибыль acov для распределения, заданного пользовательской функцией плотности вероятности log 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 и sigma равна 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 и один или более индивидуальных параметров распределения в качестве входных параметров и возвращает вектор логарифмических значений вероятности.

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

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

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