Простыми словами о методе максимального правдоподобия и информации Фишера. python.. python. анализ данных.. python. анализ данных. аналитика.. python. анализ данных. аналитика. искусственный интеллект.. python. анализ данных. аналитика. искусственный интеллект. математика.. python. анализ данных. аналитика. искусственный интеллект. математика. Машинное обучение.. python. анализ данных. аналитика. искусственный интеллект. математика. Машинное обучение. нейронные сети.. python. анализ данных. аналитика. искусственный интеллект. математика. Машинное обучение. нейронные сети. статистика.. python. анализ данных. аналитика. искусственный интеллект. математика. Машинное обучение. нейронные сети. статистика. Статистика в IT.

Всем привет! Сегодня я хотел бы рассказать про метод максимального правдоподобия и информацию Фишера и еще несколько смежных тем, которые активно используются в машинном обучении и анализе данных. Расскажу я об этом просто, понятно и без воды, но с практическими примерами, в том числе на Python.

Сейчас я кратенько и водянисто расскажу о проблематике, а потом перейдем непосредственно к теме. Обещаю всю воду оставить исключительно здесь)

Итак, в свое время, на осознание метода максимального правдоподобия и информации Фишера я потратил достаточно большое количество времени и усилий, так как все, что находилось по этой теме в Интернете, было очень скомкано, намешано, лишено практического смысла и, ну, просто как-то фрагментировано. На данный момент, ситуация не сильно поменялась (если это не так, буду рад увидеть материалы в комментариях). Тем не менее, в конце статьи я оставлю дополнительные материалы, которые раскрывают то, что описано в статье либо глубже, либо компактнее, либо с другой стороны.

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

Все же, некий бэкграунд у читателя должен быть:

  • средний уровень статистики, в целом;

  • дискретные и непрерывные распределения;

  • смысл производных первых двух порядков;

  • простейшие преобразования векторов и матриц;

  • свойства логарифмов;

  • понимание смысла пределов и асимптотики.

На этом, вроде бы, все, присаживайтесь поудобнее, заварите кофейку и достаньте печеньки, нам предстоит интересный путь.

P.S. Я достаточно формальный человек, но хотел бы написать эту статью на максимально понятном языке для простоты восприятия и нивелирования эффекта отторжения. Так что не бросайтесь камнями, формальщины в Интернете как раз-таки полно. С другой стороны, после скроллинга, не пугайтесь обилием формул, большинство из них относятся к разделу с примерами.

Содержание

  1. Введение

  2. Метод максимального правдоподобия

    1. Теория

    2. Полная схема

    3. Пример с непрерывным распределением

    4. Пример с дискретным распределением

  3. Информация Фишера

  4. Неравенство Рао-Крамера

  5. Свойства оценок правдоподобия

  6. Тест отношения правдоподобий

  7. Условия регулярности статистической модели

    1. Условия

    2. Следствия

  8. Заключение

Введение

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

Метод максимального правдоподобия (ММП) является фундаментальным подходом, предназначенным для получения оценок параметров, обладающих оптимальными асимптотическими свойствами (Свойства оценок правдоподобия) при соблюдении регулярных условий (Условия регулярности). Вся мощность данного метода проявляется в задачах, где минимизируются показатели ошибок вроде MSE, MAE, logloss, Huber loss и другие. Также, с помощью ММП мы можем оценить какое распределение лучше описывает наши данные. Для этого необходимо оценить параметры обоих распределений с использованием данного метода и сравнить значения функции правдоподобия.

Информация Фишера позволяет количественно оценить, насколько данные «информативны» относительно неизвестных параметров, то есть насколько много они содержат в себе информации. Данный показатель служит основой для определения асимптотической дисперсии оценок, полученных методом максимального правдоподобия. Этот показатель критически важен при анализе чувствительности моделей, построении доверительных интервалов и проведении гипотез тестирования, что достаточно актуально при работе с алгоритмами классификации и регрессионными задачами.

Хотел бы подчеркнуть, что по ходу статьи я буду ссылаться на условия регулярности, но каждый раз расписывать их не буду, а размещу их, вместе со следствиями и подробным разбором в конце статьи в разделе Условия регулярности статистической модели. Если хотите, можете подробно с ними ознакомиться там, однако понимание всех условий скорее вишенка на торте, а не крайняя необходимость, так что решайте сами. В любом случае, я там все расписываю достаточно понятным языком шаг за шагом.

Метод максимального правдоподобия

Теория

Правдоподобие (likelihood function) — это вероятность получить наблюдаемую выборку при конкретном значении параметра.

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

