首页 > 解决方案 > 在 statsmodel 中使用 OLS 时出错

问题描述

我得到了错误,

IndexError: boolean index did not match indexed array along dimension 1; 
dimension is 52 but corresponding boolean dimension is 184

从运行以下代码:

y = dat2['WaterWithdMunicipal']
X = dat2['WaterWithdIndustrial']
model = sm.OLS(y,X, data=dat2, missing='drop')
p = model.fit()
print(p.summary())

我知道这两个数组的大小不同(它们包含不同数量的 NaN),但不应该missing = 'drop'照顾它吗?

标签: pythonlinear-regression

解决方案


这将按照您的预期擦除行,其中至少包含一个缺失值,并将为您提供所需的结果。

dat2 = dat2.replace('', np.NaN)
dat2 = dat2.dropna()
y = dat2['WaterWithdMunicipal']
X = dat2['WaterWithdIndustrial']
model = sm.OLS(y,X, data=dat2)
p = model.fit()
print(p.summary())

推荐阅读