【问题标题】:pymc3 negative binomial regression interpretation of mu and alphapymc3 mu和alpha的负二项式回归解释
【发布时间】:2019-03-19 11:00:35
【问题描述】:

我对使用 python pymc3 包对负二项式回归的解释感到困惑。我不确定如何解释 GLM 中的 mualpha。这里我有一个简单的向量,我想为自己找到NB回归模型:

# The data
y = [100,200,300,400,50,300,60,89,90,100,100]
data = {'y':y, 'x':[1]*len(y)}
basic_model = pm.Model()
with basic_model:
    fml = 'y~x'
    pm.glm.GLM.from_formula(formula=fml, data=data, family=pm.glm.families.NegativeBinomial())
    # draw 500 posterior samples
    trace = pm.sample(500)
summary = pm.summary(trace, varnames=rvs)[['mean','hpd_2.5','hpd_97.5']]
print(summary)

然后我得到如下输出:

                 mean     hpd_2.5    hpd_97.5
Intercept -281.884463 -684.069010  718.375125
x          287.000388 -714.168056  689.477911
mu          26.674426    3.526181   63.358150
alpha        2.461808    1.353676    3.452103

我知道Interceptx 部分是y = exp(-281.884463*287.000388*x) 来自here

但是如何解释mualpha?我尝试使用stats.gamma.rvs(alpha, scale=mu / alpha, size=size),但直方图看起来很偏离。谢谢!

【问题讨论】:

    标签: python r regression logistic-regression pymc3


    【解决方案1】:

    所以,alphamu 参数是Exponential distribution 的参数,其中mu 是平均值,alpha 是伽玛参数。所以在指数分布中,1/gamma 是均值,1/(gamma^2) 是方差,如果mu 是均值,则意味着mu / alpha 是函数调用中scale = mu / alpha 中所述的方差。

    思考的方式是这样的:

    泊松分布和指数分布之间有一个有趣的(关键)关系。如果您期望每个时间单位的平均 gamma 事件,那么事件之间的平均等待时间是指数分布的,带有参数 gamma(因此平均等待时间为 1/gamma),每个时间单位中计数的事件数为泊松分布与参数 gamma。

    我希望这能让它更清楚一点,并让你对如何思考它有一些直觉。

    【讨论】:

    • 非常感谢!在阅读了您提到的指数分布后,我阅读了poisson-gamma mixture。所以这里的mu(不是np.exp(mu))是因变量y的均值/期望值,alpha(不是np.exp(alpha))是所有自变量的伽马形状参数,假设为为负二项分布。但是对于因变量,比如这里的x,'np.exp(x)' 是平均值。
    • f = stats.gamma.rvs(alpha, scale=mu / alpha, size=size) 只给我一个伽玛分布,如果然后使用stats.poisson.rvs(f) 会给我负二项分布样本。
    猜你喜欢
    • 2018-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 2021-07-07
    • 2014-07-27
    相关资源
    最近更新 更多