mlecov

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

Синтаксис

acov = mlecov(params,data,'pdf',pdf)
acov = mlecov(params,data,'pdf',pdf,'cdf',cdf)
acov = mlecov(params,data,'logpdf',logpdf)
acov = mlecov(params,data,'logpdf',logpdf,'logsf',logsf)
acov = mlecov(params,data,'nloglf',nloglf)
acov = mlecov(___,Name,Value)

Описание

пример

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

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

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

    0.5653    0.0102
    0.0102    0.0163

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

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

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

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

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

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

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

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

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

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

Пример: @negloglik

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

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

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