Python StatsModels logisti c регрессия: "операнды не могут передаваться вместе с фигурами" - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь запустить регрессию 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,) 

Если я удаляю категориальный метод, регрессия работает нормально, но я подозреваю, что это не то, чего я хочу.

...