2013-10-18 50 views
-4

假設從連續時間過程中觀察到X(1),X(2),...,X(N)。我怎樣才能用R來離散這個數據在網格{0,1/N,...,(N-1)/ N,1}上的時間?如何使用R在(0,1)範圍內將連續時間採樣路徑變成離散時間?

我真的很感激任何幫助。謝謝。

+6

歡迎SO恐怕你要解釋這個問題。更清楚一點......您的數據在R中的外觀如何?你想讓它看起來像什麼?在閱讀本文時,請閱讀此文章(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。 – Justin

+0

你好,@justin指出,我們需要更多的信息。爲了指向正確的方向,你可以看看'cut',''cut2'('library(Hmisc)')和'?seq'也會有所幫助。根據您的應用程序,'zoo'軟件包也可能會有所幫助 –

回答

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 

爲了得到一個數值向量類似於你可能從切口或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 
相關問題