假设从连续时间过程中观察到 X(1), X(2), ..., X(N)。如何使用 R 离散化网格 {0,1/N,...,(N-1)/N,1} 上的这些数据的时间?
我真的很感激任何帮助。谢谢。
假设从连续时间过程中观察到 X(1), X(2), ..., X(N)。如何使用 R 离散化网格 {0,1/N,...,(N-1)/N,1} 上的这些数据的时间?
我真的很感激任何帮助。谢谢。
这将是在连续时间内做到这一点的方法:
x <- cumsum(abs(rnorm(20)))
n <- (x-min(x))/diff(range(x))
> n
[1] 0.00000000 0.01884929 0.02874295 0.07230612 0.11253305 0.19770821 0.26356939
[8] 0.33310811 0.36687944 0.47041629 0.53331128 0.61724640 0.72534086 0.74782335
[15] 0.79829820 0.83023417 0.85336221 0.85528100 0.90023497 1.00000000
要获得类似于您可能从 cut 或 Hmisc::cut2 获得的数值向量,您可以使用 findInterval:
> findInterval(n, seq(0,1,length=length(n) )/length(n) )
[1] 1 8 11 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
并且“归一化为 [0,1] 很简单,甚至是微不足道的;
> findInterval(n, seq(0,1,length=length(n) ))/length(n)
[1] 0.05 0.05 0.05 0.10 0.15 0.20 0.30 0.35 0.35 0.45 0.55 0.60 0.70 0.75 0.80 0.80 0.85
[18] 0.85 0.90 1.00