08 июля 2017

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



  • В июне вышла новая версия R (v3.4.1) под кодовым названием "Single Candle".
  • dbplyr: этот новый пакет содержит весь код, который ранее отвечал за работу с удаленными базами данных в пакете dplyr. См. пояснения в статье Хэдли Уикхема.
  • desctable: формирование таблиц с описательными статистиками, как стандартными, так и пользовательскими. Пакет обладает простым синтаксисом в духе dplyr. См. примеры здесь.
  • dplyr: опубликована новая версия (v0.7) этого популярного пакета. С перечнем основных нововведений можно ознакомиться в блоге компании RStudio.
  • replyr: удобный dplyr-подобный пакет для работы с "большими данными" (например, с данными, обрабатываемыми на Spark-кластере). См. примеры здесь.
  • RJSplot: очередной пакет для создания интерактивных графиков и диаграмм средствами R и JavaScript. См. многочисленные примеры здесь.
  • simglm: позволяет создавать искусственные наборы данных на основе обобщенных линейных моделей с заданной пользователем структурой (включая модели со смешанными эффектами).
  • simstudy: еще один пакет для создания искусственных наборов данных с заданными пользователем свойствами. См. примеры здесь.
  • sparklyr: на платформе DataCamp появился новый обучающий курс по работе с этим пакетом.
  • tidygraph: визуализация графов и дендрограмм с использованием dplyr-подобного синтаксиса. См. примеры здесь.


05 июля 2017

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



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

Введение

Целью многих исследований является анализ конфигурации пространственных объектов и отображение ее структуры на картосхемах. В среде R для решения этой задачи часто используют методы и функции пакетов sp, maps, RgoogleMaps и связанных с ними ресурсов. При этом для создания основного слоя карты часто применяются свободно распространяемые shape-файлы, содержащие точечные и контурные графические примитивы, соответствующие отдельным географическим пунктам или регионам (см. пример здесь и здесь). Однако, по сравнению с картами, полученными на основе специализированных геоинформационных систем, таких как ArcGIS ESRI, подобная визуализация может показаться не столь симпатичной.

Ниже рассматриваются некоторые "продвинутые" методы для быстрой визуализации пространственных данных в среде R, основанные на двух идеях: (1) формирование "на лету" статических карт необходимого качества и масштаба с использованием актуальной информации серверов GoogleMap, OpenStreetMap, Stamen Maps или CloudMade и (2) широкое использование грамматики создания графических слоев для отображения необходимой информации на основе функций пакета ggplot2 (Wickham 2009, 2016; Мастицкий 2016). В результате развития этих концепций был разработан удобный пакет R, названный ggmap (Kahle & Wickham 2013). Продемонстрируем некоторые его возможности с использованием собственных данных.



