rethinking package 查看后验分布的主要代码

本文所有代码均来自于《统计反思-用R和stan例解贝叶斯方法》

假期中,为学习贝叶斯模型花费了一些时间,虽然没有领悟到贝叶斯模型的真谛,但学习中确实感到有一定的进步。我的理解是有知识的输出才能帮助我更好地学习模型,因此今天选择把学习中的一些常常忘记的东西总结下,也希望这个系列的文章可以帮助后来人。

今天的这部分内容主要针对常用的代码:

1. 多维高斯分布中抽取取值向量

post<-extract.samples(m4.1,n=1e4)

可以提取后验分布中所有的样本及其对应的参数值

2. 查看最大后验概率

precis(m4.2)

3.利用后验数据预测

mu<-link(m4.3,data=pre.data)

可进行利用该模型进行再次预测

link 可生成相应中间变量(例如平均身高)的后验样本分布,link 默认使用拟合模型时的数据,但可以自定义向量值赋予函数,得到相应的自变量取值下的后验分布。

apply(mu,2,mean)

apply(mu,2,PI,prob=0.89)

后续可通过apply函数得到相应的均值,区间上下限。再通过lines及shade添加到图上,方便理解。

4.真实值的预测区间

sim.height<-sim(m4.3,data=pre.data)

这一步获取的是最终预测变量的区间,link得到的是中间变量(平均身高),而sim得到的是最终变量(真实身高)。

5. 模型比较阶段的主要函数

可以用

WAIC(m6.11)

得到模型的WAIC和DIC,但遇到多个模型进行比较时:

compare(m6.11,m6.12,m6.13)

比较结果中,WAIC值越小越好,pWAIC是有效参数的个数估计,提供模型拟合样本的灵活度,dWAIC,进行偏差比较,weight是每个模型的权重,

coeftab(m6.11,m6.12,m6.13)

可用于比较不同模型的参数。

6. 若想得到多个模型的平均后验,可通过

ensemble (m6.11,m6.12,m6.13,data=pre.data)

获取,ensemble的用法与link 和sim类似。

你可能感兴趣的:(rethinking package 查看后验分布的主要代码)