R для аналитика

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

Длительность

месяцев

Начало занятий

В июле

Начало занятий
В июле
Что даст вам этот курс

  • Навыки решения ваших рабочих задач эффективным и воспроизводимым способом

  • Умение писать код для повторного использования, автоматизирующий рутинные задачи (e.g. создание отчетов)

  • Знание основных пакетов R для работы с данными, создания графиков и выполнения статистического анализа


  • Почему стоит изучать R?
  • Язык содержит широчайший спектр инструментов для загрузки, преобразования и анализа данных, средств визуализации, создания статистических отчетов и приложений

  • Использование статистических критериев и моделей требует написания не более нескольких строк кода

  • R позволяет производить все действия в одной среде (минуя прямое взаимодействие с базами данных, сайтами и другими инструментами)




  • Актуальность:


    в ходе занятий изучаются методы,

    востребованные на рынке

    Top-down approach:


    сначала объясняем "как делать", потом все остальные важные аспекты

    Ориентация на практику:


    каждое ДЗ — реальный мини-кейс из опыта преподавателей или ваша задача с работы

    Долгосрочный вклад:


    Материалы будут вам полезны, как reference point, в будущих задачах (+cheat-sheets по темам)



    Кому адресован курс:
  • Аналитикам, которые стремятся перейти от Excel/ SPSS/ Statistica к более продвинутым средствам анализа

  • Специалистам, которым необходимо искать закономерности в данных, визуализировать и строить статистически обоснованные выводы: исследователи, социологи, бизнес- и финансовые аналитики, маркетологи и HR

  • Всем, у кого когда-то был вводный курс по R, Python или Matlab, а теперь есть потребность перейти к практическому внедрению R в рабочие задачи
Преподаватели
Андрей Огурцов
Ведущий специалист по статистике
Алексей Катин
PhD в North Carolina State University
Ведущий специалист по статистике, ПАО НПЦ «Борщаговский химико-фармацевтический завод».

С 2012 года занимается планированием и статистическим анализом результатов клинических исследований, используя R в качестве единственного инструмента обработки данных.

Автор блога http://biostat-r.blogspot.com/, разработчик нескольких R-пакетов для машинного обучения.

Закончил Киевский Национальный Университет (КНУ) по специальности «Биохимия» и Институт последипломного образования КНУ по специальности «Финансы и кредит».
PhD (аспирант 3 года) в North Carolina State University, USA.
Область профессиональных интересов: анализ полевых и лабораторных данных качества водной среды для последующего построения прогнозных моделей. R является основным инструментом, в работе применяются регрессионный анализ и байесовый подход.

Образование: магистратура Dresden University of Technology по специальности гидролог, бакалавриат: МИСиС по специальности инженером-эколог.

Опыт преподавания: 2 года в роли ассистента профессора в North Carolina State University.

Участник международных конференций: 15th Estuarine and Coastal Modeling Conference (ECM15) в 2018 и North Carolina's Coastal Conference в 2017.
Андрей
Огурцов
Алексей
Катин
Преподаватели
Андрей Огурцов
Ведущий специалист по статистике
Ведущий специалист по статистике, ПАО НПЦ «Борщаговский химико-фармацевтический завод».

С 2012 года занимается планированием и статистическим анализом результатов клинических исследований, используя R в качестве единственного инструмента обработки данных.

Автор блога http://biostat-r.blogspot.com/, разработчик нескольких R-пакетов для машинного обучения.

Закончил Киевский Национальный Университет (КНУ) по специальности «Биохимия» и Институт последипломного образования КНУ по специальности «Финансы и кредит».
Алексей Катин
PhD в North Carolina State University
PhD (аспирант 3 года) в North Carolina State University, USA.
Область профессиональных интересов: анализ полевых и лабораторных данных качества водной среды для последующего построения прогнозных моделей. R является основным инструментом, в работе применяются регрессионный анализ и байесовый подход.

Образование: магистратура Dresden University of Technology по специальности гидролог, бакалавриат: МИСиС по специальности инженером-эколог.

Опыт преподавания: 2 года в роли ассистента профессора в North Carolina State University.

Участник международных конференций: 15th Estuarine and Coastal Modeling Conference (ECM15) в 2018 и North Carolina's Coastal Conference в 2017.
Процесс обучения
Обучение проходит в формате онлайн-вебинаров на русском языке.
Регулярность занятий: 2 раза в неделю по 2 академических часа (1.5 астрономических часа).

Каждую неделю предполагается выполнение 1 домашнего задания (время на выполнение: 2-4 академических часа). По всем практическим заданиям команда преподавателей дает развернутый фидбек.

