Python 使用PyMC3运行贝叶斯伽马回归有困难

Python 使用PyMC3运行贝叶斯伽马回归有困难,python,bayesian,pymc3,gamma-distribution,Python,Bayesian,Pymc3,Gamma Distribution,PyMC3具有处理贝叶斯回归的出色功能,因此我一直在尝试利用这一功能,使用PyMC3运行贝叶斯Gamma回归,其中可能性为Gamma 据我所知,在PyMC3中运行任何类型的贝叶斯回归都需要PyMC3.glm.glm()函数,该函数采用Patsy形式的模型公式(例如y~x_1+x_2+…+x_m)、数据帧和分布 但是,问题在于pymc3.glm.glm()函数需要一个pymc3..families对象来进行分发。但是伽马分布没有显示为包中内置的系列之一,所以我被卡住了。还是伽马函数族隐藏在某个地方

PyMC3具有处理贝叶斯回归的出色功能,因此我一直在尝试利用这一功能,使用PyMC3运行贝叶斯Gamma回归,其中可能性为Gamma

据我所知,在PyMC3中运行任何类型的贝叶斯回归都需要
PyMC3.glm.glm()
函数,该函数采用Patsy形式的模型公式(例如y~x_1+x_2+…+x_m)、数据帧和分布

但是,问题在于
pymc3.glm.glm()
函数需要一个
pymc3..families
对象来进行分发。但是伽马分布没有显示为包中内置的系列之一,所以我被卡住了。还是伽马函数族隐藏在某个地方?非常感谢您在这件事上的帮助


用于上下文: 我有一个包含特性的数据框
[x_1,x_2,…,x_m]
(称之为
x
)和一个目标变量(称之为
y
)。这是到目前为止我已经准备好的代码,但我只需要弄清楚如何得到Gamma分布

import pymc3 as pm

# Combine X and y into a single dataframe
patsy_DF = X
patsy_DF['y'] = y

# Get Patsy Formula 
all_columns = "+".join(X.columns)
patsy_formula = "y~" + all_columns

# Instantiate model
model = pm.Model()

# Construct Model
with model:
    # Fit Bayesian Gamma Regression
    pm.glm.GLM(patsy_formula, df_dummied, family=pm.families.Gamma())
        # !!! ... but pm.families.Gamma() doesn't exist ... !!!

    # Get MAP Estimate and Trace
    map_estimate = pm.find_MAP(model=model)
    trace = pm.sample(draws=2000, chains=3, start = map_estimate)

# Get regression results summary (coefficient estimates, 
pm.summary(trace).round(3)

正确,
GLM
函数没有实现对gamma分布的支持。你必须明确地写出伽马回归模型。也许值得注意的是,R对这些类型的模型有更好的支持。例如,
rstanarm
程序包具有。就我个人而言,当我需要任意复杂层次模型的灵活性时,我使用PyMC3或Stan,但在进行更多标准回归分析时,倾向于使用R。