Код ошибки с использованием линейной регрессии с фиксированным временным эффектом - PullRequest
0 голосов
/ 13 июля 2020

У меня вопрос по указанному коду ошибки. Я подготовил набор данных и хотел сделать линейную регрессию с фиксированным временным эффектом. На этом этапе я не могу продвинуться дальше.

Переменная типа может принимать значения {0,1,2,3,4}, а переменная обратного вызова является фиктивной переменной.

Кто-нибудь знает, как я могу решить эту проблему?

from linearmodels.panel import PanelOLS
import pandas as pd
import datetime

from auxiliary_desciptive_replication import *


df = data_set().dropna(axis=1)

for i in df["fall_data"]:

  if i == 0:
     df["time"] = datetime.datetime(2008,4,1)
  elif i == 1:
     df["time"] = datetime.datetime(2008,8,1)
  elif i == 2:
     df["time"] = datetime.datetime(2009,4,1)
   
data = df[['callback', 'type', 'fall_data', 'time']]

df = data.set_index(["time", "fall_data"])

mod = PanelOLS.from_formula('callback ~ C(type) + TimeEffects', data=df)
res = mod.fit()


---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
<ipython-input-159-f3558db95d97> in <module>
      1 mod = PanelOLS.from_formula('callback ~ C(type) + TimeEffects', data=df)
----> 2 res = mod.fit()

~/opt/anaconda3/lib/python3.7/site-packages/linearmodels/panel/model.py in fit(self, use_lsdv, use_lsmr, low_memory, cov_type, debiased, auto_df, count_effects, **cov_config)
   1737         r2_ex_effects = 1 - resid_ss / total_ss_ex_effect
   1738 
-> 1739         res = self._postestimation(params, cov, debiased, df_resid, weps, y, x, root_w)
   1740         ######################################
   1741         # Pooled f-stat

~/opt/anaconda3/lib/python3.7/site-packages/linearmodels/panel/model.py in _postestimation(self, params, cov, debiased, df_resid, weps, y, x, root_w)
    548         deferred_f = self._f_statistic_robust(params, cov, debiased, df_resid)
    549         f_stat = self._f_statistic(weps, y, x, root_w, df_resid)
--> 550         r2o, r2w, r2b = self._rsquared(params)
    551         f_pooled = InapplicableTestStatistic(
    552             reason="Model has no effects", name="Pooled F-stat"

~/opt/anaconda3/lib/python3.7/site-packages/linearmodels/panel/model.py in _rsquared(self, params, reweight)
    498 
    499         total_ss = float(w.T @ (e ** 2))
--> 500         r2b = 1 - residual_ss / total_ss
    501 
    502         #############################################

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