Интуиция метода заключается в том, что существует некая генеральная совокупность, из которой к нам в руки попала некоторая выборка. Мы же, как исследователи, хотим понять каким образом устроена генеральная совокупность. Для этого мы делаем предположение, что выборка, которая к нам пришла, соответствует определенной модели. В простейшем случае, мы можем сформулировать предположение так: выборка к нам пришла из распределения с плотностью f(x  |  theta). Параметр theta является константой, мы его не знаем и пытаемся оценить по выборке.

Поясню, чтобы не путаться в обозначениях, что под theta может подразумеваться как один, так и несколько параметров, то есть:

  • Если у нашей модели один параметр, он обозначается как theta, где thetaскаляр.

  • Если у модели несколько параметров, они тоже обозначаются как theta, где thetaвектор.

Но причем тут “максимальное” правдоподобие? Дело в том, что главная задача ММП заключается в том, чтобы максимизировать вероятность появления имеющейся выборки по параметру theta. То есть мы пытаемся оценить theta так, чтобы вероятность получить текущую выборку из определенной модели была максимальной.

Ключевым понятием данного метода является функция правдоподобия, поэтому давайте выпишем ее математическую постановку. Строго говоря, если мы работаем с дискретным распределением, тогда постановка будет следующей:

L(theta  |  x_1, ..., x_n)=mathbb{P}(x_1, ..., x_n  |  theta)

если же речь идет о непрерывном распределении, тогда:

L(theta  |  x_1, ..., x_n)=f(x_1, ..., x_n  |  theta)

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

L(theta  |  x_1, ..., x_n)=f(x_1  |  theta)  cdot  ...  cdot  f(x_n  |  theta)=prod_{i=1}^nf(x_i  |  theta)

Хорошо, но какое значение параметра более правдоподобно, а какое менее?

С этим все крайне просто. Говорят, что значение параметра theta_1 более правдоподобно, нежели значения параметра theta_2, если выполняется условие:

L(theta_1  |  x_1, ..., x_n) > L(theta_2  |  x_1, ..., x_n)

Таким образом, вспоминая, что ключевой задачей является максимизация правдоподобия приходим к следующей постановке:

L(theta  |  x_1, ..., x_n)=prod_{i=1}^nf(x_i  |  theta) to max_{theta}

Более формально это записывается как:

hattheta^{MLE}=argmax_theta L(theta  |  x_1, ..., x_n)

Здесь под MLE подразумевается maximum likelihood estimation, то есть оценка максимального правдоподобия.

Теперь, когда у нас имеется постановка, ммы можем приступить к поиску той самой оптимальной оценки. Однако, для начала, давайте поймем, что, на самом деле, максимизация функции L(theta) равносильна максимизации натурального логарифма от нее. В свою очередь, полученный натуральный логарифм максимизировать гораздо проще, потому что по свойствам логарифма произведения превращаются в суммы, а с суммами работать намного удобнее. Таким образом, давайте откорректируем постановку:

ln{L}=sum_{i=1}^nln{(f(x_i  |  theta))} to max_{theta}

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

frac{partial ln{L}}{partial theta}=sum_{i=1}^nfrac{partial ln{f(x_i  |  theta)}}{partialtheta}=0

Простыми словами о методе максимального правдоподобия и информации Фишера - 21

В целом, первый этап пройден! Возможно, на данный момент, интуиция все еще не совсем ясна, но ниже я опишу по-этапно алгоритм решения и приведу несколько наглядных примеров с дискретным и непрерывным распределениями.

Полная схема

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

  1. Определяем функцию плотности:

    f(x  |  theta) text{ или } mathbb{P}(x  |  theta)

  2. Формулируем функцию правдоподобия:

    L(theta  |  x)=f(x_1  |  theta) cdot ldots cdot f(x_n  |  theta)

  3. Сокращаем функцию и устанавливаем параметры для максимизации:

    prod_{i=1}^nf(x_i  |  theta) to max_{theta}

  4. Логарифмируем функцию правдоподобия :

    ln L=lnprod_{i=1}^nf(x_i  |  theta)=sum_{i=1}^nln f(x_i  |  theta) to max_{theta}

  5. Дифференцируем функцию правдоподобия по параметру theta:

    frac{partial ln{L}}{partial theta}=sum_{i=1}^nfrac{partial ln{f(x_i  |  theta)}}{partial theta}

  6. Приравниваем к нулю и ищем решения:

    sum_{i=1}^nfrac{partial ln{f(x_i  |  theta)}}{partial theta}=0

Пример с непрерывным распределением

Теперь, переходя от теории к практике, давайте посмотрим на несколько примеров. Один из них будет для дискретного случая, а другой — для непрерывного. Суть примеров будет заключатся в том, что мы попытаемся найти оценку параметров распределений методом максимального правдоподобия.

