首页 > 解决方案 > 使用 Pymc3 glm 的样本外后验和线性预测

问题描述

我对贝叶斯统计很陌生(但热衷于:))。考虑下面的线性模型。简单的单变量线性回归模型试图根据选举日的增长来预测现任政党的选票份额。这个例子可以在第 chap 找到。9回归和其他故事书

import pandas as pd
import pymc3 as pm

# get data
elec = pd.read_csv("https://raw.githubusercontent.com/avehtari/ROS-Examples/master/ElectionsEconomy/data/hibbs.dat", sep=" ")

with pm.Model() as model:
    pm.glm.GLM.from_formula("vote ~ growth", data=elec)
    trace = pm.sample(draws=500)  

现在假设增长 2% 。我将如何使用 pymc3 复制以下示例进行线性和后验预测?

b_med = np.median(trace['growth'])
a_med = np.median(trace['Intercept'])
# new data 2% growth
new = np.array([2])
y_point_pred = a_med + b_med * new
y_linpred = trace['Intercept'] + trace['growth'] * new
err = np.random.normal(loc=0, scale=trace['sd'], size=len(trace['sd']))
y_post_pred = y_linpred + err

pm.__version__ #3.8

标签: python-3.xbayesianpymc3

解决方案


推荐阅读