python - 值错误 : endog must be in the unit interval

标签 python regression statsmodels

在使用 statsmodels 时,我收到了这个奇怪的错误:ValueError: endog must be in the unit interval. 谁能给我更多关于这个错误的信息?谷歌没有帮助。

产生错误的代码:

"""
Multiple regression with dummy variables. 
"""

import pandas as pd
import statsmodels.api as sm
import pylab as pl
import numpy as np

df = pd.read_csv('cost_data.csv')
df.columns = ['Cost', 'R(t)', 'Day of Week']
dummy_ranks = pd.get_dummies(df['Day of Week'], prefix='days')
cols_to_keep = ['Cost', 'R(t)']
data = df[cols_to_keep].join(dummy_ranks.ix[:,'days_2':])
data['intercept'] = 1.0

print(data)

train_cols = data.columns[1:]
logit = sm.Logit(data['Cost'], data[train_cols])

result = logit.fit()

print(result.summary())

和回溯:

Traceback (most recent call last):
  File "multiple_regression_dummy.py", line 20, in <module>
    logit = sm.Logit(data['Cost'], data[train_cols])
  File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/statsmodels/discrete/discrete_model.py", line 404, in __init__
    raise ValueError("endog must be in the unit interval.")
ValueError: endog must be in the unit interval.

最佳答案

当我的目标列的值大于 1 时出现此错误。 确保您的目标列介于 0 和 1 之间(这是逻辑回归所必需的),然后重试。 例如,如果目标列的值为 1-5,则将 4 和 5 设为正类,将 1、2、3 设为负类。希望这会有所帮助。

关于python - 值错误 : endog must be in the unit interval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31322370/

相关文章:

python - 如何使用 Selenium 和 Python 选择具有不可选择的 ="on"属性的 kendo 下拉元素

Python 线程不运行

python - 如何创建一个按钮来结束程序而不结束GUI?

machine-learning - 对不同回归量使用嵌套交叉验证

matrix - 如何在最小二乘回归中加速杠杆(帽子矩阵的对角线)的计算?

python - 难以使用 statsmodels Python 包设置图例

python Statsmodels SARIMAX KeyError : 'The ` start` argument could not be matched to a location related to the index of the data.'

python - 在nodejs pyshell中导入已安装的python包时出错

python-3.x - 自动选型

python 3.5 在 statsmodels ImportError : cannot import name '_representation'