Для первого примера возьмем нормальное распределение, которое имеет 2 параметра: mu и sigma^2. Убедимся, что hatsigma^2=cfrac{1}{n} sum{(x_i - bar{x})^2}, а hatmu=cfrac{1}{n} sum{(x_i)}. Таким образом, параметр theta будет представлять из себя вектор.

  1. Определяем функцию плотности:

    N(mu, sigma^2)=frac{1}{sqrt{2 pi sigma^2}} cdot e^{-cfrac{(x - mu)^2}{2sigma^2}}

  2. Формулируем функцию правдоподобия:

    L(mu, sigma^2  |  x)=frac{1}{sqrt{2 pi sigma^2}} cdot e^{-cfrac{(x_1 - mu)^2}{2sigma^2}}  cdot ... cdot  frac{1}{sqrt{2 pi sigma^2}} cdot e^{-cfrac{(x_n - mu)^2}{2sigma^2}}

  3. Сокращаем функцию и устанавливаем параметры для максимизации:

    (2pisigma^2)^{-cfrac{n}{2}} cdot e^{-cfrac{sum{(x_i - mu)^2}}{2sigma^2}} to max_{mu, sigma^2}

  4. Логарифмируем функцию правдоподобия:

    begin{align} ln{L} &=lnBigg((2pisigma^2)^{-cfrac{n}{2}} cdot e^{-cfrac{sum{(x_i - mu)^2}}{2sigma^2}}Bigg)=\ &=-frac{n}{2} cdot ln(2pi) -frac{n}{2} cdot ln(sigma^2) - frac{1}{2sigma^2} cdot sum(x_i-mu)^2 to max_{mu, sigma^2} end{align}

  5. Дифференцируем логарифмическую функцию правдоподобия по параметру theta:

    • Производная по mu:

      frac{partial ln{L}}{partial mu}=frac{1}{sigma^2} cdot sum{(x_i - mu)}

    • Производная по sigma^2:

      frac{partial ln{L}}{partial sigma^2}=-frac{n}{2sigma^2} + frac{1}{2sigma^4} cdot sum{(x_i - mu)^2}

  6. Приравниваем к нулю и ищем решение:

    begin{cases}  cfrac{1}{hatsigma^2} cdot sum{(x_i - hatmu)}=0 \ -cfrac{n}{2hatsigma^2} + cfrac{1}{2hatsigma^4} cdot sum{(x_i - hatmu)^2}=0 end{cases} Rightarrow begin{cases}  sum{(x_i - hatmu)}=0 \ -n + cfrac{1}{hatsigma^2} cdot sum{(x_i - hatmu)^2}=0 end{cases}

  7. Получаем решение:

    begin{cases}  hatmu_{ML}=cfrac{1}{n}sum{x_i}=bar{x} \ hatsigma^2_{ML}=cfrac{1}{n} sum{(x_i - bar{x})^2}=hatsigma^2 end{cases}

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

Пример с дискетным распределением

Следующий пример будет раскрывать принцип работы ММП с дискретным распределением, а именно с распределением Бернулли.

Допустим, что у нас есть некоторая выборка наблюдений о том, любит ли человек кофе или нет. В данном случае, вариант ответа “Люблю кофе” — 1, а “Не люблю кофе” — 0. Респонденты были опрошены независимо. Таким образом, наша выборка имеет следующий вид: x_1=1, x_2=0, x_3=1, ..., x_n=0.

Давайте построим таблицу вероятностей, которая будет выглядеть следующим образом:

bf{X_i}

bf{0}

bf{1}

mathbb{P}(X_i=k)

1 - p

p

Таким образом, нашей задачей здесь является найти ML-оценку (maximum likelihood) для параметра p.

  1. Приступим к простейшим преобразованиям (здесь шаги 1-3 объединены для краткости):

    begin{align} L(p  |  x_1, ldots, x_n) &=mathbb{P}(x_1  |  p)  times ldots times  mathbb{P}(x_n  |  p)=\ &=p times (1-p) times p times ldots times (1-p)=\ &=bf{p^{Sigma{x_i}} times (1-p)^{n -{Sigma{x_i}}} to max_p}end{align}

  2. Прологарифмируем выражение:

    begin{align} ln{(L)} &=ln{(p^{Sigma{x_i}} cdot (1-p)^{n -{Sigma{x_i}}})}=\ &=sum{x_i} cdot ln{(p)} + (n  - sum{x_i}) cdot ln{(1 - p)} to max_p end{align}

  3. Теперь нам необходимо найти производную по p:

    frac{partial ln{L}}{partial p}=frac{sum{x_i}}{p} - frac{(n  - sum{x_i})}{(1-p)}

  4. Далее над p появляются колпачки (не забываем про это), так как мы приступаем к оцениванию параметра:

    frac{sum{x_i}}{hat{p}} - frac{(n  - sum{x_i})}{(1-hat{p})}=0

  5. Пользуясь простейшими преобразованиями получаем следующее решение:

    hat{p}^{ML}=frac{1}{n}sum{x_i}=bar{x}

