贝叶斯
本文的所涉及的贝叶斯方法所涉及的数据和应对的问题都与之前总结相同,价值在于面对同一个问题给出不同的解决方案。
library(BayesFactor)
library(MCMCpack)
贝叶斯ANOVA
贝叶斯ANOVA模型
anova <- read.csv("http://r-marketing.r-forge.r-project.org/data/rintro-chapter5.csv")
names(anova) <- tolower(names(anova))
#贝叶斯在方差估计过程中需要从后验分布中进行随机抽样,故需要设置随机种子
set.seed(651700)
anv1 <- lmBF(income ~ segment, data = anova)
anv2 <- lmBF(income ~ segment + ownhome, data = anova)
#通过模型比较,确定拟合是否收敛;贝叶斯可直接将两个模型用「/」相连进行比较
anv1/anv2
结果输出:
Bayes factor analysis
--------------
[1] segment : 6.623943 ±1.29%
Against denominator:
income ~ segment + ownhome
---
Bayes factor type: BFlinearModel, JZS
输出解读:
什么是贝叶斯因子(Bayes factor):
贝叶斯因子的作用:
The aim of the Bayes factor is to quantify the support for a model over another, regardless of whether these models are correct.
如何看待贝叶斯因子
具体参照 Harold Jeffreys给出的K值范围解释
两个模型的贝叶斯因子比例是6.6,很明显是anv1好于anv2。
ANOVA模型参数估计和置信区间
#参数估计和置信区间函数 posterior(model, index,iterations)为马尔可夫过程估计, 其中iterations为从参数后验中抽取的样本数
anv_chain <- posterior(anv1, 1, iterations = 10000)
#本案例中,选择查看马尔科夫随基抽样结果的群值(mu)和方差(sigma),以及segment中四各类的均值估计
plot(anv_chain[,1:6])
其中,左边是踪迹图展示样本的收敛程度,本案例呈现较宽直线分布,稳定且收敛(与此相对的不收敛情况是呈现上下波动或者存在大量离群值)。右边的密度图则显示近似正态分布符合回归模型假设。至此证明,模型是稳定的。
summary(anv_chain)
结果输出:
Iterations = 1:10000
Thinning interval = 1
Number of chains = 1
Sample size per chain = 10000
1. Empirical mean and standard deviation for each variable,
plus standard error of the mean:
Mean SD Naive SE Time-series SE
mu 4.806e+04 8.925e+02 8.925e+00 8.691e+00
segment-Moving up 4.980e+03 1.528e+03 1.528e+01 1.554e+01
segment-Suburb mix 6.916e+03 1.381e+03 1.381e+01 1.381e+01
segment-Travelers 1.400e+04 1.471e+03 1.471e+01 1.471e+01
segment-Urban hip -2.590e+04 1.759e+03 1.759e+01 1.785e+01
sig2 2.257e+08 1.876e+07 1.876e+05 1.938e+05
g_segment 2.204e+00 4.341e+00 4.341e-02 4.341e-02
2. Quantiles for each variable:
2.5% 25% 50% 75% 97.5%
mu 4.631e+04 4.745e+04 4.805e+04 4.866e+04 4.979e+04
segment-Moving up 2.017e+03 3.927e+03 4.981e+03 5.997e+03 7.925e+03
segment-Suburb mix 4.195e+03 5.993e+03 6.903e+03 7.832e+03 9.663e+03
segment-Travelers 1.111e+04 1.299e+04 1.400e+04 1.498e+04 1.689e+04
segment-Urban hip -2.931e+04 -2.708e+04 -2.589e+04 -2.474e+04 -2.242e+04
sig2 1.913e+08 2.126e+08 2.248e+08 2.379e+08 2.657e+08
g_segment 3.903e-01 8.269e-01 1.340e+00 2.354e+00 8.685e+00
由于anv_chain是由群体均值(mu)和各个参数和群体均值的偏差构成,还不是每个参数的均值,需要进一步处理。