14 января 2018

Работа с пакетом MuMIn. Часть 1: Селекция моделей



Автор: Владимир Шитиков

Введение

Современные исследования приобретают все более и более обобщающий и стратегический характер, а глубокая стратегия никогда не ограничивается рассмотрением какой-то одной идеи, гипотезы или модели. Принцип "множественности моделей", сформулированный еще в 1890 г. Т. Чемберленом, предполагает формирование набора альтернативных научных гипотез \(H_1, H_2, \dots, H_r\), для каждой из которых подбирается адекватная математическая модель. В итоге вместо того, чтобы находить по Фишеру соотношение вероятностей основной и нулевой гипотез \(H_0 | H_1\), оценивается относительная сила обоснованности (strength of evidence) каждой из рассматриваемых гипотетических моделей \(g_1, g_2, \dots, g_r\). Эта новая парадигма оформилась в современную методологию "Model selection and Multimodel inference" (Burnham, Anderson, 2002), которая базируется на основных принципах теории информации Кульбака-Лейблера (Kullback-Leibler, 1951) и включает ранжирование моделей с последующим формированием статистического вывода на основе этих нескольких моделей. 

Пакет MuMIn (от "Multi-Model Inference"), разработанный К. Бартоном, содержит набор функций, которые, используя информационные критерии, реализуют ранжирование и отбор статистических моделей различного типа и их последующее обобщение (model averaging) с целью получения коллективного решения. Ансамбль \(G_r\) моделей, включаемых в анализ, может формироваться либо автоматически (например, как все возможные комбинации подмножеств предикторов заданной "глобальной" модели), либо задается исследователем в виде набора конкретных моделей (т.е. математически выраженных гипотез, нуждающихся в проверке). Для всех анализируемых моделей выполняется подгонка их коэффициентов по эмпирическим наборам данных и рассчитываются основные статистики и информационные критерии \(IC\) качества аппроксимации. Полный список из \(r\) моделей сортируют по уменьшению адекватности на основе заданного \(IC\) и устанавливают порог, согласно которому некоторое количество "оптимальных" моделей далее будет использовано для формирования окончательного коллективного решения. Такие коллективные решения могут быть получены с использованием как традиционных взвешенных средних, так и других специальных алгоритмов (метод Бейтса-Гренджера, бутстреп, метод "складного ножа", адаптивная регрессия и др.). 

В этой статье мы рассмотрим первую часть описанной процедуры, т.е. построение ранжированного списка моделей на основе информационных критериев с использованием пакета MuMIn.





25 декабря 2017

Обзор интересных R-пакетов за ноябрь-декабрь 2017 г.




С наступающим Новым Годом!
Добра и мира вам и вашим близким!



05 ноября 2017

Обзор интересных R-пакетов за октябрь 2017 г.



  • fastrtext - R-интерфейс к библиотеке fastText, разработанной исследователями из Facebook. Эта библиотека предназначена для работы с текстовыми данными и построения моделей путем обучения с учителем и без учителя.
  • googleLanguageR - пакет для работы с несколькими API от Google для обработки естественных языков (в частности, Natural Language APICloud Speech API и Cloud Translation API).
  • JuliaCall - R-интерфейс к языку Julia.
  • OutliersO3 - набор методов для обнаружения выбросов в наборах данных с большим количеством переменных.
  • powerlmm - анализ мощности для панельных данных с двумя или тремя уровнями случайных эффектов.
  • re2r - пакет для работы с регулярными выражениями, в основе которого лежит алгоритм RE2 от Google. См. примеры здесь.
  • slowraker - реализация алгоритма RAKE, предназначенного для автоматического извлечения ключевых слов из отдельных текстовых документов. См. примеры здесь.
  • tscount - построение моделей для временных рядов, представленных счетными переменными.
  • udpipe - пакет для выполнения распространенных задач, возникающих при обработке естественных языков (выделение токенов, лемматизация, определение части речи и др.).
  • Здесь можно ознакомиться со списком из 44 пакетов для R, обеспечивающих доступ к источникам данных разной тематики.


08 октября 2017

Обзор интересных R-пакетов за сентябрь 2017 г. (и другие новости)



  • billboarder - R-интерфейс к billboard.js - JavaScript-библиотеке для интерактивной визуализации данных. См. примеры здесь и здесь.
  • blastula - хороший инструмент для формирования и отправки электронных писем с HTML-содержимым, которое будет правильно отображаться на любых устройствах. См. примеры здесь.
  • blogdown - пакет от RStudio, позволяющий использовать синтаксис R Markdown для подготовки статей для блогов. С полной документацией и примерами можно ознакомиться здесь.
  • cetcolor - набор хорошо воспринимаемых цветовых палитр, разработанных в соответствии с принципами, которые были описаны в работе Kovesi (2015).
  • esvis - набор функций для оценивания и визуализации "размера эффекта", вызванного тем или иным фактором (факторами) в экспериментальных и обсервационных исследованиях.
  • googledrive - набор утилит для работы с Google Drive из среды R.
  • Knoema - R-интерфейс к сервису Knoema, предоставляющему доступ к огромной коллекции публичных данных разной тематики (~2.5 миллиарда временных рядов из тысяч источников).
  • missRanger - реализация одного из эффективных алгоритмов заполнения пропущенных значений в наборах данных с разнотипными переменными.
  • skpr - инструмент для нахождения оптимального плана эксперимента. Имеется графический интерфейс, реализованный в виде Shiny-приложения.
  • spm - набор функций для моделирования пространственных данных с помощью как традиционных (random forests, GBM), так и гибридных методов машинного обучения.