Вот и все! Неплохая получилась история: интересная, весёлая, порой немного грустная, а главное поучительная…

©️ Огузок

А мы двигаемся дальше к информации Фишера)

Информация Фишера

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

В идеале, нам хочется, чтобы функция правдоподобия была выпуклой и очень острой, чтобы максимум был как можно более ярко выраженным. Считается, что чем более очевиден максимум функции, то есть чем более он выражен, тем больше выборка содержит в себе информации о параметрах модели. При увеличении количества наблюдений (то есть размера выборки), мы накапливаем информацию, что напрямую влияет на пикообразность функции правдоподобия.

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

Информация Фишера — это способ количественно оценить количество информации, которое одна случайная величина содержит о другой.

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

Далее приведенные формулы будут подразумевать выполнение условий регулярности 1-5, которые на практике выполняются почти всегда. Плюс ко всему, на практике проще оценить информацию Фишера вторыми производными. А с канонической постановкой информации Фишера можно ознакомиться в Следствии №2 в Условия регулярности.

  • Наблюдаемая информация Фишера (Observed Fisher information) — это информация о параметре theta, которую несет конкретная реализация x случайной величины X. Она вычисляется по формуле:

    I_{obs}(theta)=- frac{partial^2ln{L}}{partialtheta^2}

    Помним, что функция правдоподобия раскрывается и подставляются конкретные x. Таким образом, x — это конкретное наблюдаемое значение случайной величины X.

    Если же требуется оценить несколько параметров модели, формально говоря, вектор параметров, тогда информация Фишера будет представлена матрицей Гессе (гессианом).

    I_{obs}(theta)=- frac{partial^2ln{L}}{partialtheta_ipartialtheta_j}=-H

    Важно понимать, что употребляя в формулах H (гессиан), мы должны интерпретировать это как многомерный случай.

  • Ожидаемая/Теоретическая информация Фишера (Expected Fisher information) — это среднее количество информации, которое случайная величина X дает о неизвестном параметре theta некоторого распределения. Так, если мы хотим взять не наблюдаемую, а теоретическую информацию, тогда нам необходимо взять математическое ожидание от гессиана, такая матрица будет называться информационной матрицей Фишера:

    I(theta)=- mathbb{E}bigg[frac{partial^2ln{L}}{partialtheta_ipartialtheta_j}bigg]=-mathbb{E}(H)

    Смысл этой формулы в том, что информация тем больше, чем сильнее ln{L} меняется при изменении параметра theta. Вторая производная логарифма как раз измеряет эту чувствительность. Соответственно, такую величину следует интерпретировать как крутизну функции правдоподобия для одного наблюдения.

Важно отметить различия:

  • наблюдаемая информация Фишера зависит от конкретного значения наблюдений;

  • ожидаемая (теоретическая) информация Фишера зависит исключительно от конкретного вида модели, подобранного для наблюдений, и отражает какую информацию вносит в правдоподобие одно наблюдение в среднем.

Теперь откатимся немного назад и с текущими знаниями проговорим пару моментов.

  1. Следствием выдвинутых условий регулярности является то, что мы можем вывести формулу для информации Фишера, в двух разных вариантах, а именно:

    I_1(theta)=mathbb{E}bigg[bigg(frac{partial ln{f(x  |  theta)}}{partial theta}bigg)^2bigg]=- mathbb{E}bigg[frac{partial^2 ln{f(x  |  theta)}}{partial theta^2}bigg]

    Эта формула используется для одного теоретического наблюдения, при расчете наблюдаемой информации Фишера, знаки математического ожидания сгорают и x меняется на x_1, ldots, x_n.

  2. Важно понимать, что теоретическая информация Фишера по всем наблюдениям это n cdot I_1(theta) в то время, как при подсчете эмпирической информации по всей выборке придется по-честному посчитать вторую производную от при каждом x_i и сложить их все, так как разные наблюдаемые значения, несут в себе разную информацию.

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

На этом с информацией Фишера aka дисперсией ML-оценки у нас все) Осталось только обсудить эффективность

Неравенство Рао-Крамера

Далее, важным фактом является то, что, если функция плотности распределения удовлетворяет условиям регулярности №1-4 и hattheta является несмещенной оценкой параметра theta, тогда выполняется так называемое неравенство Рао-Крамера:

Var(hattheta) ge I_n(theta)^{-1}

И на этом моменте давайте договоримся записывать I(theta) в подобных случаях как I(theta)^{-1}, а не в виде frac{1}{I(theta)}, подразумевая многомерный случай.

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