04 июня 2017

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





  • CausalImpact: великолепный инструмент от аналитиков из Google, который позволяет оценить эффект экспериментального воздействия на изменяющуюся во времени переменную при отсутствии контрольной группы.
  • defer: пакет, с помощью которого можно удобно "обернуть" несколько функций в одну высокоуровневую функцию. Вот небольшой пример:

    C <- 10
    
    f <- function(x) x*x + C
    g <- function(y) (f(y) + 10) * f(y+3)
    h <- function(z) mean(c(g(z), g(z+1), g(z+2)))
    
    wrapper <- defer(h)
    #> Found functions:
    #>   g, f
    #> variables:
    #>   C
    #> library calls:
    #>   base::mean
    
    rm(C, f, g, h)
    
    wrapper(10)
    #> [1] 29688.67
    

  • d3Tree: R-интерфейс к JavaScript-библиотеке D3 для создания "схлопывающихся" дендрограмм. См. примеры здесь.
  • MultiVarSel: реализация метода Perrot-Dockes et al. (2017) для селекции информативных предикторов для общих линейных моделей. См. примеры здесь.
  • networktools: набор функций для анализа графов (сетей). В частности, в этом пакете реализована новая метрика для оценки "влияния" (impact) отдельных узлов и ребер графа на устойчивость его структуры.
  • philentropy: позволяет вычислить 46 различных метрик сходства/расстояния между многомерными объектами. Вот список реализованных в этом пакете метрик:

    library(philentorpy)
    
    getDistMethods()
    
    ##  [1] "euclidean"         "manhattan"         "minkowski"         "chebyshev"        
    ##  [5] "sorensen"          "gower"             "soergel"           "kulczynski_d"     
    ##  [9] "canberra"          "lorentzian"        "intersection"      "non-intersection" 
    ## [13] "wavehedges"        "czekanowski"       "motyka"            "kulczynski_s"     
    ## [17] "tanimoto"          "ruzicka"           "inner_product"     "harmonic_mean"    
    ## [21] "cosine"            "hassebrook"        "jaccard"           "dice"             
    ## [25] "fidelity"          "bhattacharyya"     "hellinger"         "matusita"         
    ## [29] "squared_chord"     "squared_euclidean" "pearson"           "neyman"           
    ## [33] "squared_chi"       "prob_symm"         "divergence"        "clark"            
    ## [37] "additive_symm"     "kullback-leibler"  "jeffreys"          "k_divergence"     
    ## [41] "topsoe"            "jensen-shannon"    "jensen_difference" "taneja"           
    ## [45] "kumar-johnson"     "avg"

  • R, а также Python и F# теперь интегрированы в IDE Visual Studio, что, согласно задумке Microsoft, добавит удобства в процесс разработки "умных приложений" на основе этих языков благодаря использованию одной IDE.
  • shinymaterial: позволяет оформлять Shiny-приложения в духе "материального дизайна" (material design), предложенного Google. Подробнее см. здесь.
  • simmer: набор функций для моделирования дискретных событий.
  • Syberia: новый фреймворк для разработки предсказательных моделей средствами R и последующего внедрения этих моделей в бизнес-процессы. См. также видео доклада по Syberia, сделанного недавно на конференции R/Finance.

10 мая 2017

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



  • 21 апреля 2017 г. вышла новая версия R (v3.4.0), в которую вошло несколько изменений, связанных с увеличением скорости вычислений. Подробнее можно узнать здесь.
  • choroplethr: предназначен для создания картограмм. Кроме того, с помощью этого пакета можно выполнять соединение с несколькими удаленными источниками картографических данных.
  • cronR: позволяет задавать расписание выполнения R-скриптов на Unix/Linux машинах. Есть и аналогичный пакет для Windows-машин - taskscheduleR (см. примеры здесь).
  • errors: в физике и других научных дисциплинах любое измерение всегда сопровождается определенной погрешностью. В R одновременно работать с результатами подобных измерений и их погрешностями не трудно, но утомительно. Новый пакет errors предлагает удобное решение для работы с такими данными.
  • HIBPwned: R-интерфейс к API сервиса "Have I Been Pwned?". С помощью этого сервиса можно выяснить, находится ли тот или иной адрес электронной почты в списках адресов, учетные данные которых стали по тем или иным причинам публично доступными.
  • kerasR: R-интерфейс к популярной Python-библиотеке для "глубинного обученияKeras. См. примеры здесь.
  • Компания Microsoft объявила о выпуске новой версии Microsoft R Server (v9.1).
  • modeleval: набор утилит для анализа качества предсказательных моделей, построенных с помощью пакета caret.
  • readxl: как следует из названия, этот пакет предназначен для организации удобной работы с файлами Excel из среды R.
  • RInside: с помощью этого пакета можно встраивать функционал R в приложения, написанные на C++.
  • Sinew: позволяет автоматически создать "скелет" справочного файла для той или иной функции в формате roxygen2, что значительно сэкономит время при разработке новых пакетов для R.
  • shinyWidgets: набор дополнительных виджетов для разработки Shiny-приложений.
  • shinyjqui: с помощью этого пакета можно добавлять jQuery UI-элементы в Shiny-приложения. Примеры приведены здесь и здесь.
  • Исправлены небольшие ошибки в популярном пакете quantmod, предназначенном для разработки трейдинговых моделей.


30 апреля 2017

Делимся опытом: визуализация данных из лог-файлов



Сегодня в рамках рубрики "Делимся опытом" мы представляем вашему вниманию небольшую заметку Дмитрия Берга, в которой он рассказывает о визуализации данных из лог-файлов средствами сервиса plot.ly.




07 апреля 2017

Новая книга по R: "Классификация, регрессия и другие алгоритмы Data Mining с использованием R"



