提问人:Chris J 提问时间:7/5/2020 更新时间:7/5/2020 访问量:203
R 中函数 bic.glm 的后验概率
Posterior probabilities from function bic.glm in R
问:
我正在查看 R 中函数“bic.glm”输出的后验概率,它们只显示 3 位数字。此外,当我尝试“options(digits = 16)”时,我仍然只能获得 3 位数字的后验概率。我的问题分为两部分:有没有办法看到更多后验概率的数字?当 R 使用“预测”函数从贝叶斯模型进行预测时,它使用多少位数的后验概率精度?
答:
2赞
Ian Campbell
7/5/2020
#1
后验概率以全精度存储在 中。$postprob
以小插图为例:
library(BMA)
data(UScrime, package = "MASS")
f <- formula(log(y) ~ log(M)+So+log(Ed)+log(Po1)+log(Po2)+log(LF)+
log(M.F)+ log(Pop)+log(NW)+log(U1)+log(U2)+
log(GDP)+log(Ineq)+log(Prob)+log(Time))
glm.out.crime <- bic.glm(f, data = UScrime, glm.family = gaussian())
summary(glm.out.crime)
#...
#nVar 7 8 7 8 6
#BIC -108.92725 -108.75890 -108.07840 -107.70043 -107.56949
#post prob 0.051 0.047 0.033 0.028 0.026
glm.out.crime$postprob[1:5]
#[1] 0.05105381 0.04693225 0.03339668 0.02764572 0.02589375
查看源代码表明,它们在限制中进行了硬编码。也许是由于格式化输出,但也许是出于另一个原因。
从 predict.bic.glm
的源代码中,我们可以看到使用了完整的值:
predict.bic.glm <-
function(object,newdata,...){
...
pred <- apply(object$postprob * rhs, 2, sum)
...
}
评论