varpselect<-function(mydata,maxp=10){
library(MTS)
p<-c(0:maxp)
t<-VARorder(mydata,maxp=maxp)
par(mfrow=c(2,1))
plot(p,t$aic,lty=2,pch=20,col="red",xlab="var lag p",ylab="aic(red)/ bic(blue) /hq(violet)")
lines(p,t$aic,col="red")
lines(p,t$bic,lty=3,pch=22,col="blue")
points(p,t$bic,pch=22,col="blue")
lines(p,t$hq,lty=1,col="violet")
points(p,t$hq,pch=24,col="violet")
abline(v=p[which.min(t$aic)],lty=2)
abline(v=p[which.min(t$bic)],lty=2)
abline(v=p[which.min(t$hq)],lty=2)
plot(p[-1],t$Mpv,lty=2,pch=20,col="green",xlab="var lag p",ylab="m statistic p-value")
points(p[-1],t$Mpv,pch=22,col="blue")
lines(p[-1],t$Mpv,lty=1,col="violet")
abline(h=0.01,lty=3,col="red")
abline(h=0.05,lty=2,col="yellow")
abline(h=0.1,lty=1,col="green")
text(p[-1]+0.6,t$Mpv,labels=t$Mpv,cex=0.8)
return(t)
}
#sample
library(splus2R)
library(MTS)
sig<-diag(2)
x=rmvnorm(300,rep(0,2),sig)
varpselect(x,maxp=10)