Друзья!

Владимир Кириллович и я рады представить вашему вниманию новый результат нашей совместной работы - книгу "Классификация, регрессия и другие алгоритмы Data Mining с использованием R".

В книге рассмотрена широкая совокупность методов построения статистических моделей классификации и регрессии для откликов, измеренных в альтернативной, категориальной и метрической шкалах. Подробно рассматриваются деревья решений, машины опорных векторов с различными разделяющими поверхностями, нелинейные формы дискриминантного анализа, искусственные нейронные сети и т.д. Показана технология применения таких методов бутстреп-агрегирования деревьев решений, как бэггинг, случайный лес и бустинг. Представлены различные методы построения ансамблей моделей для коллективного прогнозирования. Особое внимание уделяется сравнительной оценке эффективности и поиску оптимальных областей значений гиперпараметров моделей с использованием пакета caret. Рассматриваются такие алгоритмы Data Mining, как генерация ассоциативных правил и анализ последовательностей. Отдельная глава посвящена методам многомерной ординации данных и различным алгоритмам кластерного анализа.

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

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

Книга распространяется совершенно бесплатно. Ее PDF-версию и соответствующие приложения можно скачать по следующим двум официальным адресам:
Кроме того, книга опубликована в виде отдельного сайта по адресу:


В ближайшее время мы планируем выложить также EPUB- и MOBI-версии, предназначенные для чтения на соответствующих электронных устройствах.

Мы будем благодарны за любые ваши замечания и пожелания касательно этой работы - отправляйте их, пожалуйста, по электронной почте stok1946["собака"]gmail.com и/или rtutorialsbook["собака"]gmail.com

Сергей Мастицкий, Владимир Шитиков



P.S.: Как отмечено выше, книга распространяется бесплатно. Однако если она окажется вам полезной и вы сочтете уместным отблагодарить авторов за их работу, вы можете перечислить любую сумму, воспользовавшись следующей кнопкой (все транзакции выполняются в безопасном режиме через систему электронных платежей PayPal; наличие у вас аккаунта в этой системе необязательно):



12 февраля 2017

Построение деревьев регрессии



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

В одном из предыдущих сообщений были определены основные понятия, преимущества и недостатки деревьев классификации и регрессии, которые являются одним из наиболее популярных методов решения многих практических задач (Breiman at al., 1984; Quinlan, 1986). По своей сути деревья используют "наивный подход" (naive approach) в том смысле, что исходят из предположения о взаимной независимости признаков. Поэтому модели регрессионных деревьев статистически наиболее работоспособны, когда мультиколлинеарность в комплексе анализируемых переменных выражена незначительно.




04 февраля 2017

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



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

Перед тем как привести обзор новых (и обновленных) R-пакетов за январь, стоит сказать о важном событии: в этом месяце общее количество пакетов в хранилище CRAN перевалило за 10000 (эта цифра не включает в себя примерно 1300 пакетов, опубликованных в хранилище BioConductor, а также сотни пакетов, доступных только в репозиториях GitHub). Наличие такого разнообразия пакетов в распоряжении пользователей R - дело, несомненно, хорошее. Однако со временем пользователям становится все сложнее ориентироваться в этом разнообразии и находить нужные пакеты. В этой связи, возможно, стоит напомнить о некоторых инструментах, которые могут оказаться полезными при выполнении соответствующего поиска:


  • Обзор пакетов для решения ряда распространенных задач, приведенный на сайте CRAN - CRAN Task Views;
  • Список популярных пакетов на сайте RDocumentation.org;
  • Список популярных пакетов, опубликованных на плафторме GitHub;
  • CRANberries - обновляющийся в реальном времени список пакетов, добавляемых в хранилище CRAN;
  • Инструмент для поиска по хранилищу CRAN, доступный на сайте MRAN (Microsoft R Application Network);
  • Shiny-приложение для поиска пакетов по категориям CRAN Task Views, созданное Михаилом Поповым;
  • Функция findFn() из пакета sos.

