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