马尔卡夫链蒙特卡罗方法R语言代码
时间: 2024-11-03 08:08:34 浏览: 30
马尔可夫链蒙特卡罗(Markov Chain Monte Carlo, MCMC)是一种用于生成随机样本的重要算法,常用于难以直接采样复杂概率分布的情况。在R语言中,我们可以使用`coda`包来进行MCMC模拟,特别是`mcmc()`函数。
以下是简单的贝叶斯线性回归模型的MCMC例子,使用`rstanarm`包,它基于Stan库:
```R
# 首先安装并加载必要的包
install.packages("rstanarm")
library(rstanarm)
library(coda)
# 定义一个简单数据集
data <- data.frame(x = rnorm(100), y = rnorm(100) + 2 * x)
# 使用stan_glm进行MCMC拟合
model <- stan_glm(y ~ x, family = gaussian(), data = data, seed = 12345, refresh = 0)
# 获取MCMC结果
samples <- as.matrix(mcmc(model))
# 查看前几行样本
head(samples[, c("Intercept", "x")])
# 分析和可视化结果,例如用traceplot()
traceplot(samples[, c("Intercept", "x")], main = "Posterior Samples")
#
阅读全文