Регрессия Фама Макбет в Python (панды или Statsmodels)

Эконометрический Backgroud

регрессия Fama Macbeth относится к процедуре запуска регрессии для панельных данных (где есть N разных людей, и каждый человек соответствует нескольким периодам T, например,День, месяцы, год). Таким образом, в общей сложности существует N x T obs. Обратите внимание, что это нормально, если данные панели не сбалансированы.

регрессия Fama Macbeth должна сначала запустить регрессию для каждого периода кросс-секторально, т. е. пул N лиц вместе в данный период t. И сделать это для T=1,...Т. Так что в общем t регрессии выполняются. Тогда у нас есть временной ряд коэффициентов для каждой независимой переменной. Затем мы можем выполнить проверку гипотезы, используя временные ряды коэффициентов. Обычно мы принимаем среднее значение в качестве конечных коэффициентов каждой независимой переменной. И мы используем t-статистику для проверки значимости.

Моя Проблема

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

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

def fmreg(data,formula):
    return smf.ols(formula,data=data).fit().params[1]

res=df.groupby('date').apply(fmreg,'ret~var1')

это работает, res - это серия, которая индексируется date и значения ряда params[1], который является коэффициентом var1. Но теперь я хочу иметь более независимые переменные, мне нужно извлечь коэффициенты все эти независимые переменные, но я не могу этого понять. Я пробовал это

def fmreg(data,formula):
    return smf.ols(formula,data=data).fit().params

res=df.groupby('date').apply(fmreg,'ret~var1+var2+var3')

это не сработает. Желаемым результатом является то, что res является фреймом данных, индексируемым date, и каждый столбец фрейма данных должен содержать коэффициенты каждой переменной intercept, var1, var2 и var3.

я также проверил с statsmodels, у них нет такой встроенной процедуры.

и там любой пакет который может произвести таблицы регрессии качества публикации? Как outreg2 в Stata и texreg в R? Спасибо за помощь!

1 ответов


пример использования