程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Python中的固定效应模型

发布于2024-11-30 18:02     阅读(460)     评论(0)     点赞(11)     收藏(1)


大家好,我现在正在学习如何用 Python 做固定效应模型。这篇文章真的很有帮助,但我对“贬低”的部分仍然有点困惑

Pandas 或 Statsmodels 中的固定效应

在@Karl D.的回答中,他好心地提供了选项3的代码(附在下面),我不确定为什么在降级后需要重新添加ybarxbar 这似乎是重新引入了我们想要移除的固定效应?感谢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)

这是一个正确的固定效应模型吗?


解决方案


由于不是原作者,我只能推测原因。最有可能的是,这样做是为了重新引入截距。虽然当观察到的实体的值存在显著差异时,这可能没有什么意义,但当观察结果更具可比性时,这种方法很有用,因为它有效地将截距带回了模型中。需要注意的是,xbarybar是常数值,因此它们本身不会重新引入固定效应。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/2046403/8d10479fabb96f76c3d8/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

11 0
收藏该文
已收藏

评论内容:(最多支持255个字符)