Из других хороших новостей: в московском издательстве ДМК Пресс вышла книга "Машинное обучение с использованием библиотеки H2O" (ориг. назв. "Practical Machine Learning with H2O") в переводе, выполненным Андреем Огурцовым (автор блога "Биостатистика и язык R"). В аннотации к книге говорится следующее:

"Машинное обучение наконец-то достигло стадии зрелости. При помощи программного обеспечения H2O вы можете решать задачи машинного обучения и анализа данных с использованием простого в использовании и открытого (open source) фреймворка, который поддерживает большое количество операционный систем и языков программирования, а также масштабируется для обработки больших данных. Это практическое руководство научит вас использовать алгоритмы машинного обучения, реализованные в H2O, с упором на наиболее важные для продуктивной работы аспекты.

Если вы умеете программировать на R или Python, хотя бы немного знаете статистику и имеете опыт обработки данных, эта книга Даррена Кука познакомит вас с основами использования H2O и поможет вам поэкспериментировать с машинным обучением на наборах данных разного размера. Вы изучите несколько современных алгоритмов машинного обучения: глубокое обучение, «случайный лес», обучение на неразмеченных данных и ансамбли моделей.

Прочтя эту книгу, вы:

• узнаете, как импортировать данные в H2O, преобразовывать их и экспортировать их из H2O;
• изучите основные концепции машинного обучения, такие как перекрестная проверка и проверочные наборы данных;
• поработаете с тремя разными наборами данных, решая задачи регрессии, бинарной и многоклассовой классификации;
• используете H2O для анализа каждого набора данных при помощи четырех алгоритмов машинного обучения;
• поймете, как работает кластерный анализ и другие алгоритмы обучения на неразмеченных данных."

Следует добавить, что А. Огурцов выполнил не только отличный перевод книги, но и подготовил некоторые дополнительные и очень полезные материалы по H2O (в частности, по Deep Water), которые можно найти в соответствующем GitHub-репозитории.



23 сентября 2017

Отчет с конференции "Enterprise Applications of the R Language"



12-14 сентября в Лондоне прошла ежегодная конференция "Enterprise Applications of the R Language" (EARL) - один из наиболее значимых форумов, где пользователи R делятся своим опытом применения этой системы статистических вычислений для решения бизнес-задач.

Конференция традиционно началась с серии практических семинаров, которые в этом году были посвящены следующим темам:
  • Организация работы со Spark'ом в среде R с помощью пакета sparklyr
  • Работа с пакетом MicrosoftML
  • Веб-скрейпинг и анализ текстовых данных с помощью R
  • Работа с GitHub
  • Принципы написания функций в R
  • Введение в Shiny
В последующие два дня было представлено около 60 докладов с примерами использования R в самых разнообразных индустриях - страхование, банковское дело, маркетинг, программное обеспечение, спорт, медицина, автомобилестроение и др. Слайды этих сообщений можно найти на сайте конференции (см. раздел "Speakers"). Поделюсь некоторыми общими наблюдениями:
  • Два-три года назад было много обсуждений того, как основанные на R приложения можно запустить в производство. В этот раз таких обсуждений почти не было - то ли народ уже определился с "оптимальными" способами развертывания подобных приложений в своих организациях, то ли просто так получилось, что доклады были в основном посвящены другим темам. Одно из исключений - доклад вашего покорного слуги, в котором вместе с моим соавтором и коллегой Дмитрием Дерябиным мы привели детальный пример создания автоматизированного прогнозного приложения, написанного на R и развернутого в "облаке" Amazon с использованием целого ряда AWS-сервисов.
  • R начинают широко использовать в таких традиционно консервативных в отношении новых технологий индустриях, как банковское дело и страхование, а также в государственных организациях (во всяком случае, в Великобритании).
  • Фреймворк Shiny стал де-факто стандартом в мире R для создания интерактивных аналитических веб-приложений.

В представленных на конференции докладах было упомянуто большое количество интересных и полезных пакетов для R, на которые стоит обратить внимание, в частности: prophet, shiny.semantic, plumber, mlogit, ChoiceModelR, markovchain, keras, here, purrr, ChannelAttribution, dataCompareR.

Автор: Сергей Мастицкий