我对使用Python pymc3
软件包进行负二项式回归的解释感到困惑。我不确定如何在GLM中解释mu
和alpha
。这里有一个简单的向量,我想为其找到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
我知道Intercept
和x
部分是here中的y = exp(-281.884463*287.000388*x)
。
但是如何解释mu
和alpha
?我尝试使用stats.gamma.rvs(alpha, scale=mu / alpha, size=size)
,但直方图看起来很遥远。谢谢!
答案 0 :(得分:0)
因此,alpha
和mu
参数是Exponential distribution的参数,其中mu
是平均值,而alpha
是gamma参数。因此,在指数分布中,如果mu
是均值,则意味着mu / alpha
是{{1}中所述的方差,而1 / gamma是均值,而1 /(gamma ^ 2)是方差。在函数调用中。
思考的方式是这样的:
泊松分布和指数分布之间存在一个有趣的(关键)关系。如果您期望每个时间单位的平均伽玛事件,则事件之间的平均等待时间是指数分布的,参数为gamma(因此平均等待时间为1 / gamma),每个时间单位中计数的事件数为具有参数gamma的泊松分布。
我希望这可以使它更加清楚,并让您对如何思考有直觉。