Важно отметить, что вне условий, выдвинутых для формулирования неравенства Рао-Крамера, существуют “сверхэффективные” оценки, чья дисперсии стремится к нулю быстрее, нежели для тех оценок, которые удовлетворяют поставленным условиям. В частности, для mathbb{U}(0, theta)(равномерного распределения с неизвестным правым концом) оценка Var(hattheta_{ML}) стремится к нулю как frac{1}{n^2}, в то время, как для регулярных моделей Var(hattheta_{ML}) стремится к нулю как frac{1}{n}, то есть медленнее, по той причине, что I_n(hattheta)=n cdot I_1(hattheta), где n — размер выборки.

Довольно часто можно перепутать смысл неравенства Рао-Крамера и информации Фишера. Неравенство Рао-Крамера говорит о дисперсии hattheta_{ML} (ML-оценки), а информация Фишера — о дисперсии frac{partialln{L}}{partialtheta} (функции счетчика), которая обеспечивает информативность данных.

Свойства оценок правдоподобия

Если выполнены Условия регулярности №1-6, тогда решение уравнения frac{partial ln{L}}{partial theta}=0действительно является оценкой максимального правдоподобия. То есть, если приведенные условия выполнены, тогда наша оценка гарантировано будет максимумом, а не просто экстремумом и проверять ничего не нужно.

Непосредственно сами свойства:

  • состоятельностьlim_{n to infty}hattheta stackrel{p}{to} theta;

  • асимптотическая нормальность hattheta stackrel{asy}{sim} N(theta, I_1(theta)^{-1}) — среди всех асимптотически нормальных оценок эта дисперсия глобально самая маленькая.

  • асимптотическая эффективность lim_{n to infty}Var(hattheta)=I_n(theta)^{-1} — это означает, что при увеличении числа наблюдений в выборке, в пределе, дисперсия ML-оценки ложится на свою нижнюю границу, которую задает неравенство Рао-Крамера.

  • инвариантность — если g(x) — непрерывная функция, тогда g(hattheta) оценка для g(theta).

Тест отношения правдоподобий

Метод тестирования отношения правдоподобий позволяет сравнить, насколько хорошо данные объясняются моделью при выполнении ограничений (нулевая гипотеза H_0​) по сравнению с моделью без этих ограничений (альтернативная гипотеза H_1​).

Тест отношения правдоподобий заключается в том, что мы считаем hattheta_{ML} по логарифмированной функции правдоподобия без ограничений и hattheta_0 с ограничениями. А дальше вычитаем их друг из друга и смотрим насколько большая получилась разность.

Но почему тогда “отношение”, если мы вычитаем? Напомню, что работать проще с логарифмами функций правдоподобия, а после простейших преобразований с логарифмами, отношение превращается в вычитание.

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

Итак, переходим к алгоритм:

  1. Формулируем гипотезы. В нулевой гипотезе задается определенное ограничение на параметры модели — H_0:  theta=theta_0. В альтернативной параметр(ы) не ограничены, то есть принимается, что данные могут иметь иное значение параметра — H_a:  theta ne theta_0.

  2. Формулируем функции правдоподобия для каждой из гипотез. Для гипотезы H_0 наша функция правдоподобия будет обозначаться как ln{L_{R}} (restricted), а для H_aln{L_{UR}} (unrestricted).

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

  4. Вычисляем статистику. После того, как мы получили некоторые значения для ln{L_{R}} и ln{L_{UR}}, нам необходимо вычислить интересующую нас статистик по следующей формуле 2(ln{L_{UR}} - ln{L_{R}}) sim chi^2_q. Утверждается, что такая статистика будет иметь распределение хи-квадрат с q степенями свободы, где q — количество наложенных ограничений.

  5. Находим критическое значение статистики на интересующим нас уровне значимости alpha как делаем это всегда.

  6. Сравниваем критическое значение с наблюдаемым. Если наблюдаемое значение слева от критического — H_0 не отвергается, что означает то, что расстояние очень мало, если наоборот, нулевая гипотеза отвергается и принимается H_a.

Теперь, чтобы немного попрактиковаться давайте поведем тестирование отношения правдоподобий на Python. Мы будем работать со случайной выборкой из 100 наблюдений, которая пришла к нам из нормального распределения со следующими параметрами — N(0, 1). Гипотеза H_0 будет заключаться в том, что mu=0.15, а H_a будет утверждать, что mu=hatmu, то есть обычному оценочному среднему. Приступим к решению:

import numpy as np
from scipy.stats import chi2, norm


np.random.seed(42)

n = 100          # размер выборки
mu_true = 0      # истинное среднее
sigma = 1        # известное стандартное отклонение
alpha = 0.05     # уровень значимости

# Генерируем выборку из нормального распределения
data = np.random.normal(loc=mu_true, scale=sigma, size=n)

