我运行的分析可能受益于BEA区域的集群。我之前没有使用Statsmodels中的集群标准错误选项,所以我不清楚我是否搞乱了语法,或者选项被破坏了。任何帮助将不胜感激。Statsmodels - OLS集群标准错误(不接受来自DF的系列?)
这里是代码的相关部分(注意topline_specs
字典返回懦夫式的公式):
#Capture topline specs
topline_specs={'GO':spec_dict['PC_GO']['Total']['TYPE']['BOTH'],
'RV':spec_dict['PC_RV']['Total']['TYPE']['BOTH'],
'ISSUER':spec_dict['PROP']['ISSUER']['TYPE']['BOTH'],
'PURPOSE':spec_dict['PROP']['PURPOSE']['TYPE']['BOTH']}
#Estimate each model
topline_mods={'GO':smf.ols(formula=topline_specs['GO'],data=data_d).fit(cov_type='cluster',
cov_kwds={'groups':data_d['BEA_INT']})}
topline_mods['GO']
回溯从numpy的通话茎。它返回如下:
ValueError: The weights and list don't have the same length.
一切我能找到使用集群标准错误看起来像cov_kwds
参数可以采取一系列从数据框壳模型数据。我错过了什么?
cov_type和cov_kwds的使用看起来不错。但是该公式需要是一个字符串,例如'公式=“GO〜RV + ISSUER +目的”'。否则,您可以直接使用数据'OLS(data_d ['GO'],sm.add_constant(data_d [['RV',....]]))。fit(...)' – user333700
另外,如果您有在data_d中缺少值,那么在调用OLS之前,您需要删除它们。 AFAIR,如果缺少由'ols'中的公式/数据处理从数据中删除的值,则不检查'groups'是否具有匹配条目。 – user333700
该字典返回一个字符串。然而,你的第二个评论是正确的。我无意中造成了缺失的值。感谢您的建议。如果你想把它放在答案中,我会检查它。 –