R 滚动窗口熵分析

R 滚动窗口熵分析,r,time-series,entropy,rolling-computation,R,Time Series,Entropy,Rolling Computation,我想计算滚动窗口大小为500的多重时间序列的熵值。我在代码中使用了roll apply函数,但它不起作用 请帮助我计算滚动窗口大小为500的熵(即使用以下代码) 为了您的方便,这里我提供了我的熵代码,这样您可以更容易地建议在熵方法中应用500的滚动窗口大小 N<-nrow(ts) r<-matrix(0, nrow = N, ncol = 1) for (i in 1:N){ r[i]<-approx_entropy(ts[,i], edim = 2, r = 0.2*

我想计算滚动窗口大小为500的多重时间序列的熵值。我在代码中使用了roll apply函数,但它不起作用

请帮助我计算滚动窗口大小为500的熵(即使用以下代码)

为了您的方便,这里我提供了我的熵代码,这样您可以更容易地建议在熵方法中应用500的滚动窗口大小

N<-nrow(ts)
r<-matrix(0, nrow = N, ncol = 1)
for (i in 1:N){
    r[i]<-approx_entropy(ts[,i], edim = 2, r = 0.2*sd(ts[,i]), elag = 1)
}
N修改版本:
代码:

library('zoo')

It’非常感谢你的帮助。但是,我需要计算多个列的滚动窗口。所以,我在前面的代码中应用了循环。因此,如何为一张纸的多列计算单独的滚动熵?当我使用均值函数时,你可以使用你以前创建的函数。那么滚动熵函数中的for循环将按照以下代码进行,对吗?对于(1:N中的I){r[I]滚动熵函数中的循环是这样的,对吗?对于(1:N中的i){熵[i]请建议滚动熵代码中的循环命令。我在上一条评论中的前一种方式正确吗?请提前感谢。
library('zoo')
ts <- matrix(rnorm(100000),1000,100)
library('zoo')
ts <- matrix(rnorm(100000),1000,100)
roll <- function(x){
  entropy <- function(x){
    output <- any function or code you like to put hear
    return(output)
  }
  r <- rollapply(x,width=500,by=1,FUN=entropy)
  return(r)
}
res <- apply(ts ,2,roll)
library('zoo')
ts <- rnorm(10000)
entropy <- function(x){
   return(approx_entropy(x,edim = 2, r = 0.2*sd(x), elag = 1))
}
r <- rollapply(ts,width=500,by=1,FUN=entropy)