已知一个时间序列y,将其代入统计量后计算统计量的值,而此统计量是需要积分运算的。具体程序如下:
- criv<-function(y)
- {
- T <- length(y)
- a <- function(tau){
- a1 <- floor(tau)
- z.wave.0 <- numeric(length = a1)
- z.wave.1 <- numeric(length = T-a1)
- for(i1 in 1:a1){
- z.wave.0[i1] <- y[i1]-mean(y[1:a1])
- }
- for(i2 in (a1+1):T){
- z.wave.1[i2-a1] <- y[i2]-mean(y[(a1+1) : T])
- }
-
- numerator <- (T - tau)^(-2)*sum(cumsum(z.wave.1)^2)
- denominator <- tau^(-2)*sum(cumsum(z.wave.0)^2)
- numerator/denominator
- }
- integrate(a,lower = .2*T,upper = .8*T)
-
- }
内层函数a即为主要计算统计量的程序,利用integrate函数对a做积分报错,提示为”无效的长度定义“,不晓得到底是哪里出了错。


雷达卡






京公网安备 11010802022788号







