Код: Выделить всё
y, X = dmatrices("target ~ amt_income_total + amt_credit + name_housing_type", data=data)
md = sm.MixedLM(y, X, groups=data["name_income_type"])
mdf = md.fit(method=["lbfgs"])
mdf.summary()
Код: Выделить всё
mdf = md.fit(method=["lbfgs"],cov_type="cluster",cov_kwds={'groups': data["name_income_type"]})
Код: Выделить всё
AttributeError Traceback (most recent call last)
Cell In[84], line 3
1 md = sm.MixedLM(y, X, groups=data["name_income_type"])
2 mdf = md.fit(method=["lbfgs"])
----> 3 mdf = md.fit(method=["lbfgs"],cov_type="cluster",cov_kwds={'groups': data["name_income_type"]})
4 mdf.summary()
File /opt/anaconda3/lib/python3.11/site-packages/statsmodels/regression/mixed_linear_model.py:2192, in MixedLM.fit(self, start_params, reml, niter_sa, do_cg, fe_pen, cov_pen, free, full_output, method, **fit_kwargs)
2190 # Try optimizing one or more times
2191 for j in range(len(method)):
-> 2192 rslt = super(MixedLM, self).fit(start_params=packed,
2193 skip_hessian=True,
2194 method=method[j],
2195 **fit_kwargs)
2196 if rslt.mle_retvals['converged']:
2197 break
File /opt/anaconda3/lib/python3.11/site-packages/statsmodels/base/model.py:600, in LikelihoodModel.fit(self, start_params, method, maxiter, full_output, disp, fargs, callback, retall, skip_hessian, **kwargs)
597 Hinv = None
599 # TODO: add Hessian approximation and change the above if needed
--> 600 mlefit = LikelihoodModelResults(self, xopt, Hinv, scale=1., **kwds)
602 # TODO: hardcode scale?
603 mlefit.mle_retvals = retvals
...
--> 242 xu = results.model.wexog * results.wresid[:, None]
244 hessian_inv = np.asarray(results.normalized_cov_params)
246 # experimental support for freq_weights
AttributeError: 'MixedLM' object has no attribute 'wexog'
Эти типы регрессий очень стандартны в экономической литературе, и мне кажется странным, что не было бы возможности сделать это без их жесткого кодирования.
Примечание: я понимаю, что могу просто получить фиксированные эффекты, принижая соответствующие переменные а затем получить кластеризованные стандартные ошибки с помощью объекта OLS, но я просто хочу убедиться, что нет автоматического способа сделать это.
Подробнее здесь: https://stackoverflow.com/questions/793 ... -effects-r