Можно ли упорядочить временной ряд таким образом, чтобы была создана определенная автокорреляция? - PullRequest
1 голос
/ 25 ноября 2011

У меня есть файл, содержащий 2500 случайных чисел.Можно ли переставить эти сохраненные числа таким образом, чтобы была создана определенная автокорреляция?Допустим, автокорреляция с лагом 1 из 0,2, автокорреляция с лагом 2 из 0,4 и т. Д. И т. Д.

Любая помощь очень ценится!

Чтобы быть более конкретным:

Временные ряды дневного дохода в процентах от актива имеют следующие характеристики, которые я пытаюсь воссоздать:

  1. Лептокуртичное, симметричное распределение, скажем, с центром в дневном доходе, равном нулю
  2. Нет значительных автокорреляций (поскольку знак ежедневного возврата не предсказуем)
  3. Значительные автокорреляции, если временной ряд возведен в квадрат

Цель состоит в том, чтобы получить случайное времяряд, который удовлетворяет всем этим трем характеристикам.Единственными двумя входными данными должны быть лептокурсическое распределение (это я уже создал) и конкретная автокорреляция квадрата результирующего временного ряда (например, последний квадрат квадрата временного ряда должен иметь автокорреляцию с лагом 1 от 0,2).

Я знаю только, как производить случайные числа из моего собственного смешанного распределения.Естественно, если бы я выровнял этот результирующий временной ряд, не было бы автокорреляцииЯ хотел бы найти способ, который принимает это во внимание.

Ответы [ 2 ]

8 голосов
/ 25 ноября 2011

Как правило, наиболее простой способ создания автокоррелированных данных состоит в том, чтобы генерировать данные таким образом, чтобы они автокоррелировались.Например, вы можете создать автокоррелированный путь, всегда используя значение в p-1 в качестве среднего значения для случайного рисования в период времени p.

Перестановка не только сложна, но и концептуальна.Что ты на самом деле пытаешься сделать в конце?Предоставление некоторого контекста может дать лучшие ответы.

4 голосов
/ 25 ноября 2011

Есть функции для моделирования коррелированных данных.arima.sim() из пакета статистики и simulate.Arima() из пакета прогноза.

simulate.Arima() обладает тем преимуществом, что (1.) он может имитировать сезонные модели ARIMA (иногда его называют «SARIMA») и (2.) Он может имитировать продолжение существующих временных рядов, к которым у вас уже естьподходит модель ARIMA.Чтобы использовать simulate.Arima(), у вас уже должен быть объект Arima.

ОБНОВЛЕНИЕ:

введите ?arima.sim, затем прокрутите вниз до «Примеры».

В качестве альтернативы:

install.packages("forecast")

library(forecast)

fit <- auto.arima(USAccDeaths)

plot(USAccDeaths,xlim=c(1973,1982))

lines(simulate(fit, 36),col="red")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...