# Оценка параметра при H1 (альтернативная гипотеза)
# MLE для параметра `mu` при нормальном распределении с известной дисперсией – выборочное среднее
mu_hat = np.mean(data)

# Вычисление логарифмов правдоподобия
logL_R = np.sum(norm.logpdf(data, loc=0.15, scale=sigma))     # при mu = 0.15 (H0)
logL_UR = np.sum(norm.logpdf(data, loc=mu_hat, scale=sigma))  # при mu = mu_hat (H1)

# Вычисление статистики теста: -2 * (logL_R - logL_UR)
test_statistic = -2 * (logL_R - logL_UR)
print("Статистика теста: {:.4f}".format(test_statistic))

# Вычисление критического значения для уровня значимости alpha = 0.05
critical_value = chi2.ppf(1 - alpha, df=1)
print("Критическое значение: {:.4f}".format(critical_value))

# Вычисление p-value c 1 степенью свободы, ибо мы ограничили один параметр
p_value = 1 - chi2.cdf(test_statistic, df=1)
print("p-value: {:.4f}".format(p_value))

# Принятие решения
if p_value < alpha:
    print("Отвергаем H0: данные не согласуются с предположением mu = 0.15")
else:
    print("Нет оснований отвергать H0: данные согласуются с предположением mu = 0.15")

Таким образом, если мы запустим приведенный выше код, то в выводе получим следующее:

Статистика теста: 6.4438
Критическое значение: 3.8415
p-value: 0.0111
Отвергаем H0: данные не согласуются с предположением mu = 0.15

Все отработало корректно. Понятно, что это крайне наивная имплементация, но для иллюстрации думаю, что более чем предостаточно.

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

Условия регулярности статистической модели

Условия

Условия регулярности не то, что бы обязательны к пониманию, однако очень желательны. В этом разделе я буду писать несколько суше и преимущественно в математических терминах, но постараюсь сглаживать некоторые углы и приводить максимально простые объяснения.

Важно отметить, что основных условий регулярности 4, однако есть дополнительные, которые необходимы, например, для выведения неравенства Рао-Крамера или определенных свойств ML-оценки.

Условие №1

mathbb{A} :={x: f(x  |  theta) > 0} text{ не зависит от } theta

Пояснение

То есть здесь требуется, чтобы область определения наших иксов не зависела от параметра theta. Например, данное условие нарушается для mathbb{U}(0, theta)(равномерного распределения с неизвестным концом).

Условие №2

f(x  |  theta) text{ непрерывно дифференцируема по } theta text{ на всем множестве } mathbb{A}

Пояснение

Тут все очевидно и без комментариев, могу лишь сказать, что данное условие нарушается, например, для mathbb{L}(alpha, theta) (распределение Лапласа с неизвестным параметром сдвига), так как внутри функции плотности f(x)=frac{alpha}{2}e^{-alpha|x-beta|} в степени экспоненты содержится модуль, который мы не сможем продифференцировать.

Условие №3

Производная для int_mathbb{A}f(x  |  theta)dx в непрерывном случае и для Sigma_mathbb{A}f(x  |  theta) в дискретном
случае может быть вычислена путем изменения порядка дифференцирования и интегрирования/суммирования.

Пояснение

Это условие самое важное из всех, потому что позволяет с помощью некоторых математических преобразований получить математическое ожидание и дисперсию для оценки максимального правдоподобия, а также помогает вывести неравенство Рао-Крамера (о нем позже).

Условие №4

Вот такая величина mathbb{E}bigg[bigg(cfrac{partial ln{f(x  |  theta)}}{partial theta}bigg)^2bigg] положительна и конечна. То есть, с точки зрения математической постановки это выглядит так:

0 < mathbb{E}bigg[bigg(frac{partial ln{f(x  |  theta)}}{partial theta}bigg)^2bigg] < infty

Поянение

Позволю себе, немного забегая вперед (до Следствия №2), сказать, что эта величина является дисперсией для frac{partial ln{f(x  |  theta)}}{partial theta} и по совместительству информацией Фишера. И здесь становится очевидно, что дисперсия должна быть конечной и положительной, в том числе потому, что мы будем использовать ее в знаменателе при расчете Var(hattheta) (дисперсии оценки максимального правдоподобия).

И буквально самую малость про нулевую и “бесконечную” дисперсии, в общем:

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

Типичный пример распределения с бесконечной дисперсией — распределение Коши. Сама же по себе бесконечная дисперсия означает, что теоретически разброс данных настолько велик, что дисперсия не может быть определена. И как раз для распределения Коши соответствующий интеграл расходится, что и является причиной бесконечной дисперсии. На самом деле, с точки зрения математики, выражение “бесконечная дисперсия” неверно, в таком случае уместнее говорить, что дисперсия не определена.

