我有一个pandas
数据框,其中包含x
,y
,w
列,其中w
是权重。 x
和y
上有许多缺失值。没有权重,以下工作
import statsmodels.formula.api as smf
smf.ols('y ~ x', data=df')
然后我想使用权重,我这样做:
smf.wls('y ~ x', data=df', weights=df['w'])
并获取
ValueError: operands could not be broadcast together with shapes (153704,1) (81522,6)
其中我的回归包含4个因变量,它解释了错误中的6
(4 +依赖+拦截)。
我想问题是缺少值statsmodels
正在为我清理。然后,这会减少从153704
到81522
的行数,而它显然不会对权重进行调整 - 这会导致失配。这里有快速的解决方法吗?我正确使用weights
参数吗?在我看来,这是一个标准问题,不应该让人感到惊讶......