R - 计算用于功率变化的增量
R - Compute increments for use in power variation
我正在处理高频数据,它是十进制数的向量 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
}
但我离任何工作都很远。任何帮助是极大的赞赏。我编辑了等式,漏掉了一个等号。
我写了一些东西,希望能让它更清楚:
也许这可以帮助您入门。我想这就是你所表达的。但是我认为像 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)))
}
}
我正在处理高频数据,它是十进制数的向量 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
}
但我离任何工作都很远。任何帮助是极大的赞赏。我编辑了等式,漏掉了一个等号。
我写了一些东西,希望能让它更清楚:
也许这可以帮助您入门。我想这就是你所表达的。但是我认为像 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)))
}
}