1

我正在处理高频数据,它是十进制数的向量 X。

我想在 R 中编写以下代码,但完全不知道从哪里开始: 在此处输入图像描述

n决定我们正在查看的间隔有多大。这可以是任何值,这不是那么重要,因为我需要尝试不同的值。

我已经尝试了很多东西,其中包括:

X <- runif(10000) # 5000 obs. pr. second, with 20 mill obs in total

for(i in 1:length(X){
sum? * (-1)^??
*(for (n in 0:i) print(choose(n, k = 0:n)))
x <- ??
mat[1:length(X)] <- x
}

但我离任何工作都很遥远。任何帮助是极大的赞赏。我已经编辑了方程式,错过了一个等号。

我写了一些希望能更清楚的东西: 在此处输入图像描述

4

1 回答 1

1

也许这可以让你开始。我想这就是你所表达的。但是,我认为像 rnorm(nx,1,0.01) 这样的初始化会更有意义 - 即更平滑的东西。在生成的点之间进行 xsub 插值也可能有意义(即,使其成为连续函数)。

它显然可以提高效率,但首先应该验证它是否正确。

另外我真的不知道如何解释结果,否则我会做一个情节。

nx <- 100
secs <- 2
x <- runif(nx)
obspersec <- nx/secs

xsub <- function(t){
   i <- trunc(t*obspersec)+1
   if (i<=0) return(0)
   if (i>nx) return(0)
   return(x[i])
}

x_njk <- function (n,i,k){
  if (i<k){
    return (0)
  } 
  sum <- 0
  for (j in 0:k){
    term <- ((-1)^j)*choose(k,j)*xsub((i-j)/n)
    sum <- sum + term 
  }
  return(sum)
}

n <- 100

for (k in 1:2){
   for (i in k:10){
     print(sprintf("n:%d i:%d k:%d  x_njk:%.5f",n,i,k,x_njk(n,i,k)))
   }
}
于 2015-06-04T09:46:01.783 回答