数据不能由 i=1 开始
否则会产生
warning("No log likelihood function and covariance matrix can be calculated.")
varcov <- NA
以底下数据ndx为例(nobs=302),需 i in 13:298
另你有笔误,应1误写为l,我已帮你更正.
##########
ndx.ret2 = getReturns(ndx.dat[,"Close"])^2
ndx = sqrt(aggregate(ndx.ret2, FUN=sum, by="weeks",week.align=1))
X2=rev(sort(seriesData(ndx)))
WW<-matrix(c(0.057,0.086,0.124,0.153,0.183,0.224,0.255,0.33,
0.055,0.081,0.116,0.144,0.172,0.21,0.24,0.31,
0.053,0.078,0.111,0.137,0.164,0.2,0.228,0.294,
0.052,0.076,0.108,0.133,0.158,0.193,0.22,0.284,
0.049,0.072,0.101,0.124,0.147,0.179,0.204,0.264,
0.046,0.067,0.094,0.115,0.136,0.165,0.187,0.239),
nrow=6,ncol=8,byrow=T)
AA<-matrix(c(0.397,0.569,0.796,0.974,1.158,1.409,1.603,2.064,
0.386,0.55,0.766,0.935,1.11,1.348,1.532,1.966,
0.376,0.534,0.741,0.903,1.069,1.296,1.471,1.893,
0.369,0.522,0.722,0.879,1.039,1.257,1.426,1.831,
0.356,0.499,0.685,0.83,0.978,1.18,1.336,1.707,
0.339,0.471,0.641,0.771,0.905,1.086,1.226,1.559),
nrow=6,ncol=8,byrow=T)
k<-c(0,0.1,0.2,0.3,0.5,0.9)
w<-matrix(nrow=2,ncol=8)
a<-matrix(nrow=2,ncol=8)
nw<-matrix(nrow=1,ncol=8)
na<-matrix(nrow=1,ncol=8)
#X2<-rev(sort(X1$V1))
t<-matrix(nrow=length(X2),ncol=8)
n0<-length(X2)
for(i in 13:(n0-4)) #i=13.....298
{n<-n0-i+1
out<-gpd(X2,X2[n])
t[i,1]<-out$upper.thresh
t[i,2]<-out$n.upper.exceed
t[i,3:4]<-out$upper.par.ests
Nu<-t[i,2]
u<-t[i,1]
xi<-t[i,3]
beta<-t[i,4]
z<-pgpd(X2[1:(n-1)],xi,u,beta)
z<-sort(z)
s1<-(z-(2*seq(1:(n-1))-1)/(2*(n-1)))^2
s2<-(2*seq(1:(n-1))-1)*(log(z)+log(1-rev(z)))
W2<-sum(s1)+1/(12*(n-1))
A2<--(n-1)-mean(s2)
t[i,5]<-W2
t[i,6]<-A2
#k<-c(0,0.1,0.2,0.3,0.5,0.9)
#w<-matrix(nrow=2,ncol=8)
#a<-matrix(nrow=2,ncol=8)
#nw<-matrix(nrow=1,ncol=8)
#na<-matrix(nrow=1,ncol=8)
if(xi>=0&&xi<0.1)
{for(j in 1:8) {w[,j]<-approx(k[1:2],WW[1:2,j],xout=xi);
a[,j]<-approx(k[1:2],AA[1:2,j],xout=xi)}}
else if(xi>=0.1&&xi<0.2)
{for(j in 1:8) {w[,j]<-approx(k[2:3],WW[2:3,j],xout=xi);
a[,j]<-approx(k[2:3],AA[2:3,j],xout=xi)}}
else if(xi>=0.2&&xi<0.3)
{for(j in 1:8) {w[,j]<-approx(k[3:4],WW[3:4,j],xout=xi);
a[,j]<-approx(k[3:4],AA[3:4,j],xout=xi)}}
else if(xi>=0.3&&xi<0.5)
{for(j in 1:8) {w[,j]<-approx(k[4:5],WW[4:5,j],xout=xi);
a[,j]<-approx(k[4:5],AA[4:5,j],xout=xi)}}
else if(xi>=0.5&&xi<=0.9)
{for(j in 1:8) {w[,j]<-approx(k[5:6],WW[5:6,j],xout=xi);
a[,j]<-approx(k[5:6],AA[5:6,j],xout=xi)}}
else{for(j in 1:8) {w[,j]<-0;a[,j]<-0}}
for(j in 1:8){nw[j]<-w[2,j];na[j]<-a[2,j]}
if(t[i,5]<=nw[[3]]) t[i,7]<-1
else if(t[i,5]>nw[[3]]&&t[i,5]<=nw[[4]]) t[i,7]<-2
else t[i,7]<-3;
if(t[i,6]<=na[[3]]) t[i,8]<-1
else if(t[i,6]>na[[3]]&&t[i,6]<=na[[4]]) t[i,8]<-2
else t[i,8]<-3;
}
> a
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 0.3365634 0.3365634 0.3365634 0.3365634 0.3365634 0.3365634 0.3365634 0.3365634
[2,] 0.3666234 0.5177952 0.7152358 0.870042 1.027848 1.242923 1.409546 1.808331
> w
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 0.3365634 0.3365634 0.3365634 0.3365634 0.3365634 0.3365634 0.3365634 0.3365634
[2,] 0.05145155 0.07526873 0.1067203 0.1313546 0.155989 0.1904406 0.2170749 0.2803437
> t[13:15,]
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,] 0.01823829 289 -0.1113723 0.03499484 0.2585232 1.805100 3 3
[2,] 0.01837829 288 -0.1110698 0.03495179 0.2576934 1.826596 3 3
[3,] 0.01840052 287 -0.1126279 0.03509229 0.2739093 1.988217 3 3