Для прохождения курса потребуется только компьютер с доступом в интернет, софт (RStudio и т.д.) настроим в самом начале курса совместно.
Программа обучения
Модуль 1
Программирование на языке R
Модуль 2
Загрузка и выгрузка данных.
Модуль 3
Преобразования данных. Пакет data.table
Модуль 4
Визуализация данных. Пакеты ggplot2 и plotly
Модуль 5
Основы планирования экспериментов. А/В тесты
Модуль 6
Проектная работа
Программирование на языке R
Материал первого модуля охватывает две тесно взаимосвязанные темы: программирование на языке R и обеспечение воспроизводимости выполненного с использованием R анализа. Изучение синтаксиса языка, векторизации, функций и реализаций ООП в R послужит основой для освоения всех последующих тем.

Также рассматриваются возможности IDE RStudio, значительно ускоряющие и облегчающие написание кода, и контроль версий с использованием git.
Знакомство с языком R. Установка рабочего окружения.
Рассматривается история создания языка R, сфера его использования, преимущества и недостатки.
Участники научатся настраивать рабочее окружения под основными ОС (Windows/Linux/macOS), устанавливать пакеты и пользоваться встроенной справкой, а также познакомятся с возможностями IDE RStudio.
Базовый синтаксис языка. Типы и структуры данных.
Слушатели освоят интерактивное использование R, изучат основные типы и структуры данных, а также получат вводную информацию об организации кода в свои проектах.
Управляющие конструкции. Векторизация.
Слушатели изучат управляющие конструкции языка R и научатся использовать векторизованные вычисления.
Написание и использование функций.
Слушатели научатся использовать функции из сторонних пакетов и писать свои собственные функции для автоматизации повторяющихся операций, а также получат базовые сведения об обработке исключений.
Объектно-ориентированное программирование в R.
Участники изучат основные объектные системы языка R и особенности диспетчеризации для S3/S4-классов (генерические функции вместо методов, определяемых внутри класса).
Окружения и области видимости. Основы функционального программирования.
Слушатели ознакомятся с иерархией окружений и узнают, как в R происходит поиск объектов по именам; освоят такие элементы функционального программирования, как создание функций-замыканий и использование функций высшего порядка, применяющих заданную функцию к элементам списков.
Контроль версий и воспроизводимые исследования (literate programming).
Участники изучат концепцию literate programming и ее реализацию в виде пакета knitr, освоят автоматическую генерацию отчетов в html/docx, научатся применять систему контроля версий git.
Что делать, если ничего не работает. Обзор экосистемы R.
Слушатели изучат эффективные методики поиска ответов на возникающие при изучении R вопросы, научатся задавать корректные вопросы на Stack Overflow, узнают о сообществах R-пользователей и ознакомятся с экосистемой языка R.
Загрузка и выгрузка данных.
Любой анализ данных прежде всего требует их корректной и эффективной загрузки. В этом модуле рассматриваются основные источники данных, включая файлы Excel, чтение из и запись в базы данных SQL, получение информации в пригодном для анализа виде из текстовых файлов, а также работа с некоторыми популярными API для получения данных.

Освоение материала этого модуля позволит использовать в работе наиболее простые средства импорта данных, исключающие необходимость промежуточных преобразований и не требующие применения дополнительных инструментов помимо пакетов для языка R.
Источники данных.
Участники изучат основные источники данных, научатся загружать текстовые данные и данные в формате MS Excel.
Работа с базами данных.
Участники научатся загружать данные в R из популярных СУБД при помощи пакета dbi и сохранять данные в БД при помощи пакета MonetDBLite.
Работа с API для получения данных.
Участники научатся загружать данные с веб-сайтов с использованием API на примере Google Analytics и Вконтакте, а также финансовые данные посредством пакета Quandl и rusquant.
Текстовые и неструктурированные данные.
Участники изучат базовые приемы работы с текстовыми данными, начнут изучать регулярные выражения, познакомятся с форматом JSON и научаться парсить XML и HTML при помощи пакетов rvest и xml2.
Преобразования данных. Пакет data.table
Подлежащие анализу данные довольно редко попадают в руки аналитика в виде единственной прямоугольной таблички, в которой столбцы соответствуют переменным, а строки - наблюдениям. Гораздо чаще требуется выполнять предварительную обработку, включающую в себя объединение таблиц, изменение типов данных, вычисление производных и агрегированных показателей.

