pymc3 mu和alpha的负二项式回归解释

时间:2018-10-15 03:55:50

标签: python r regression logistic-regression pymc3

我对使用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部分是here中的y = exp(-281.884463*287.000388*x)

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

1 个答案:

答案 0 :(得分:0)

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

思考的方式是这样的:

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

我希望这可以使它更加清楚,并让您对如何思考有直觉。