在R中输出多个绘图(用于动画)
为了帮助我理解贝叶斯更新,我一直在使用来自的代码。由于我必须学习如何创建动画情节,我认为创建一个更新的动画情节将是一个有趣的练习。事实证明,这比预期的更为艰难。从中汲取灵感,我尝试创建以下内容:在R中输出多个绘图(用于动画),r,animation,plot,bayesian,R,Animation,Plot,Bayesian,为了帮助我理解贝叶斯更新,我一直在使用来自的代码。由于我必须学习如何创建动画情节,我认为创建一个更新的动画情节将是一个有趣的练习。事实证明,这比预期的更为艰难。从中汲取灵感,我尝试创建以下内容: 库(动画) setwd(“~/Dropbox/priorupdateing”)#设置工作目录 ##模拟贝叶斯二项更新 sim_bayes就像MatthewK说的,你把电话错放在了pdf上。但是,这应该可以让您启动并运行: sim_bayes <- function(p=0.5, N=10, y_l
库(动画)
setwd(“~/Dropbox/priorupdateing”)#设置工作目录
##模拟贝叶斯二项更新
sim_bayes就像MatthewK说的,你把电话错放在了pdf
上。但是,这应该可以让您启动并运行:
sim_bayes <- function(p=0.5, N=10, y_lim=15, prior_a=1, prior_b=1) {
success <- 0
for (i in 1:N) {
pdf(paste("posterior",i,".pdf",sep=""), height=4, width=6.5)
if (runif(1,0,1) <= p)
success<-success + 1
# Start a new plot.
curve(dbeta(x,prior_a,prior_b), lty=2,
xlim=c(0,1), ylim=c(0,y_lim), xlab='p', ylab='Posterior Density')
# Update plot.
curve(dbeta(x,success+prior_a, (i-success) + prior_b), add=TRUE)
legend('topright',
legend=c('Prior','Updated Posteriors','Final Posterior'),
lty=c(2,1,1), col=c('black','black','red'))
dev.off()
}
}
# `x` had no visible binding in your implementation, so I took the following
# from the `dbeta` documentation example.
x <- seq(0, 1, length=21)
sim_bayes()
sim_bayes你在这里只画了一个图。如果使用add=TRUE
添加到当前绘图,则不创建新绘图。因此,消除这种情况应该是可行的:
sim_bayes<-function(p=0.5,N=10,y_lim=15,prior_a=1,prior_b=1)
{
print(paste("The prior expectation of p is ",prior_a/(prior_a+prior_b)))
success<-0
curve(dbeta(x,prior_a,prior_b),xlim=c(0,1),ylim=c(0,y_lim),xlab='p',ylab='Posterior Density',lty=2)
legend('topright',legend=c('Prior','Updated Posteriors','Final Posterior'),lty=c(2,1,1),col=c('black','black','red'))
for(i in 1:N)
{
if(runif(1,0,1)<=p) success<-success+1 #this is where we see if there is a "success"
curve(dbeta(x,success+prior_a,(i-success)+prior_b)) #plot updated
}
curve(dbeta(x,success+prior_a,(i-success)+prior_b),col='red',lwd=1.5) #plot final posterior
}
给出多个绘图
sim_bayes(p=0.6,N=90,prior_a=1,prior_b=1)