#source("c:/Work07/ShortCourse07/Programs/MultivariateTruncatedIS.txt",print.eval=TRUE)# #This gives an importance sampling algorithm for a Truncated Normal# #-------------------Does Multivatiate Tail Probabilities------------------------ library(MASS) p<-5 #dimension of MVN mu<-c(0,0,0,0,0) #mean of MVN S=c(1,.2,.3,.4,.5,.2,1,.2,.5,.3,.3,.2,1,.2,.4,.4,.5,.2,1,.3,.5,.3,.4,.3,1) S<-array(S,dim=c(5,5)) #covariance matrix a<-c(2,3,1,2,1) #Cutoff Point #----------------------Preliminary Calcualtiona--------------------------------- dS<-det(S) iS<-ginv(S) #----------------------Importance Sampling-------------------------------------- nsim<-5000 #Number of simulations Prob<-array(0,dim=c(nsim,1)) for(i in 1:nsim) { x<-a+rexp(p) Prob[i]<-exp(-t(x-mu)%*%iS%*%(x-mu)/2)/prod(dexp(x-a)) } Prob<-Prob/((2*pi*dS)^(p/2)) print(mean(Prob)) plot(cumsum(Prob)/c(1:nsim),lwd=2,type="l")