Próbujemy stworzyć automatycznie skorelowane wartości losowe, które zostaną wykorzystane jako szeregi czasowe. Nie mamy żadnych danych, do których się odwołujemy, a po prostu chcemy stworzyć wektor od zera.
Z jednej strony potrzebujemy oczywiście losowego procesu z rozkładem i jego SD.
Z drugiej strony należy opisać autokorelację wpływającą na losowy proces. Wartości wektora są autokorelowane ze zmniejszającą się siłą w ciągu kilku timelagów. np. lag1 ma 0,5, lag2 0,3, lag1 0,1 itd.
W końcu wektor powinien wyglądać tak, że: 2, 4, 7, 11, 10, 8, 5, 4, 2, -1, 2, 5, 9, 12, 13, 10, 8, 4, 3, 1, -2, -5
i tak dalej.
źródło
Jeśli masz daną funkcję autokowariancji, najlepszym modelem (pod względem wykonalności), o którym myślę, jest wielowymiarowy proces gaussowski, w którym, biorąc pod uwagę funkcję autokowariancji w lag , możesz łatwo utworzyć macierz kowariancji ,R(τ) τ
Biorąc pod uwagę tę macierz kowariancji, próbkujesz dane z wielowymiarowego gaussa z podaną macierzą kowariancji , tj. Próbkujesz wektor z rozkładu gdzie jest wektorem średnim.Σ
źródło
Możesz wygenerować skorelowaną sekwencję, konstruując proces autoregresji Na przykład proces AR (1) . Wygeneruj przy użyciu jednolitego generatora liczb losowych dla wybranego rozkładu. Niech Uzyskaj i tak dalej. są kolejno wybierane losowo przy użyciu jednolitych liczb losowych. Aby podać średnią i odchylenie standardowe, które chcesz, możesz wyprowadzić je ze średniej i wariancji sekwencji szumu . Wybierz odpowiednio .X(t)=aX(t−1)+e(t) e(0) X(0)=e(0) X(1)=aX(0)+e(1) e(i) X(i) e(i) e(i)
źródło
arima.sim()
funkcji.