我试图通过计算空(H0)和替代(H1)模型的贝叶斯因子来重新创建(在R中)贝叶斯的常客假设检验。
该模型只是一个简单的线性回归,它试图检测全球温度的趋势。1995 年至 2009 年的数据(此处)。因此,H0 是没有趋势的(即斜率=0),或者类似地,H0 模型是一个只有截距的线性模型。
因此,我计算了lm()两个模型的对数似然值,得出了显着不同的负对数似然值。H1 lm() 模型的 p 值为 0.0877。
我还通过使用MCMCpack以贝叶斯方式计算了这一点,我得到了与超级超级不同的负对数似然值。对数似然值 13.7 和 4.3 的似然比大约相差 10000 倍(其中>100 被认为是“决定性的”)。
估计的均值和标准差非常相似,那么为什么我会得到如此不同的似然值呢?(特别是对于贝叶斯 H0 模型)我觉得我对边际可能性的理解存在差距,但我无法确定问题所在。
谢谢
library(MCMCpack)
## data: http://www.cru.uea.ac.uk/cru/data/temperature/hadcrut3gl.txt
head(hadcru, 2)
## Year 1 2 3 4 5 6 7 8 9 10
## 1 1850 -0.691 -0.357 -0.816 -0.586 -0.385 -0.311 -0.237 -0.340 -0.510 -0.504
## 2 1851 -0.345 -0.394 -0.503 -0.480 -0.391 -0.264 -0.279 -0.175 -0.211 -0.123
## 11 12 Avg
## 1 -0.259 -0.318 -0.443
## 2 -0.141 -0.151 -0.288
hadcru.lm <- lm(Avg ~ 1 + Year, data = subset(hadcru, (Year <= 2009 & Year >= 1995)))
hadcru.lm.zero <- lm(Avg ~ 1, data = subset(hadcru, (Year <= 2009 & Year >= 1995)))
hadcru.mcmc <- MCMCregress(Avg ~ 1 + Year, data = subset(hadcru, (Year <= 2009 & Year >= 1995)), thin = 100, mcmc = 100000, b0 = c(-20, 0), B0 = c(.00001, .00001), marginal = "Laplace")
hadcru.mcmc.zero <- MCMCregress(Avg ~ 1, data = subset(hadcru, (Year <= 2009 & Year >= 1995)), thin = 100, mcmc = 100000, b0 = c(0), B0 = c(.00001), marginal = "Laplace")
-logLik(hadcru.lm)
## 'log Lik.' -14.55338 (df=3)
-logLik(hadcru.lm.zero)
## 'log Lik.' -12.80723 (df=2)
attr(hadcru.mcmc, "logmarglike")
## [,1]
## [1,] -13.65188
attr(hadcru.mcmc.zero, "logmarglike")
## [,1]
## [1,] -4.310564
