【发布时间】:2014-08-04 19:52:40
【问题描述】:
这是一个初学者的问题,但我来自不同的语言,找不到完全正确的例子。我正在尝试在 PyMC 2 中设置一个简单的逻辑回归。考虑一个具有如下布局的 pandas 数据框“数据”:
ID, GotSick, Salad, Sandwich, Water
1,0,0,1,0
2,1,1,0,1
3,0,1,0,0
....
100,1,1,0,1
我正在尝试在结果“GotSick”中找到“Salad”、“Sandwich”和“Water”的优势比。在 R 中,我将其设置为:
model <- glm(GotSick ~ Salad + Sandwich + Water, data=Data, family="binomial")
但我并不完全清楚如何在 PyMC 中设置模型。
### hyperpriors
tau = mc.Gamma('tau', 1.e-3, 1.e-3, value=10.)
sigma = mc.Lambda('sigma', lambda tau=tau: tau**-.5)
### parameters
# fixed effects
beta0 = mc.Normal('beta0', 0., 1e-6, value=0.)
betaSalad = mc.Normal('betaSalad', 0., 1e-6, value=0.)
betaSandwich = mc.Normal('betaSandwich', 0., 1e-6, value=0.)
betaWater = mc.Normal('betaWater', 0., 1e-6, value=0.)
# expected parameter
logit_p = (beta0 + betaSalad*x1 + betaSandwich*x2 + betaWater*x3)
我搁浅的地方是 @mc.observed 阶段 - 任何指针?
【问题讨论】:
-
我相信
pymc3支持GLM模块。你可以找到一个例子here。 -
为什么要定义 tau 和 sigma?据我所知,它们几乎没有被使用。
标签: python-2.7 statistics pymc