Выполнение этих процедур будет рассмотрено с акцентом на обеспечение максимальной скорости работы (как самого аналитика, так и его ПК).
data.table - основы.
Участники изучат основы синтаксиса data.table, научаться считывать и сохранять табличные данные, выполнять отбор наблюдений и столбцов, а также использовать группировки.
data.table - ключи и модификация по ссылке.
Участники научаться повышать скорость работы с данными в пакете data.table при помощи создания индексов, а также изучат оператор :=, позволяющий модифицировать таблицы без создания их копий.
data.table - переформатирование и объединение таблиц.
Слушатели изучат концепцию "опрятных данных" (tidy data), научаться выполнять преобразования в "широкий" формат из "длинного" и наоборот.
Программирование с использованием data.table.
Участники научаться использовать возможности data.table внутри написанных ими функций.
Визуализация данных. Пакеты ggplot2 и plotly
Визуализация данных - ключевой навык аналитика, полезный как на этапе предварительного знакомства с данными, так и при создании отчетов и презентаций для внутренних заказчиков и внешних потребителей результатов анализа.

Зависимости, выявленные путем создания подходящих графиков, помогут сформулировать гипотезы для дальнейшей проверки формальными методами и подскажут направления дальнейшего анализа.

Рассматриваемая библиотека ggplot2 и дополняющие ее пакеты позволяют создавать графики произвольной сложности, а пакет plotly добавит в арсенал аналитика возможности создавать привлекательные интерактивные графики с повышенной плотностью представления информации.
Грамматика графики. Основы ggplot2.
Участники узнают, что такое грамматика графики, как устроено послойное создание графиков в ggplot2, а также научаться создавать наиболее часто используемые графики при помощи данной библиотеки.
Сложные графики с использованием ggplot2.
Слушатели научатся создавать сложные типы графиков, включая "фасеточные", и освоят использование дополнительных цветовых палитр и тем.
Пакеты, расширяющие возможности ggplot2.
Участники изучат создание специализированных графиков, используя возможности пакетов GGally owplot и patchwork. Также будет рассмотрено создание анимированных графиков при помощи gganimate.
Интерактивная визуализация с plotly.
Участники познакомятся с основами интерактивной визуализации при помощи plotly и узнают, когда уместно использовать интерактивные графики.
Основы планирования экспериментов. А/В тесты
В «Метафизике» Аристотеля утверждается, что "всякая наука исследует то, что существует всегда или большей частью, между тем случайное не принадлежит ни к тому, ни к другому". К счастью, сейчас у нас на вооружении есть развитый инструментарий планирования экспериментов и проверки гипотез. Он не совершенен, но позволяет исследовать явления, имеющие вероятностную природу, такие как поведение посетителей веб-сайтов или игроков в онлайн-играх, динамика цен на нефть и финансовые инструменты, курсы валют и многое другое.

В последнем модуле данного курса рассмотрены основные подходы, используемые при планировании экспериментов и статистическом анализе из результатов. Статистика будет рассмотрена в прикладном аспекте - как наука о принятии решений в условиях неопределенности.
Постановка и формализация бизнес-задачи.
Участники узнают о важности выбора корректных метрик качества в аналитических задач, а также о важности предварительной оценки целесообразности применения методов аналитики или машинного обучения.
Предиктивная аналитика и статистические выводы.
Участники повторят основные понятия теории вероятностей, такие как уровень значимости и мощность. Будет рассмотрено точечное и интервальное оценивание параметров в контексте типичных аналитических задач.
Проверка гипотез.
Участники познакомятся с основами A/B-тестирования, со статистическими критериями для сравнения долей и средних, с общей линейной моделью и с бутстрепом.
Рандомизация. Расчет размера выборки.
Участники изучат виды рандомизации и причины, делающие использование рандомизации крайне желательным способом формирования выборок; научаться рассчитывать размеры выборок для типичных дизайнов экспериментов.
Проектная работа
В рамках курса предусмотрена защита проекта на выбранную учащимся тему с использованием открытых данных.

Проект следует оформлять в виде github-репозитория с информативным README, основным .Rmd-файлом, содержащим код для всех выполненных этапов анализа, и итоговым отчетом в .html/docx.

Исследование должно быть оформлено таким образом, чтобы любой желающий мог его повторить и воспроизвести все полученные результаты. На подготовку проекта отводится 3 недели, в течение последней недели курса проводится проверка и выставляются оценки.

Основные элементы работы:

1. Обоснование выбора темы (актуальность), формулировка цели и задач анализа.

2. Выбор источника данных и документирование способа выгрузки данных (всего набора или выборки) для локального использования.

3. Сохранение данных для дальнейшего локального использования.

4. Описание таблицы или таблиц данных (количество строк и столбцов, описание и типы переменных).

5. Предварительная обработка данных (объединение таблиц, агрегирование и другие преобразования).

