发布于2024-11-30 18:02 阅读(460) 评论(0) 点赞(11) 收藏(1)
大家好,我现在正在学习如何用 Python 做固定效应模型。这篇文章真的很有帮助,但我对“贬低”的部分仍然有点困惑
在@Karl D.的回答中,他好心地提供了选项3的代码(附在下面),我不确定为什么在降级后需要重新添加ybar和xbar 。这似乎是重新引入了我们想要移除的固定效应?感谢Karl.D,他的回答真的很有帮助。我的声誉不足以直接在他的答案下发表评论,所以我决定发布这个问题。
import statsmodels.api as sm
import statsmodels.formula.api as smf
import patsy
def areg(formula,data=None,absorb=None,cluster=None):
y,X = patsy.dmatrices(formula,data,return_type='dataframe')
ybar = y.mean()
y = y - y.groupby(data[absorb]).transform('mean') + ybar
Xbar = X.mean()
X = X - X.groupby(data[absorb]).transform('mean') + Xbar
reg = sm.OLS(y,X)
# Account for df loss from FE transform
reg.df_resid -= (data[absorb].nunique() - 1)
return reg.fit(cov_type='cluster',cov_kwds={'groups':data[cluster].values})
谢谢
如果我们简单地这样做会怎么样:
y = y - y.groupby(data[absorb]).transform('mean')
X = X - X.groupby(data[absorb]).transform('mean')
reg = sm.OLS(y,X)
这是一个正确的固定效应模型吗?
由于不是原作者,我只能推测原因。最有可能的是,这样做是为了重新引入截距。虽然当观察到的实体的值存在显著差异时,这可能没有什么意义,但当观察结果更具可比性时,这种方法很有用,因为它有效地将截距带回了模型中。需要注意的是,xbar和ybar是常数值,因此它们本身不会重新引入固定效应。
作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/2046403/8d10479fabb96f76c3d8/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!