Python Statsmodels Тестирование коэффициентов из надежной линейной модели на основе M-оценок

У меня есть линейная модель, которую я пытаюсь подогнать к данным с хорошим количеством выбросов в эндогенной переменной, но не в экзогенном пространстве. Я исследовал, что RLM, основанные на M-оценках, хороши в этой ситуации.

Когда я подгоняю RLM к своим данным следующим образом:

import numpy as np
import statsmodels.formula.api as smf
import statsmodels as sm

modelspec = ('cost ~ np.log(units) + np.log(units):item + item') #where item is a categorical variable
results = smf.rlm(modelspec, data = dataset, M = sm.robust.norms.TukeyBiweight()).fit()
print results.summary()

сводные результаты показывают z-статистику, и, по-видимому, коэффициент значимости основан на ней, а не на t-статистике. Однако следующее руководство по R (http://www.dst.unive.it/rsr/BelVenTutorial.pdf) показывает использование t-статистики на стр. 19-21

Два вопроса:

  1. Может ли кто-нибудь объяснить мне концептуально, почему статистические модели используют z-тест, а не t-тест?

  2. Все члены и взаимодействия высоко значимы в результатах (|z| > 4). В большинстве случаев каждый элемент имеет 40 и более наблюдений. Есть некоторые элементы, которые имеют 21-25 наблюдений. Есть ли основания полагать, что RLM неэффективен в среде с небольшой выборкой? Полученная линия должна быть линией наилучшего соответствия после перевзвешивания выбросов, но является ли z-тест эффективным для выборок такого размера (т. е. есть ли причина полагать, что доверительный интервал, полученный с помощью smf.rlm(), не дает 95% вероятностное покрытие?Я знаю, что для t-тестов это потенциально может быть проблемой...)?

Спасибо!


person AllenQ    schedule 03.02.2014    source источник


Ответы (1)


В основном у меня есть только общий ответ, я никогда не читал исследований Монте-Карло с небольшими выборками для М-оценок.

To 1.

Во многих моделях, таких как М-оценки, RLM или обобщенные линейные модели, GLM, мы имеем только асимптотические результаты, за исключением, может быть, нескольких особых случаев. Асимптотические результаты обеспечивают условия нормального распределения оценки. Учитывая это, statsmodels по умолчанию использует нормальное распределение для всех моделей, кроме модели линейной регрессии, OLS и подобных, и хи-квадрат вместо F-распределения для тестов Вальда с совместной гипотезой.

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

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

Есть и другие случаи, когда неясно, следует ли использовать t-распределение и какие небольшие выборочные степени свободы следует использовать. Во многих случаях statsmodels пытается следовать примеру STATA, например, в стандартных ошибках устойчивости кластера после OLS. Другим последствием является то, что иногда эквивалентные модели, которые являются частными случаями разных моделей, используют разные допущения по умолчанию для распределения как в Stata, так и в статистических моделях.

Недавно я прочитал документацию SAS для M-оценок, и SAS использует распределение хи-квадрат, то есть также нормальное предположение, для значимости оценок параметров и доверительных интервалов.

To 2.

(см. первое предложение)

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

Для надежных методов оценки, таких как M-оценки, RLM, эффективный размер выборки также зависит от количества вставок или весов, присвоенных наблюдениям, а не только от общего количества наблюдений.

Для вашего случая я думаю, что значения z и размер выборки достаточно велики, чтобы, например, использование t-распределения не сделало бы их намного менее значимыми. Сравнение М-оценок с разными нормами и оценками по шкале обеспечило бы дополнительную проверку надежности при допущении о выбросах и при выборе робастной оценки. Еще одна перекрестная проверка: дает ли МНК с отброшенными выбросами (наблюдения с небольшими весами в оценке RLM) аналогичный ответ.

Наконец, общее предостережение: ссылки на надежные методы часто предупреждают, что мы не должны слепо использовать (отклоняющиеся) надежные методы. Использование надежных методов оценивает отношения на основе «вкладышей». Но оправдано ли наше отбрасывание или снижение веса выбросов? Или у нас есть недостающие нелинейности, недостающие переменные, смешанное распределение или разные режимы?

person Josef    schedule 04.02.2014
comment
спасибо за отличный ответ. вы упомянули кое-что, что я хотел продолжить. по умолчанию RLM bcov_scaled не является гетероскедастически контролируемой ковариационной матрицей, верно? если бы я хотел вычислить стандартную ошибку с поправкой на HC для коэффициентов RLM, было бы достаточно сделать что-то вроде: np.sqrt(np.diag(sm.stats.sandwich_covariance.cov_hc3(results)))? Я спрашиваю, потому что в документации сказано, что все сэндвич-ковариации предназначены для OLS, а стандартная ошибка, которую я получаю для своего коэффициента, становится меньше, когда я вычисляю приведенное выше. - person AllenQ; 04.02.2014
comment
Нет, вы не можете использовать sm.stats.sandwich_covariance для RLM, в настоящее время это только после OLS, но будет расширено. Я не знаю о свойствах ковариации RLM. Я просматривал его ранее сегодня, но в разделе Huber 1981 есть только формулы, но нет никаких объяснений. Вы можете спросить на stackoverflow. Он должен иметь форму сэндвича, так как это М-оценка, но мне пока не удалось пройти через все пси и пси-простые числа. - person Josef; 04.02.2014
comment
спасибо, поскольку эта тема затрагивает программирование и статистику, я задам вопрос как на SO, так и на stats.stackexchange. Кстати, statsmodels — это круто (при условии, что вы разработчик). - person AllenQ; 04.02.2014
comment
Спасибо, я. В моем предыдущем комментарии я хотел сказать stats.stackexchange, поскольку свойства ковариационных матриц — это статистика, а не вопрос программирования. - person Josef; 04.02.2014
comment
В списке рассылки также ведутся долгие дискуссии о теории распределения ошибок в этом случае. Одной из конкретных ссылок является глава 5 в «Асимптотической статистике» ван дер Ваарта. groups.google.com/forum/#!searchin/pystatsmodels/ groups.google.com/forum/#!searchin/pystatsmodels/ - person jseabold; 04.02.2014