python-3.x - 使用 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 - 如何根据优先级顺序替换数据框列?
- javascript - 带有机车平滑滚动库的浏览器原生滚动条不是自定义的
- c# - 将字符串数组拆分为组
- ruby-on-rails - 自我速记的行为方式与 class << self rails 不同
- php - 按自定义列 WooCommerce 中的可点击值过滤产品
- reactjs - 带有 getStaticProps 和 typescript 的空对象
- c++ - Qt 线程事件循环不分派自创信号
- javascript - clearInterval "变量未定义" |
- json - Ingress-Nginx 外部身份验证的自定义响应
- oracle-apex - invoke() 方法接受哪些参数?