Условие №5 (дополнительное)

f(x  |  theta) text{ дважды дифференцируема по } theta text{ на всем множестве } mathbb{A}

Пояснение

Это условие необходимо для того, чтобы мы могли посчитать информацию Фишера. Подробнее об этом можно прочитать в Следствии №2.

Условие №6 (дополнительное)

f(x  |  theta) text{ трижды дифференцируема по } theta text{ на всем множестве } mathbb{A}

Пояснение

Данное условие, позволяет нам говорить о том, что оценка является асимптотически эффективной. Подробнее об этом можно прочитать в Следствии №3.

Следствия

А теперь давайте рассмотрим следствия выдвинутых условий. Самые важные из них заключаются в определении математического ожидания и дисперсии для frac{partial ln{f(x  |  theta)}}{partial theta}, а также информации Фишера.

Следствие №1

Математическое ожидание формулируется следующим образом:

mathbb{E}bigg[frac{partial ln{f(x  |  theta)}}{partial theta}bigg]=0, foralltheta in Theta

Подробное объяснение

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

Подготовка.

В начале было слово… Ой, не то. В начале было определение функции плотности распределения 1=int f(x)dx. Потом мы применили некоторые математические преобразования к frac{partial}{partialtheta}f(x  |  theta) для того, чтобы перейти к работе математическим ожиданием:

frac{partial f(x  |  theta)}{partialtheta}=frac{frac{partial f(x  |  theta)}{partialtheta}}{f(x  |  theta)} cdot f(x  |  theta)=frac{partialln{f(x  |  theta)}}{partialtheta} cdot f(x  |  theta)

Поясняю, что мы сделали:

  1. Первым шагом, мы поделили и умножили производную на одну и ту же величину.

  2. На втором шаге, воспользовались следующим правилом дифференцирования логарифма:

