首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >统计信息模型ValueError

统计信息模型ValueError
EN

Stack Overflow用户
提问于 2015-11-16 15:19:42
回答 2查看 2.4K关注 0票数 0

我的项目有问题,我从twitter上提取了数据,将其保存为csv,还执行了数据情绪分析,但当我试图绘制它们时,我无法绘制它们。

代码语言:javascript
复制
#statmodels OLS first
y, X = dmatrices('retweet_count_l ~ surge_pricing + free_rides + promo+   driver + food + controversy + regulations', data=training, return_type='dataframe')
# Define the model from above Patsy-created variables, using Statsmodels
print sm.OLS(y,X).fit().summary()
print sm.OLS(y,X).fit().params
print 'r sqd is : ', sm.OLS(y,X).fit().rsquared
rainbow = sm.stats.linear_rainbow(sm.OLS(y,X).fit())
print 'Rainbow Test for Linearity is ', rainbow
y_hat, X_hat = dmatrices('retweet_count_l ~ surge_pricing + free_rides + promo + driver + food + controversy + regulations', data=testing, return_type='dataframe')
y_pred = sm.OLS(y,X).fit().predict(X_hat)
testing['retweet_pred_smols'] = pd.Series(y_pred)

    ---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-7-b5c392dca77b> in <module>()
      2 y, X = dmatrices('retweet_count_l ~ surge_pricing + free_rides + promo + driver + food + controversy + regulations', data=training, return_type='dataframe')
      3 # Define the model from above Patsy-created variables, using Statsmodels
----> 4 model = sm.OLS(y,X)
      5 results = model.fit()
      6 print(results.summary())

/usr/lib/python2.7/dist-packages/statsmodels/regression/linear_model.pyc in __init__(self, endog, exog, missing, hasconst)
    481     def __init__(self, endog, exog=None, missing='none', hasconst=None):
    482         super(OLS, self).__init__(endog, exog, missing=missing,
--> 483                                   hasconst=hasconst)
    484 
    485     def loglike(self, params):

/usr/lib/python2.7/dist-packages/statsmodels/regression/linear_model.pyc in __init__(self, endog, exog, weights, missing, hasconst)
    383             weights = weights.squeeze()
    384         super(WLS, self).__init__(endog, exog, missing=missing,
--> 385                                   weights=weights, hasconst=hasconst)
    386         nobs = self.exog.shape[0]
    387         weights = self.weights

/usr/lib/python2.7/dist-packages/statsmodels/regression/linear_model.pyc in __init__(self, endog, exog, **kwargs)
     77     """
     78     def __init__(self, endog, exog, **kwargs):
---> 79         super(RegressionModel, self).__init__(endog, exog, **kwargs)
     80         self._data_attr.extend(['pinv_wexog', 'wendog', 'wexog', 'weights'])
     81 

/usr/lib/python2.7/dist-packages/statsmodels/base/model.pyc in __init__(self, endog, exog, **kwargs)
    135     def __init__(self, endog, exog=None, **kwargs):
    136         super(LikelihoodModel, self).__init__(endog, exog, **kwargs)
--> 137         self.initialize()
    138 
    139     def initialize(self):

/usr/lib/python2.7/dist-packages/statsmodels/regression/linear_model.pyc in initialize(self)
     86         # overwrite nobs from class Model:
     87         self.nobs = float(self.wexog.shape[0])
---> 88         self.rank = rank(self.exog)
     89         self.df_model = float(self.rank - self.k_constant)
     90         self.df_resid = self.nobs - self.rank

/usr/lib/python2.7/dist-packages/statsmodels/tools/tools.pyc in rank(X, cond)
    380     if len(X.shape) == 2:
    381         D = svdvals(X)
--> 382         return int(np.add.reduce(np.greater(D / D.max(), cond).astype(np.int32)))
    383     else:
    384         return int(not np.alltrue(np.equal(X, 0.)))

/usr/local/lib/python2.7/dist-packages/numpy/core/_methods.pyc in _amax(a, axis, out, keepdims)
     24 # small reductions
     25 def _amax(a, axis=None, out=None, keepdims=False):
---> 26     return umr_maximum(a, axis, None, out, keepdims)
     27 
     28 def _amin(a, axis=None, out=None, keepdims=False):

ValueError: zero-size array to reduction operation maximum which has no identity
EN

回答 2

Stack Overflow用户

发布于 2015-11-16 15:57:39

我可以用以下命令重现这个错误:

代码语言:javascript
复制
In [224]: np.array([]).max()
...
ValueError: zero-size array to reduction operation maximum which has no identity
In [225]: 

所以追踪D.max() ..。

代码语言:javascript
复制
sm.OLS(y,X)

X必须为零大小。

因此,您需要检查X。这是什么.shape?试着打印它。

票数 1
EN

Stack Overflow用户

发布于 2018-07-03 14:36:56

我也有同样的问题。这是因为我的专栏中有一些'nan‘值。用‘0’填充它们之后,问题就解决了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33730184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档