получение линейных моделей fama macbeth с выводом функции - PullRequest
0 голосов
/ 24 июня 2019

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

import pandas as pd
import numpy as np
from linearmodels import FamaMacBeth

#creating a multi_index of independent variables
ind_var = pd.read_excel('FAMA_MACBETH.xlsx')
ind_var['date'] = pd.to_datetime(ind_var['date'])
# dropping our dependent variables
ind_var = ind_var.drop(['Mkt_rf', 'div_innovations', 'term_innovations',
   'def_innovations', 'rf_innovations', 'hml_innovations',
   'smb_innovations'],axis = 1)
ind_var = pd.DataFrame(ind_var.set_index('date').stack())
ind_var.columns = ['x']
x = np.asarray(ind_var)
len(x)

11600

#creatiing a multi_index of dependent variables
# reading in our data
dep_var = pd.read_excel('FAMA_MACBETH.xlsx')
dep_var['date'] = pd.to_datetime(dep_var['date'])
# dropping our independent variables
dep_var = dep_var.drop(['SMALL_LoBM', 'ME1_BM2', 'ME1_BM3', 'ME1_BM4',
   'SMALL_HiBM', 'ME2_BM1', 'ME2_BM2', 'ME2_BM3', 'ME2_BM4', 'ME2_BM5',
   'ME3_BM1', 'ME3_BM2', 'ME3_BM3', 'ME3_BM4', 'ME3_BM5', 'ME4_BM1',
   'ME4_BM2', 'ME4_BM3', 'ME4_BM4', 'ME4_BM5', 'BIG_LoBM', 'ME5_BM2',
   'ME5_BM3', 'ME5_BM4', 'BIG_HiBM'],axis = 1)
dep_var = pd.DataFrame(dep_var.set_index('date').stack())
dep_var.columns = ['y']
y = np.asarray(dep_var)
len(y)

3248

mod = FamaMacBeth(y, x)
res = mod.fit(cov_type='kernel', kernel='Parzen')

вывод с tstats и ошибками в идеале

Я пробовал множество способов заставить это работать. Я действительно думаю об использовании SAS на данный момент. На самом деле, я бы предпочел, чтобы это работало с пандами

Я ожидаю вывод регрессии поперечного сечения со стандартными ошибками и t stats

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...