我要计算滚动窗口大小为500的多个时间序列的熵值。我在代码中使用了滚动应用函数,但它不起作用。
请帮助我计算熵(即下面的代码)在滚动窗口大小为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)
}发布于 2018-11-05 15:20:07
修改版本:代码:
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)当您计算滚动窗口函数时,输出的大小将等于长度(Ts)-window_length+1。如果不工作,您的数据,请张贴一个数据的例子,以了解哪个是问题。还有您的函数approx_entropy,因为问题/错误可能存在。如果你用一个简单的函数来探测代码,它就能工作。希望能帮上忙!
https://stackoverflow.com/questions/53116307
复制相似问题