Перейдем к следующему примеру с экономическим содержанием, а именно примеру со стоимостью акций компаний Google. Давайте сначала мы загрузим эти данные из Интернета. Тут на некоторых компьютерах нужно небольшое шаманское заклинание sys.setlocale ("LC_TIME"), то есть на некоторых компьютерах сработает без проблем, но на некоторых вот потребуется такое маленькое шаманское заклинание с установкой locale для времени. Но это связано с тем эффектом, что даты на разных языках называются по-разному, иногда не происходит автоматического распознавания. Здесь мы установили так, что у нас будет английский стандарт для дат, времени и так далее. И после этого мы можем с помощью функции getsymbols, которая входит в пакет quantmod, мы можем получить данные по акции компании Google. Ну, скажем, возьмем за какой-нибудь период с 2014-го, пусть будет 01-01, ну давайте возьмем to="2014- 12-01". Ну то есть за 11 месяцев. Соответственно, давайте посмотрим на то, что у нас все загрузилось, head (GOOG). И вот у нас есть данные по цене открытия, максимальной цене, минимальной цене, закрытия, объем торгов и цене, скорректированной на выплату дивидендов. Ну поскольку мы моделируем одномерные временные ряды, то из этих показателей давайте возьмем цену закрытия. То есть мы назовем переменную y, наша переменная y — это из набора данных GOOG. Мы выберем GOOG.close. Так, вот теперь у нас есть одномерный временной ряд y. И мы к нему применим наш стандартный подход — сначала построим три графика. tsdisplay (y). И на этот раз мы видим типичное случайное блуждание. Вот этот график — прям как будто мы его сгенерировали случайным блужданием искусственно. Во-первых, если ряд находится высоко, то сегодняшнее значение очень похоже на вчерашнее, если ряд находится низко, сегодняшнее значение похоже на вчерашнее. Медленно убывающей обычной автокорреляционной функции, он до конца так, в доверительный интервал так и не вошли. И одна частная автокорреляционная функция не нулевая, остальные нулевые. Типичный график для случайного блуждания. Чтобы лишний раз убедиться в этом, давайте сами возьмем разности, то есть построим те же самые показатели для delta y. Напишем, что dy — это diff (y), то есть dy — это разница между сегодняшней ценой акции Гугла и вчерашней. Перейдем к delta и построим тот же самый график для dy. И тут мы увидим, что у нас достаточно, несмотря на то, что у нас достаточно длинный временной ряд, порядка 200 наблюдений, у нас получается, что нету у него, все автокорреляции равны 0 и частные автокорреляции тоже, в принципе, все равны 0. То есть это говорит о том, что этот ряд — это белый шум. То есть исходный ряд был у нас процессом случайного блуждания. Ну и тем не менее мы можем попробовать оценить какие-нибудь модели. Пусть будет модель_1, соответственно 1-я модель, мы предполагаем, что это случайное блуждание, Arima для ряда y. И мы предполагаем, что порядок: 0, 1, 0. То есть это — модель чистого случайного блуждания. Можно посмотреть, конечно, четкую модель_1, но на самом деле здесь в модели_1 нет даже никаких коэффициентов, не оценивалось. Нет ни коэффициента при AR-части, ни коэффициента при МА-части. Есть только sigma квадрат с крышкой оцененное, это дисперсия. И соответственно, при прогнозировании по такой модели, естественный прогноз будет выглядеть, что завтрашний показатель такой же, как вчера, но оценка модели, помимо этого тривиального ответа, она мне еще даст доверительный интервал, в каких пределах я ожидаю будущую цену. То есть я могу взять, сделать прогноз по модели_1, это будет forecast от модель_1, ну, к примеру, построю прогноз на 20 дней вперед. Ну можно опять же посмотреть на этот прогноз_1, вот значение и доверительный интервал. То есть значение, тут ничего удивительного нет, это — текущая цена. А это — доверительные интервалы с учетом оцененной дисперсии. Можно на графике посмотреть, как это выглядит, prognoz_1. Соответственно, вот из-за того, что у ряда довольно большие колебания, вот у нас доверительный интервал со временем расширяется. Опять же можно посмотреть, какую модель компьютер выберет сам, минимизируя критерий Акаике. Давайте посмотрим, модель автоматическая как выглядит. auto.arima для ряда y. И посмотрим какая модель минимизирует критерий штрафной Акаике. Ну вот, оказывается, компьютер подбирает ту же самую модель, что и мы подобрали. Зачастую так оказывается, что ряды цен акций — это ряды типа «случайное блуждание» или очень похожие на них. Связано это с тем, что очень много людей пытаются сделать деньги и поэтому чего-то очевидного, каких-то прогнозов: лучше, чем; такое же как сегодня, если бы они были очень легкими, то все бы их делали, и соответственно, это приводило бы к тому, что цена акций выравнивалась к процессу случайного блуждания. Что-то тут найти довольно сложно. Давайте возьмем следующий пример ряда. Это ряд по населению России. Давайте мы загрузим его. Зайдем на сайт sophisthse.ru, возьмем тут статистические ряды. И вот здесь население и трудовые ресурсы. Вот есть численность населения, ряд называется, вот годовые показатели, ряд называется POPNUM_ Y. Соответственно, открываем R-STUDIO и здесь говорим, что y равняется sophisthse. И ряд называется, большими буквами, так же, как он был назван на сайте, "POPNUM_Y". Вот, ряд у нас загрузился, и мы можем на него посмотреть, сделать наш стандартный график из трех составляющих tsdisplay (y). Тут мы видим следующее, что, к сожалению, это, конечно, короткий ряд, то есть здесь всего-то 25 наблюдений, это годовые данные. Но все же по графику я бы сказал, что это похоже на случайное блуждание. Сегодняшний показатель уж больно похож на вчерашний каждый раз. Медленно убывает автокорреляционная функция. Поэтому я бы моделировал вот этот ряд случайным блужданием, возможно, с некоторым трендом. Соответственно, если исходить из такого подхода, то можно попробовать построить модель_1 для нашего ряда, это — Arima. Для ряда y порядок Arima равен: 0, 1, 0. То есть случайное блуждание. Можно, например, добавить AR-составляющую. И, скажем, поставить опцию, что здесь есть, возможно, смещение TRUE, поскольку ряд в целом показывает некую тенденцию к убыванию. И оценив такую модель, мы можем, во-первых, посмотреть на оценки коэффициентов. Так, вот summary модель_1, то есть, и, соответственно, помимо оценок коэффициентов, мы можем построить прогнозы. Поскольку коэффициенты плохо интерпретируются в моделях класса Arima, то нам удобней посмотреть на прогнозы. forecast по модели_1 на, допустим, 5 лет вперед, и построим график plot(prognoz_1). Вот, и, соответственно, на этом графике мы видим, что, ну в зависимости от того, оптимист вы или пессимист, вот, возможно, в 80 % доверительном интервале есть и тенденция роста населения России, но при вот такой глобальной динамике с 90-го года — убывание, то как бы прогноз глобальный все-таки, что средняя убывает, хотя опять же вопрос в том, изменились ли характеристики ряда или они остались теми же? Может быть, произошли какие-то структурные изменения, которые резко переломили здесь динамику? Но если предполагать, что ряд описывается одним и тем же процессом Arima, который мы предположили, то тогда средний прогноз убывающий, ну и есть возможность роста в 80 % доверительном интервале.