А теперь, собственно, сам список новых/обновленных пакетов, показавшихся мне особенно интересными:
  • fst - пакет для выполнения (сверх-)быстрой сериализации и десериализации таблиц данных R.
  • intrval - набор утилит, облегчающих разбиение количественных переменных на интервалы.
  • newsflash - R-интерфейс к GDELT Television Explorer API, с помощью которого можно выяснить, сколько раз то и или иное ключевое слово встречалось в новостях телевизионных каналов США за определенное время.
  • roxygen2 - вышла новая версия этого популярного пакета, предназначенного для написания документации в ходе разработки R-пакетов. Теперь такую документацию можно писать и в формате Markdown.
  • RPushbullet - новая версия пакета, представляющего собой R-интерфейс к Pushbullet API - сервису для обмена сообщениями между устройствами.
  • RQGIS - новая версия пакета, представляющего собой R-интерфейс к QGIS API. QGIS - это геоинформационная система с открытым кодом, в которой реализовано более 1000 различных алгоритмов обработки геоданных.
  • sparklyr - новая версия пакета, предназначенного для работы со Spark-кластерами из среды R.
  • superheat - новый пакет для построения диаграмм типа "тепловая карта" (heatmap). Имеется возмжность создавать составные рисунки (например, путем добавления к тепловой карте диаграмм рассеяния, диаграмм размахов и т.п.) и выполнять тонкую настройку их элементов.
  • tensorflow - R-интерфейс к TensorFlow - известной библиотеке от Google для создания предсказательных моделей.
  • xml2 - новая версия пакета от RStudio для работы с данными в формате XML.

22 января 2017

Особенности работы с функцией train() из пакета caret



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

Как обсуждалось нами ранее, пакет caret (сокращение от Classification and Regression Training) был разработан как эффективная надстройка, позволяющая унифицировать и интегрировать использование множества различных функций и методов построения предсказательных моделей, реализованных в других пакетах R. При этом происходит всестороннее тестирование и оптимизация настраиваемых параметров и гиперпараметров (tuning parameters) моделей. Разработанная единая технология настройки моделей основана на использовании полуавтоматических интеллектуальных подходов и ряда широко применяемых критериев качества, рассчитываемых с применением алгоритмов создания повторных выборок (resampling).



08 января 2017

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



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

  • aws.ses - R-клиент для работы с сервисом AWS Simple Email Service.
  • censys - R-клиент для поискового сервиса Censys.
  • clustRcompaR - пакет для выполнения кластеризации документов (например, для обнаружения групп документов, схожих по своей тематике). Позволяет автоматически выделять оптимальное число кластеров и оценивать качество получаемых решений путем сравнения с документами, чья групповая принадлежность известна.
  • ggmosaic - пакет для создания мозаичных диаграмм в стиле ggplot2.
  • gofastr - пакет для быстрого формирования терм-документных матриц.
  • lexicon - набор лексических таблиц, тематических списков слов и словарей (например, наиболее часто встречающиеся имена и фамилии в США, коллекция эмотиконов, список распространенных сокращений и др.). Может оказаться полезным при выполнении анализа текстовых данных.
  • nanotime - пакет для работы с метками времени с разрешением на уровне наносекунд.
  • rtrie - набор функций для визуализации префиксных деревьев (англ. trie). Подобные структуры данных широко используются для решения задач, связанных с выполнением быстрого поиска, автокоррекцией слов, рекомендацией следующего слова в предложении и др.
  • skeletor - создание "скелета" будущего пакета для R. В отличие от стандартных утилит (базовая R-функция package.skeleton() или create() из пакета devtools), skeletor создает "болванки" с более богатым (и полезным) содержимым.
  • textTinyR - набор функций для выполнения анализа текстовых данных большого объема (создание словарей, терм-документных матриц, подсчет частоты встречаемости слов и т.п. типичные задачи). Обработка выполняется по частям, что позволяет анализировать данные, объем которых превышает имеющийся объем памяти. Примеры можно найти в блоге автора.

04 января 2017

Заполнение пропущенных значений в данных



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

К сожалению, на практике в ходе сбора данных далеко не всегда удается получить полностью укомплектованные их наборы. Пропуски отдельных значений являются повсеместным явлением и поэтому, прежде чем начать применять статистические методы, обрабатываемые данные следует привести к "каноническому" виду. Для этого необходимо, либо удалить фрагменты объектов с недостающими элементами, либо заменить имеющиеся пропуски на некоторые разумные значения.