6. Визуализация данных.

7. Статистический анализ.

8. Выводы.
Предлагаемые темы выпускного проекта:
Участники могут написать работу на интересную и актуальную для них тему.
Единственное ограничение - использование открытых данных. Также вы можете использовать искусственно сгенерированные данные, по структуре и объему соответствующие реальной задаче на вашей работе.

Пример выбранной темы: анализ финансовых данных (котировки акций).
Представьте, что у вас есть $1.000.000, и вы формируете портфель акций из компаний двух секторов экономики: IT и энергетика/нефтегаз.
  • Распределите свои деньги между акциями 10-20 компаний из каждого сектора, "купив" их по цене на момент в прошлом (более года назад).

  • Загрузите информацию по котировками за год с момента "покупки".

  • Изобразите графически, как менялась стоимость ваших активов в течение года: акции каждой фирмы по отдельности и стоимость всего портфеля (взвешенная сумма котировок).

  • Проанализируйте, подорожали или подешевели акции компаний в каждом из двух секторов, выбрав адекватную меру центральной тенденции и способ проверки (статистический критерий, бутстреп).

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

  • Изучите корреляции между стоимостью акций нескольких компаний в одном из секторов и между стоимостью акций компаний из разных секторов.
  • Вводное занятие по проектной работе.
    Это занятие поможет определиться с темой проекта, его объемом и используемыми данными, а также с форматом представления результатов работы.
    Домашние задания: 1
    1 Проектная работа
    Порядок выполнения работы:

    1. Выбрать тему и обосновать ее актуальность, сформулировать цели и задачи исследования. Сформулировать гипотезы, подлежащие проверке на этапе статистического анализа.

    2. Выбрать источник данных, задокументировать версию набора данных и/или дату выгрузки, осуществить выгрузку данных для локального использования. Поиск данных можно начать с https://www.google.com/publicdata/directory. Представленные по этому адресу наборы данных доступны для скачивания в CSV на сайтах https://data.worldbank.org/ и https://ec.europa.eu/eurostat/en/web/government-finance-statistics/statistics-illustrated. Задача со звездочкой: загрузить данные с использованием API при помощи https://cran.r-project.org/web/packages/RSocrata/index.html Данные по России можно найти, например, на сайте ВШЭ http://sophist.hse.ru/data_access.shtml.

    3. Сохранить выгруженные данные для дальнейшего локального использования в двух вариантах: в CSV и в БД MonetDBLite или другую по собственному выбору таким образом, чтобы их было удобно повторно загружать в R. Убедиться, что при сохранении и повторной загрузке целостность данных не нарушается. Задача со звездочкой: освоить сохранение в бинарный формат .fst и загрузку из него.

    4. Описать таблицу или таблицы данных (количество строк и столбцов, описание и типы переменных). Вывести основные описательные статистики: для количественных переменных - среднее, стандартное отклонение, медиана, минимум и максимум; для категориальных - частота и доля в процентах.

    5. Выполнить предварительную обработку данных (при необходимости объединить таблицы, выполнить агрегирование и другие преобразования). Сохранить обработанные данные в отдельный CSV и/или путем добавления новой таблицы к созданной в пункте 3 БД.

    6. Выполнить визуализацию данных с двумя целями: понять структуру данных для дальнейшего анализа и рассказать при помощи графиков определенную историю, адресатом которой может быть как (воображаемый) руководитель проекта, так и просто заинтересованный читатель.

    7. Статистический анализ. Выполнить проверку сформулированных ранее гипотез с использованием подходящих статистических методов.

    8. Выводы. Если на некоторые из поставленных вопросов ответить в ходе исследования не удалось, следует постараться объяснить, почему.
    Консультация по проектной работе.
    Слушатели курса получат комментарии относительно прогресса проектной работы, ответы на вопросы, рекомендации по реализации.
    Оценка проектных работ
    Разбор проектов, комментарии и выставление оценок.
    Дата выдачи сертификата: 23 декабря 2019 года
    Ваш сертификат
    otus.ru
    Константин Константинопольский
    успешно закончил курс
    «R для аналитика»
    Успешных заданий:
    16 из 16
    Проектная работа:
    Распределённая система сетевого мониторинга
    Виталий Чибриков
    Генеральный директор
    № 0001
    otus.ru
    Константин Константинопольский
    успешно закончил курс
    «R для аналитика»
    Успешных заданий:
    16 из 16
    Проектная работа:
    Распределённая система сетевого мониторинга
    Виталий Чибриков
    Генеральный директор
    № 0001
    Партнеры ждут выпускников этого курса