У меня вопрос по указанному коду ошибки. Я подготовил набор данных и хотел сделать линейную регрессию с фиксированным временным эффектом. На этом этапе я не могу продвинуться дальше.
Переменная типа может принимать значения {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