Формы python не выровнены, несмотря на одинаковые формы

Признаюсь, я постоянно в тупике, когда прихожу к распространенной ошибке ValueError: shapes *value* and *value* not aligned, и с некоторым недавним кодом, который я запускал с библиотекой Statsmodels, я снова в тупике.

Я запускаю smModel = smf.ols(formula='leads ~ sessions', data=trainingRegressionData).fit() без проблем, но на print(smModel.summary()) я получаю следующую ошибку:

ValueError: shapes (181,61) and (181,61) not aligned: 61 (dim 1) != 181 (dim 0)

Теперь trainingRegressionData - это <class 'pandas.core.frame.DataFrame'>, а форма - это (181, 2), поэтому я не уверен, как сводка состоит из 61 столбца, но даже при этом формы такие же, так почему ошибка говорит, что не выровнена?

Приветствуется любая помощь с моей проблемой выше и объяснение ошибки отладки форм.

Полная ошибка:

ValueError                                Traceback (most recent call last)
<ipython-input-14-6777963ed99f> in <module>()
----> 1 print(smModel.summary())

~/.pyenv/versions/3.6.5/lib/python3.6/site-packages/statsmodels/regression/linear_model.py in summary(self, yname, xname, title, alpha)
   2374             top_left.append(('Covariance Type:', [self.cov_type]))
   2375 
-> 2376         top_right = [('R-squared:', ["%#8.3f" % self.rsquared]),
   2377                      ('Adj. R-squared:', ["%#8.3f" % self.rsquared_adj]),
   2378                      ('F-statistic:', ["%#8.4g" % self.fvalue]),

~/.pyenv/versions/3.6.5/lib/python3.6/site-packages/statsmodels/tools/decorators.py in __get__(self, obj, type)
     95         if _cachedval is None:
     96             # Call the "fget" function
---> 97             _cachedval = self.fget(obj)
     98             # Set the attribute in obj
     99             # print("Setting %s in cache to %s" % (name, _cachedval))

~/.pyenv/versions/3.6.5/lib/python3.6/site-packages/statsmodels/regression/linear_model.py in rsquared(self)
   1541     def rsquared(self):
   1542         if self.k_constant:
-> 1543             return 1 - self.ssr/self.centered_tss
   1544         else:
   1545             return 1 - self.ssr/self.uncentered_tss

~/.pyenv/versions/3.6.5/lib/python3.6/site-packages/statsmodels/tools/decorators.py in __get__(self, obj, type)
     95         if _cachedval is None:
     96             # Call the "fget" function
---> 97             _cachedval = self.fget(obj)
     98             # Set the attribute in obj
     99             # print("Setting %s in cache to %s" % (name, _cachedval))

~/.pyenv/versions/3.6.5/lib/python3.6/site-packages/statsmodels/regression/linear_model.py in ssr(self)
   1513     def ssr(self):
   1514         wresid = self.wresid
-> 1515         return np.dot(wresid, wresid)
   1516 
   1517     @cache_readonly

ValueError: shapes (181,61) and (181,61) not aligned: 61 (dim 1) != 181 (dim 0)

Голова и хвост trainingRegressionData:

[181 rows x 2 columns]>
    sessions leads
366      197    33
367      408    71
368      404    59
369      412    60
...
544      357    58
545      285    48
546      275    38

[181 rows x 2 columns]

ВСЕГДА показывать полную обратную трассировку или, по крайней мере, конец трассировки, которая показывает, где возникает исключение. Основное предположение, основанное на небольшом количестве информации, заключается в том, что leads преобразуется в двумерный эндогенный вид, например если количество потенциальных клиентов не является числовым столбцом.

Josef 11.08.2018 05:40

@cphill Посмотрите на вашу переменную сессий, судя по сообщению об ошибке, она рассматривается как категориальная переменная.

sukhbinder 13.08.2018 09:10

@Josef, спасибо за звонок. Я понимаю, что это трудно понять без каких-либо доказательств. Я обновил свой вопрос, включив в него журнал ошибок и начальную и конечную части trainingRegressionData. Это поможет?

cphill 13.08.2018 21:59

Целочисленные данные обрабатываются patsy как категориальные при использовании интерфейса формул. Самый простой - преобразовать данные в плавающие перед созданием модели. OLS не обрабатывает многовариантный эндогенный сигнал.

Josef 13.08.2018 22:49

Именно то, что мне нужно было знать. Спасибо!

cphill 14.08.2018 15:03
1
6
1 561
0

Другие вопросы по теме