Регрессия Фама Макбет в 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?
Спасибо за помощь!