Я хочу запустить регрессию в статистических моделях, использующих категориальные переменные и кластеризованные стандартные ошибки.
У меня есть набор данных со столбцами: учреждение, лечение, год и зачисление. Лечение - пустышка, учреждение - строка, а все остальное - числа. Я убедился, что удалил все нулевые значения.
df.dropna()
reg_model = smf.ols("enroll ~ treatment + C(year) + C(institution)", df)
.fit(cov_type='cluster', cov_kwds={'groups': df['institution']})
Получаю следующее:
ValueError: веса и список имеют разную длину.
Есть ли способ исправить это, чтобы мои стандартные ошибки кластерились?
fillna(, inplace=True)
, и тогда он работал нормально - person tower489   schedule 24.01.2019dropna
. Без аргументаinplace=True
df.dropna()
просто возвращает копию вашего DataFrame без нулей - он не сохраняет ее в объектеdf
. Более того, если переменных больше, чем вы указали, но вы хотите отбросить только нули среди подмножества в вашей регрессии, вам также понадобится аргументsubset
. Вместо этого вы могли быreg_model = smf.ols("enroll ~ treatment + C(year) + C(institution)", df.dropna(subset = ['enroll','treatment','year','institution']))
- person Gene Burinsky   schedule 16.10.2019