x=read.table("D:\\Backup\\我的文档\\研究生\\dcc-garch\\新数据\\中日收益.txt");
library(ccgarch);
library(fGarch);
library(MASS);
library(FinTS);
library(tseries);
library(vars);
xt<-ts(x[,1:2],start=c(1,1));
plot(xt, plot.type = "single",col=c("red","black"),lty=1:2);
leg.names<-c("上证指数收益","日经指数收益");
legend(locator(1),leg.names,lty=c(1,2), col=c("red","black"));
y=xt[,1];
z=xt[,2];
data_outline <- function(x){
n <- length(x)
m <- mean(x)
v <- var(x)
s <- sd(x)
me <- median(x)
cv <- 100*s/m
css <- sum((x-m)^2)
uss <- sum(x^2)
R <- max(x)-min(x)
R1 <- quantile(x,3/4)-quantile(x,1/4)
sm <- s/sqrt(n)
g1 <- n/((n-1)*(n-2))*sum((x-m)^3)/s^3
g2 <- ((n*(n+1))/((n-1)*(n-2)*(n-3))*sum((x-m)^4)/s^4- (3*(n-1)^2)/((n-2)*(n-3)))
data.frame(N=n, Mean=m, Var=v, std_dev=s,
Median=me, std_mean=sm, CV=cv, CSS=css, USS=uss,
R=R, R1=R1, Skewness=g1, Kurtosis=g2, row.names=1)
}
data_outline(y);
data_outline(z);
jarque.bera.test(y);
jarque.bera.test(z);
c(ucv(y,length(y)),bcv(y,length(y)));
plot(density(y,width=0.006),lty=3,ylim=c(0,80));
hist(y,prob=T,col=0,add=T);
a<-seq(-0.1,0.1,0.001);
lines(a,dnorm(a,mean(y),sqrt(var(y))),lty=1);
leg.names<-c("Kernel Density","Normal Density");
legend(locator(1),leg.names,lty=c(3,1));
c(ucv(z,length(z)),bcv(z,length(z)));
plot(density(z,width=0.005),lty=3,ylim=c(0,80));
hist(z,prob=T,col=0,add=T);
lines(a,dnorm(a,mean(z),sqrt(var(z))),lty=1);
leg.names<-c("Kernel Density","Normal Density");
legend(locator(1),leg.names,lty=c(3,1));
adf.test(y, alternative = c("stationary", "explosive"),k = trunc((length(y)-1)^(1/3)));
adf.test(z, alternative = c("stationary", "explosive"),k = trunc((length(z)-1)^(1/3)));
ArchTest(y,lags=3,demean=T); #最后一项是为了去掉均值。
ArchTest(z,lags=5,demean=T);
garch.y=garch(y,order=c(1,1));
summary(garch.y);
garch.z=garch(z,order=c(1,1));
summary(garch.z);
inia=c(4.361e-07,8.327e-07);
iniA=diag(c(4.769e-02,1.349e-01));
iniB=diag(c(9.460e-01,8.546e-01));
nobs=1713;
dcc.para<-c(0.01,0.97);
inicor=cor(y,z);
uncR=matrix(c(1,inicor,inicor,1),2,2);
dcc.results <- dcc.estimation(inia, iniA, iniB, dcc.para, dvar=xt, model="diagonal");
out<-dcc.results$out;
DCC<-dcc.results$DCC[,2];
ts.plot(DCC);
下面是自己做的arma-garch模型
GARCH = 0.322782460525*(1 - C(2) - C(3)) + C(2)*RESID(-1)^2 + C(3) *GARCH(-1)
AR(1) 0.682336
Variance Equation
C 0.004541 -- -- --
RESID(-1)^2 0.221733
GARCH(-1) 0.764199
GARCH = C(5) + C(6)*RESID(-1)^2 + C(7)*GARCH(-1)
AR(2)-0.715080
AR(4 )-0.678507
MA(2)0.859919
MA(4) 0.950660
Variance Equation
C 1.455317
RESID(-1)^2 0.136589
GARCH(-1) 0.840309