Я пытаюсь запустить регрессию logisti c на следующем фрейме данных (только первые пять строк здесь):
index player_id room_number treatment belief_elicited msg_sent msg_received choice_made subjective_belief
2 oBR4gpHO oBR4gpHO 14 sk_prosocial_1 no_message 0 0 0 95
3 dkKsCGaY dkKsCGaY 14 sk_prosocial_1 no_message 0 0 0 95
8 imAekwQL imAekwQL 17 standard_2 no_message 1 1 0 66
9 O5ziuYET O5ziuYET 17 standard_2 no_message 1 1 0 85
10 PbZPJWlD PbZPJWlD 18 prosocial_1 no_message 0 0 0 55
Я использую API уравнений Python statsmodels для запуска следующего регрессия. Поскольку choice_made
является категориальной переменной, я использую C(choice_made)
.
fit = glm(formula='C(choice_made) ~ subjective_belief + treatment - 1',
data=all_treatments).fit()
print(fit.summary())
К сожалению, при этом возникает следующая ошибка:
Traceback (most recent call last):
File "10_code/analyse_data.py", line 477, in <module>
data=all_treatments).fit()
File "/home/lieu/anaconda3/envs/human-compactness/lib/python3.7/site-packages/statsmodels/genmod/generalized_linear_model.py", line 1028, in fit
cov_kwds=cov_kwds, use_t=use_t, **kwargs)
File "/home/lieu/anaconda3/envs/human-compactness/lib/python3.7/site-packages/statsmodels/genmod/generalized_linear_model.py", line 1139, in _fit_irls
self.scale = self.estimate_scale(mu)
File "/home/lieu/anaconda3/envs/human-compactness/lib/python3.7/site-packages/statsmodels/genmod/generalized_linear_model.py", line 753, in estimate_scale
return self._estimate_x2_scale(mu)
File "/home/lieu/anaconda3/envs/human-compactness/lib/python3.7/site-packages/statsmodels/genmod/generalized_linear_model.py", line 773, in _estimate_x2_scale
resid = np.power(self.endog - mu, 2) * self.iweights
ValueError: operands could not be broadcast together with shapes (79,2) (79,)
Если я удаляю категориальный метод, регрессия работает нормально, но я подозреваю, что это не то, чего я хочу.