- Error in if (runif(1) < probab) { : missing value where TRUE/FALSE needed
- burnIn = 5000
- acceptance = 1-mean(duplicated(chain[-(1:burnIn),]))
- Error in duplicated(chain[-(1:burnIn), ]) : object 'chain' not found
- setwd("C:/Users/jsjyyjc/Desktop/")
- ut<-read.table("1.txt")
- xvec<-ut
- fn<-function(theta){sum(xvec/exp(2*(theta[1]+theta[2]*xvec)/(1+theta[2]-theta[3])))}
- nlm(fn,theta<-c(0,0,0),hessian=TRUE)
- proposalfunction<-function(theta){
- + return(rnorm(3,mean=theta,sd=c(0.1,0.5,0.3)))
- + }
- prior<-function(theta){
- + m=theta[1]
- + n=theta[2]
- + l=theta[3]
- + mprior<-dnorm(m)
- + nprior<-dnorm(n)
- + lprior<-dnorm(l)
- + return(mprior+nprior+lprior)
- + }
- posterior<-function(theta){
- + return(fn(theta)+prior(theta))
- + }
- run_metropolis_MCMC <- function(startvalue, iterations){
- + chain = array(dim = c(iterations+1,3))
- + chain[1,] = startvalue
- + for (i in 1:iterations){
- + proposal = proposalfunction(chain[i,])
- +
- + probab = exp(posterior(proposal) - posterior(chain[i,]))
- + if (runif(1) < probab){
- + chain[i+1,] = proposal
- + }else{
- + chain[i+1,] = chain[i,]
- + }
- + }
- + return(chain)
- + }
- startvalue=c(4,0,10)
- chain = run_metropolis_MCMC(startvalue, 10000)
- burnIn = 5000
- acceptance = 1-mean(duplicated(chain[-(1:burnIn),]))
求各位大神指点问题出现在什么地方!谢谢,拜谢,跪谢!给予帮助的人最帅/最美!


雷达卡





京公网安备 11010802022788号