frac{d}{dx}ln{f(x)}=frac{f'(x)}{f(x)}

Основная часть

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

0=int frac{partial f(x  |  theta)}{partialtheta}dx

А дальше сделаем подстановку и получим:

0=int frac{partialln{f(x  |  theta)}}{partialtheta} cdot f(x  |  theta)dx=mathbb{E}bigg[frac{partial ln{f(x  |  theta)}}{partial theta}bigg]

Таким образом, мы и получаем нулевое математическое ожидание.

Следствие №2

Дисперсия функции счетчика формулируется следующим образом:

Varbigg[frac{partial ln{f(x  |  theta)}}{partial theta}bigg]=mathbb{E}bigg[bigg(frac{partial ln{f(x  |  theta)}}{partial theta}bigg)^2bigg]

Подробное объяснение

Здесь все проще, так как у нас есть базовая формула на все случаи жизни:

Var[X]=mathbb{E}[X^2] + mathbb{E}[X]^2

Теперь давайте, произведем подстановку, тогда получится, что:

begin{align} Varbigg[frac{partial ln{f(x  |  theta)}}{partial theta}bigg] &=mathbb{E}bigg[bigg(frac{partial ln{f(x  |  theta)}}{partial theta}bigg)^2bigg] + mathbb{E}bigg[frac{partial ln{f(x  |  theta)}}{partial theta}bigg]^2=\ &=mathbb{E}bigg[bigg(frac{partial ln{f(x  |  theta)}}{partial theta}bigg)^2bigg] + 0^2=\ &=mathbb{E}bigg[bigg(frac{partial ln{f(x  |  theta)}}{partial theta}bigg)^2bigg] end{align}

Поясню, раз, как уже выяснилось из предыдущего пункта, математическое ожидание равно нулю, то есть mathbb{E}bigg[frac{partial ln{f(x  |  theta)}}{partial theta}bigg]=0, тогда возводя ноль в степень мы получаем ноль и, соответственно, остается только первое слагаемое.

Эта дисперсия является информацией Фишера, которую можно выразить в двух разных вариантах:

I(theta)=mathbb{E}bigg[bigg(frac{partial ln{f(x  |  theta)}}{partial theta}bigg)^2bigg]=- mathbb{E}bigg[frac{partial^2 ln{f(x  |  theta)}}{partial theta^2}bigg]

Подробное объяснение
  1. В начале было 1=int f(x)dx и Условие №4, которое позволяет нам менять операции интегрирования и дифференцирования местами.

  2. Теперь давайте продифференцируем обе части 1=int f(x)dx, получим:

    0=int frac{partial f(x  |  theta)}{partialtheta}dx

  3. Далее, поймем, что frac{partial f(x  |  theta)}{partialtheta} мы можем выразить иначе:

    frac{partial f(x  |  theta)}{partialtheta}=frac{frac{partial f(x  |  theta)}{partialtheta}}{f(x  |  theta)} cdot f(x  |  theta)=frac{partialln{f(x  |  theta)}}{partialtheta} cdot f(x  |  theta)

  4. Сделаем подстановку:

    0=int  frac{partialln{f(x  |  theta)}}{partialtheta} cdot f(x  |  theta)dx

  5. Продифференцируем еще раз (работает Условие №5):

    0=int frac{partial}{partial theta} bigg[frac{partialln{f(x  |  theta)}}{partialtheta} cdot f(x  |  theta) bigg]dx

  6. Получаем тождество из применения правила дифференцирования логарифма дважды:

    begin{align} frac{partial^2f(x  |  theta)}{partialtheta^2} &=frac{partial}{partial theta} bigg[frac{partialln{f(x  |  theta)}}{partialtheta} cdot f(x  |  theta) bigg]=\ &=bigg[frac{partial^2ln f(x  |  theta)}{partialtheta^2} bigg]  cdot f(x  |  theta) + bigg[frac{partialln{f(x  |  theta)}}{partialtheta}bigg] bigg[frac{partial f(x  |  theta)}{partialtheta}bigg]=\ &=bigg[frac{partial^2ln f(x  |  theta)}{partialtheta^2} bigg] cdot f(x  |  theta) + bigg[frac{partialln{f(x  |  theta)}}{partialtheta}bigg] bigg[frac{partialln{f(x  |  theta)}}{partialtheta}bigg] cdot f(x  |  theta)=\ &=bigg[frac{partial^2ln f(x  |  theta)}{partialtheta^2} + bigg(frac{partialln f(x  |  theta)}{partialtheta}bigg)^2  bigg] cdot f(x  |  theta) end{align}

  7. Применяем тождество к интегралу:

    begin{align} 0 &=int bigg[frac{partial^2ln f(x  |  theta)}{partialtheta^2} + bigg(frac{partialln f(x  |  theta)}{partialtheta}bigg)^2  bigg] cdot f(x  |  theta)=\ &=int frac{partial^2ln f(x  |  theta)}{partialtheta^2} cdot f(x  |  theta) + int bigg(frac{partialln f(x  |  theta)}{partialtheta}bigg)^2 cdot f(x  |  theta) end{align}

  8. Отсюда следует, что:

    -mathbb{E}bigg[frac{partial^2ln f(x  |  theta)}{partialtheta^2}bigg]=mathbb{E}bigg[bigg(frac{partialln f(x  |  theta)}{partialtheta}bigg)^2bigg]

Соответственно, правое выражение у нас положительное, а левое — отрицательное, поэтому мы его делаем положительным домножая на -1. Итого, мы можем сформулировать информацию Фишера в двух выражениях:

I(theta)=mathbb{E}bigg[bigg(frac{partialln f(x  |  theta)}{partialtheta}bigg)^2bigg]=-mathbb{E}bigg[frac{partial^2ln f(x  |  theta)}{partialtheta^2}bigg]

Следствие №3

Последнее следствие касается свойств оценки максимального правдоподобия, а именно асимптотической эффективности. Для этого нам снова нужно дополнительное условие, а именно: f(x  |  theta) трижды дифференцируема по theta на всем множестве mathbb{A}.

В совокупности выполнение условий №3 и №4 гарантирует, что статистическая модель будет вести себя “хорошо” и позволит получать надежные оценки параметров и доверительные интервалы.

Заключение

Давайте подведем итоги, сформулировав ключевые тезисы:

  • Метод максимального правдоподобия позволяет оценить неизвестный параметр по имеющейся выборке.

  • Информация Фишера позволяет измерить объем информации, которую несет в себе одно наблюдение или выборка наблюдений в целом.

  • Тест отношения правдоподобий позволяет легко проверить гипотезу о том, что параметр или вектор параметров равны какому-то значению.

Таким образом, мы научились:

  • находить MLE (maximum likelihood estimation) интересующих нас параметров;

  • определять какая из двух оценок наиболее правдоподобна;

  • оценивать информативность выборки или конкретного наблюдения;

  • проводить тест отношения правдоподобий.

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

...

Буду крайне признателен фидбеку в комментариях. Например, вы можете предложить как улучшить материал/подачу. Также, если я где-то ошибся или опечатался, поправьте меня, так как БуКаВ действительно много)

Как и обещал, вот список хороших источников:

  1. Плейлист ФКН ВШЭ по статистическим методам анализа данных.

  2. Лекция Андрея Михайловича Райгородского.

  3. Введение в информацию Фишера.

  4. Тесты Вальда, Лагранжа и отношения правдоподобий.

  5. Сборник семинаров Екатерины Михайловны Рядновой.

Автор: denisalpino

Источник

Рейтинг@Mail.ru
Rambler's Top100