Hi, all. 
  I need help on improving the efficiency of my R
simulations. Below is a function that simulates a
change point model. It first generates a sequence of
three dimensional ARMA(1,1) observations, then
calculates the one step ahead prediction errors, some
statistic is calcualted and compared with threshold
values in the end. As you can see in the function,
there are 5 for loops, which makes the simulation long
and inefficient. Can anyone help me improve it? 


simfun<-function(b){
for(l in 1:20)
{
qqqqqq<-matrix(0,2,40)
for (w in 1:40)
{
x2 <- matrix(rep(0,6000),nr=3)
epsilonzero2<-(mvrnorm(n=1,mu=c(0,0,0),Sigma=residsigma))
x2[,1:2]<-c(0,0,0)
for (i in 3:550)
{
epsilonone<-(mvrnorm(n=1,mu=c(0,0,0),Sigma=residsigma))
  x2[,i] <-
phi%*%x2[,i-1]+epsilonone-theta%*%epsilonzero2
epsilonzero2<-epsilonone
}
residsigma3<-matrix(c(0.789,0.2143,0.171,0.2143,1.4394,-0.229,0.171,-0.229,0.6649),nrow=3,byrow=T)
epsilonzero3<-epsilonzero2
for (i in 551:2000) 
{
epsilonone<-(mvrnorm(n=1,mu=c(0,0,0),Sigma=residsigma3))
  x2[,i] <-
phi%*%x2[,(i-1)]+epsilonone-theta%*%epsilonzero3
epsilonzero3<-epsilonone
}
inno2<-matrix(0,3,2000)
inno2[,1]<-c(0,0,1)
for ( i in 2:2000) 
{
inno2[,i]<-x2[,i]-phi%*%x2[,(i-1)]+
theta%*%inno2[,(i-1)]
}
sampeigen4<-matrix(0,3,(2000-nnumber[l]))
for ( i in (nnumber[l]+1):2000)
{
var1<-matrix(0,3,3)
for ( j in 1:(nnumber[l]))
{
var1<-var1+j^{b}*inno2[,i-nnumber[l]-1+j]%*%t(inno2[,i-nnumber[l]-1+j])/(sum(c(1:nnumber[l])^{b}))
var1<-var1
}
sampeigen4[,(i-nnumber[l])]<-(eigen(var1)$values-eigen(residsigma)$values)
}
chisqstat<-rep(0,(2000-nnumber[l]))
for(i in 1:(2000-nnumber[l]))
{
chisqstat[i]<-((nnumber[l]-1)/2)*t(sampeigen4[,i])%*%(diag(eigen(residsigma)$values)^2)%*%(sampeigen4[,i])
}
normstat<-apply((sampeigen4+eigen(residsigma)$values),2,prod)
qqqqqq[1,w]<-vp(chisqstat[(550-nnumber[l]):(2000-nnumber[l])])
qqqqqq[2,w]<-vp1(normstat[(550-nnumber[l]):(2000-nnumber[l])])
}
inarl2[,l]<-apply(qqqqqq,1,mean)
}
inarl2
}



Thanks

XS



      
____________________________________________________________________________________
Looking for last minute shopping deals?

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to