📄 arch_singleprop.r
字号:
#Load in .so file (C code)dyn.load("ARCH_singleprop.so")#number of particles K resampled from MM<-200K<-200storage.mode(M)<-"integer"storage.mode(K)<-"integer"storage.mode(n)<-"integer"storage.mode(z)<-"double"storage.mode(sig)<-"double"storage.mode(b)<-"double"UP<-as.integer(10000/M) RES<-0 #IGNORESMOOTH <- 1 #SMOOTH (0=No; 1=Yes. df<-4 #df in t-proposalFULL <- K #DO NOT CHANGE!##RES AND FULL WHERE INITIALLY INTRODUCED TO ALLOW FOR DIFFERENT VERSIONS FOR##CALCULATING THE WEIGHTS/RESAMPLING. USING FULL=K PRODUCE RPF IN PAPER - FOR##THIS RES-VALUE SHOULD NOT MATTER.storage.mode(RES)<-"integer"storage.mode(FULL)<-"integer"storage.mode(df)<-"integer"#number of simulationsN<-100###This is just to print out progressif(UP>as.integer(N/10)) UP<-as.integer(N/10)if(UP==0) UP <- 1###storage of resultsest.st<-matrix(0,nrow=N,ncol=n)pr.st<-matrix(0,nrow=N,ncol=n)est2.st<-matrix(0,nrow=N,ncol=n)LEst<-rep(0,N)for(j in 1:N){ ###This just samples QMC from the prior distribution u<-runif(K,0,1/K)+(0:(K-1))/K init <- qnorm(u,0,1) storage.mode(init) <- "double" LE<-0 #log-evidence (up to some additive constant!) est<-rep(0,n) #Filter estimate of theta_1,...,theta_n pr.est <- rep(0,n) #Filter estimate of pr(theta_t< theta_true_t) est2<-rep(0,n) #Smooth estimate of theta_1,...,theta_n storage.mode(LE)<-"double" storage.mode(est)<-"double" storage.mode(pr.est)<-"double" storage.mode(est2)<-"double" storage.mode(theta) <- "double" ECHO <- (j==1) ##Give details of progress? storage.mode(ECHO)<-"integer" storage.mode(SMOOTH)<-"integer" out <- .C("ARCH_singleprop",z,n,M,K,sig,b,FULL,RES,df,ECHO,SMOOTH,init,theta,LE=LE,est=est,est2=est2,pr.est=pr.est)if(as.integer(j/UP)==j/UP) cat("End of It ",j,"\n")LEst[j]<-out$LEest.st[j,]<-out$estest2.st[j,]<-out$est2pr.st[j,] <- out$pr.est}####Print results of Simulationscat("Var ",var(LEst),"\n")cat("Mean ",mean(LEst),"\n")cat("Est ", mean(apply(est.st,2,var)),"\n")cat("Est2 ",mean(apply(est2.st,2,var)),"\n")cat("Pr ",mean(apply(pr.st,2,var)),"\n")
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -