Математическое бюро
Прогнозирование на ОРЭМ

Википедия нам подсказывает, что на сегодняшний день для анализа данных, в частности, статистической обработки уже разработаны десятки программных продуктов. Рассмотрим кратко наиболее популярные среди них.

Наш коллега в аналогичном обзоре предложил разделять упомянутые программные продукты на две большие группы:

  1. Решения, ориентированные на программирование: R, MATLAB, SciPy.
  2. Решения, ориентированные на анализ данных: MS Excel, SAS, SPSS, Stata.
Могу заметить, что я пользовалась только частью упомянутых решений: MATLAB, SAS, Statistiсa (аналог SPSS), остальные пакеты мне незнакомы и в данной статье я использую мнения пользователей этих продуктов.
UPD 20.04.2020.

Уже год работаю в Python. Это очень круто! Изучайте Python!
UPD 23.05.2016.

Я провожу занятия в Учебном центре Совета рынка, в частности, читаю лекцию об инструментах прогнозирования. Кроме указанных выше продуктов я рассматриваю RapidMiner, KNIME, Weka, Python. Первые три инструмента стоит отнести ко второй группе, последний к первой.

Конечно, я не имею широкого опыта работы с каждым из них. Свое мнение и впечатление я составила при помощи просмотров роликов на youtube.com. В сети масса материалов о преимуществах и недостатках той или иной платформы для анализа данных в виде видео роликов. В основном на английском языке, например, Introduction to RapidMiner Studio. Смотрите, вникайте, выбирайте!

R

R — объектно-ориентированный open source язык программирования для статистического анализа в финансовом секторе.

Достоинствами языка являются его

  1. гибкость;
  2. наличие встроенных мощных аналитических средств;
  3. открытый код.
К недостаткам стоит отнести:
  1. сложность обучения;
  2. ориентация языка программирования на конкретную предметную область (финансовый сектор).

Согласно википедии, в части анализа временных рядов R имеет встроенную поддержку ARIMA, GARCH, Unit root test, Cointegration test, VAR, Multivariate GARCH.

UPD 23.05.2016.

Начала пользоваться R в январе 2015 года, так как на работе встал вопрос перехода на лицензионное программное обеспечение. Скачала R и R Studio и влюбилась в этот инструмент уже через неделю. Платформа блестящая!

Во-первых, не составило труда найти набор обучающих видео роликов. После двух часов просмотра начала самостоятельно писать код. Далее к обучающим материалам обращалась уже с конкретными вопросами, а также за примерами и пояснениями к функциям. Сложилось впечатление, что пользоваться R очень просто и обучение проходит молниеносно. Обращаю ваше внимание на то, что лучшие обучающие материалы всегда на английском!

Во-вторых, никакой глубокой объектно-ориентированности a la Java в R и в помине нет. Функции на заданную тему сложены в пакет функций, обращение к отдельным идет через точку. И все. Пусть вас не пугают намеки на объектно-ориентированность!

В-третьих, пакетов функций тьма тьмущая, на все лады и ряды. Найти нужный вариант совсем просто, так как материалов в сети просто завались. Лично я влюбилась в пакеты plot3D. Подключение пакета осуществляется одной строкой library(plot3D) и готово! Далее можно использовать все, что в него вложено.

В-четвертых, ориентации на финансовый сектор в R также нет. Это какие-то выдумки публики! Да, он применяется для анализа рыночных данных, но вероятно не потому, что он на эту предметную область заточен, а потому, что он очень удобен!

За пару недель использования R стал мною также любим как MATLAB, в котором работала к тому моменту уже 7 лет. Думала, что будет неудобно, что уже сформировались привычки, которые будут мне мешать эффективно работать с чем-то, отличным от MATLAB. Однако на мое удивление практически все мне показалось очень-очень удобным!

К недостаткам R отнесу отвратительный bedugger. Ждем-с, чтобы для R Studio разработали человеческий bedugger, тогда всеми миру будет счастье! Также могут возникнуть сложности с большими объемами данных, многие функции R работают не слишком быстро. Имейте в виду, что большой объем — это несколько миллионов значений.

Итого. Всем, кто выбирает инструмент анализа для изучения, кто только начинает заниматься данной областью я настоятельно рекомендую R. Это легко, просто, удобно, бесплатно! А ваша рыночная стоимость будет неизменно расти, так как специалисты со знанием R становятся все более и более востребованными.

MATLAB

MATLAB — программный продукт, нацеленный на разработку и отладку алгоритмов расчета. MATLAB применяется, главным образом, в инженерных расчетах.

Достоинства:

  1. «элегантная поддержка матриц»;
  2. удобный графический интерфейс;
  3. простота в работе.
Недостатки:
  1. дороговизна лицензий;
  2. неполная поддержка статистических функций;
  3. довольно запутанная интеграция с JAVA и C++ приложениями (хотя в последних версиях этот функционал значительно расширен).
Мой комментарий. Для меня MATLAB — основной программный продукт, в котором уже более 5 лет я разрабатываю алгоритмы прогнозирования временных рядов. Он удобен, достаточно гибок для моих задач, имеет необходимый арсенал встроенных функций. Однако в MATLAB нельзя
  1. анализировать громадные массивы данных (таблицы более 8 млн строк);
  2. его слабость в части интеграции заставляет осваивать другие языки программирования (JAVA, C++), когда стоит задача создания системы прогнозирования.

Бесплатным аналогом MATLAB является система Scilab. Кроме того, довольно давно ведется разработка высокоуровневого языка программирования GNU Octave, совместимого с MATLAB, который позволяет использовать операторы C++ при написании кода.

SciPy

SciPy — это библиотека математических функций для языка программирования Python. Высказывается мнение, что «в терминах подхода и функциональности, SciPy наиболее близкое к MATLAB'у решение, однако менее зрелое».

Ее достоинства:

  1. широкие возможности по интеграции языка Python;
  2. высокая производительность математических операций;
  3. наличие готовых средств для визуальной отладки;
  4. простота освоения.
Недостатки:
  1. незрелость решения (версия на момент написания статьи — 0.11).

MS Excel

MS Excel — знаменитая и, вероятно, самая популярная программа для работы с электронными таблицами при помощи графического интерфейса.

Достоинства:

  1. популярность;
  2. удобный интерфейс;
  3. простота освоения.
Недостатки:
  1. отсутствие какой-либо гибкости;
  2. ограниченный набор функций для анализа данных;
  3. наличие ограничений на количество строк в таблицах.
Мой комментарий. MS Excel — программа для бухгалтерии и построения графиков. Ни о каких мало-мальски серьезных математических алгоритмах говорить в рамках использования Excel просто нельзя.

Википедия, кстати говоря, считает, что MS Excel не является пакетом для статистической обработки данных.

SAS

SAS — большая и сложная система для статистической обработки данных.

Достоинства:

  1. гибкий интерфейс обмена данными (интеграции);
  2. наличие инструментария для работы с кластерами (распределенными системами);
  3. быстрота расчетов на громадных массивах данных.
Недостатки:
  1. примитивный язык написания скриптов SAS macro;
  2. сложность поддержки уже написанных скриптов;
  3. дороговизна лицензий;
  4. сложность освоения.
Мой комментарий. Я работала с SAS в НП «АТС» и занималась анализом небаланса РСВ и небаланса БР. Для таких задач, которые требовали подключения к 3-5 базам данных с последующей консолидацией значений на громадных массивах (таблицы до нескольких миллионов строк), это отличный инструментарий. Код, написанный на SAS macro, выглядит ужасно нечитабельно, его невозможно поддерживать, он недостаточно гибок даже для простых математических преобразований. А специалистов по SAS днем с огнем не сыщешь.

Википедия нам подсказывает, что SAS, так же как и R, имеет встроенную поддержку ARIMA, GARCH, Unit root test, Cointegration test, VAR, Multivariate GARCH.

SPSS

SPSS Statistics — компьютерная программа для статистической обработки данных для проведения прикладных исследований в социальных науках. Название говорит само за себя! Комментарий пользователя: «По моим впечатлениями SPSS используют люди, которые хотят выполнять общепринятый статистический анализ наиболее простым путем».

Достоинства:

  1. удобный графический интерфейс;
  2. ориентация на социальных науки.
Недостатки:
  1. дороговизна лицензий;
  2. отсутствие гибкости в расчетах.
Мой комментарий. Я знаю, что курсы по SPSS проводятся в ВШЭ для студентов и аспирантов гуманитарных специальностей. Моя подруга, выпускница кафедры политологии, считает, что этот инструментарий ей очень подходит для ее задач.

В википедии сказано, что из всего арсенала по анализу временных рядов SPSS имеет встроенную поддержку только моделей ARIMA.

Stata

Stata — программный пакет для анализа данных в сферах экономики, социологии, политики, биомедицины и др. Относительно дешевый аналог SPSS.

Достоинства:

  1. все достоинства SPSS;
  2. более низкая цена чем у SPSS.
Недостатки:
  1. довольно узкая специализация.

В части анализа временных рядов Stata имеет встроенную поддержку: ARIMA, GARCH, Unit root test, Cointegration test, VAR, Multivariate GARCH.

Резюме

Программный продукт с пользовательстким интерфейсом (Stata, SPSS, MS Excel) или язык программирования (R, SciPy), или смесь графического приложения и языка программирования (MATLAB, SAS) — это инструмент в руках аналитика. Выбирая инструмент для решения задачи, необходимо учитывать:

  1. сложность и важность задачи;
  2. сроки получения результатов;
  3. штат и квалификацию специалистов;
  4. бюджет, выделенный на покупку инструмента.

Меньшая гибкость Stata, SPSS, MS Excel требуют меньших денег и времени на обучение; большая гибкость предоставляется бесплатно, но требует самой высокой квалификации специалистов. Баланс достичь несложно, однако результат будет зависеть от квалификации аналитика, а не от выбранного инструмента. Главным инструментом прогнозирования является голова!

UPD 20.04.2020.

Уже год работаю в Python. Это очень круто! Изучайте Python!

Комментарии