Рассчитать корреляцию данных, сгенерированных функцией в R

Я создал следующую функцию в R:

timeseriesmodel <- function(N, x0, delta, variance) {
      z<-cumsum(rnorm(n=N, mean=0, sd=sqrt(variance)))
      t<-1:N
      x<-x0+t*delta+z
      return(x)}

Эта функция возвращает вектор «x» длины «N», представляющий точки данных случайного блуждания с дрейфом.

В моем случае:

timeseriesmodel(250,1,0,1.2)

Теперь я должен повторить эту функцию 100 раз, чтобы получить 100 наборов данных временных рядов длиной 250. Затем я должен оценить корреляцию между 249-м и 250-м значением набора данных «x», используя 100 наборов.

Как неопытный пользователь R, я не понимаю, как эффективно манипулировать данными и вычислять/оценивать корреляцию запрошенных точек данных. Помощь очень ценится.


person Radda    schedule 03.10.2013    source источник


Ответы (1)


Это работа для replicate

> set.seed(1)
> Series <- replicate(100, timeseriesmodel(250,1,0,1.2) )  # repeating 100 times `timeseriesmodel`
> dim(Series)   # each result is store column-wise
[1] 250 100
> cor(Series[249,], Series[250,] ) # here's the correlation between element 249 and 250
[1] 0.9975532
person Jilber Urbina    schedule 03.10.2013