26 июн. 2014 г.

Обзор книг по R


Давно уже хотел свести и систематизировать книги по R (языку программирования для статистических вычислений), которые прочел/просмотрел за последние 2 года. Возможно, это кому-то покажется полезным. По R выходит действительно огромное количество книг, наверно, больше чему по любым другим подобным продуктам (STATA, eViews, SPSS и другие) вместе взятым. Многие специальные книги по отдельным вопросам статистики приводят примеры, написанные именно на R. Единственная проблема заключается в том, что все книги - на английском языке. Российскими авторами написана пока только одна, насколько я знаю, оригинальная книга по R - я ее не читал и ничего не могу сказать. Но в целом, учите английский язык - это крайне полезно.  

Общие книги по R


1. R Cookbook. Paul Teeetor (2011).  Хорошая и удобная в использовании книга в стиле cookbook - сборника рецептов на разные случаи жизни. Особенно будет полезна первых порах, когда возникает множество вопросов в стиле "Как же сделать ХXX?". Одновременно дает представление о многих базовых вещах - основных командах, структурах данных и проч. Каждый рецепт дается в форме "Problem" - "Solution" - "Discussion". Часть Solution содержит непосредственно код, который решает данную проблему. Часть Disccussion, как следует из названия, содержит дополнительную информацию и обсуждение используемого подхода. Книга написана очень простым и понятным языком. Рекомендуется всем начинающим знакомиться с R, а также как дополнительное подспорье для опытных пользователей, чтобы быстро вспомнить подзабытые или редко используемые вещи. R Cookbook ориентирована на практические аспекты работы в R и не претендует на глубокое осмысление статистических вопросов, хотя в книге есть главы по расчеты основных статистик и линейной регрессии. Наверно, единственный существенный недостаток это то, что издатель/автор не выложили напрямую, используемый в книге код - это является уже общепринятым делом.

2. R Book Michael J Crawley (2012, 2 ed).
Огромное фундаментальное руководство по R объемом свыше 1000 страниц (если точное 1076 страниц в печатной версии!), написанное биологом - профессором экологии и теории эволюции в Imperial College London -  Майклом Кроули. Это уже второе издание монументального труда, первое издание вышло еще в 2007 году.  Сложно описать "вкратце" такую книгу, поэтому отмечу только некоторые моменты.
Первые главы посвящены "азам" работы в R - установка, типы данных, создание собственных функций и так далее.
Однако в отличие от первой книги, R Book рассматривает и практические аспекты использования R и статистические вопросы использования различных подходов, методов и так далее. Охват по статистическим вопросам очень широкий, начиная от простых тестов и линейной регрессии, до байесовких методов и нейронных сетей. Есть отдельные главы по анализу временных рядов (на уровне введения в тему) и анализу гео-данных. В целом, книга хороша, чтобы понимать, как можно использовать те или иные статистические методы в R. Так как автор - эколог, то практически все используемые в книги примеры имеют отношение к биологии/экологии. Не ждите примеров из экономики, к примеру :) С другой стороны, хорошо видно, что автор - практик, поэтому он довольно много времени уделяет обсуждений допущений различных методов, ограничений полученных результатов, альтернативным интрепретациям полученных результатов - это очень интересно.
Книгу удобно использовать как руководство, так как в ней содержится хороший индекс.
Автор предоставляет доступ к исходному коду и примерами с данными, которые используется в книге. Правда код не слишком удобно организован. В архиве выложено почти 300 текстовых файлов, не сгруппированных по главам книги (!). Для книги, которая стоит более $60, наверно, можно было бы сделать лучшую организацию, используемого в примерах кода.



3. R in a Nutshell. Joseph Adler (2012, 2 ed). Еще один фундаментальный труд (объемом в 700 страниц), претендующий на звание "руководства по R". Написан специалистом-практиком по data mining, сейчас работающем в LinkedIn. Мне R in a Nutshell понравилась очень подробным и емким обсуждением различных "технических" аспектов работы в R - к примеру, подключение в качестве источников входных данных баз данных с помощью пакетов RODBC или DBI. Вторая часть книг посвящена использованию различных методов в R, в основном с ориентацией на data mining и machine learning. В принципе, все основные методы из этого арсенала вкратце описаны. Удобно то, что для сложных функций, реализующих методы (типа lm или lda) приводится базовая табличка, описывающая все аргументы и их значения "по умолчанию". Очень подробно описаны различные аспекты трансформирования данных и приведения их в нужный вид.
Я правда не очень разобрался, где можно взять исходный код. На CRAN есть отдельный пакет для книги, содержащий наборы данных, есть также исходные коды для первого издания книги, а для второго - я не нашел.


4. R in Action. Robert Kabacoff (2011).
Еще одна из книг-учебников, которые начинаются со знакомства с R и постепенно двигают вас дальше. R in Action несколько проще R Book или R in Nutshell, поэтому возможно больше подойдет именно для первого знакомства. Когда хочется познакомиться, но пока не слишком понятно, зачем это необходимо. Книга хорошо очень продуманной структурой. Все главы делятся на 4 группы:

  1. Getting Started
  2. Basic Methods 
  3. Intermediate Methods 
  4. Advanced Methods. 
В каждой главе, особенно в третьем-четвертом разделах, приводится один достаточно большой пример, который подробно разбирается в течение всей главы. Автор также подробно останавливается на том, как интерпретировать таблицы с полученными результатами и что они вообще означают. Оказывается, книга R in Action вышла на русском языке, что можно только приветствовать. 

Резюме. Мне кажется, имеет смысл начинать знакомиться с R c помощью R Cookbook и R in Action. Если вам уже стала все более или менее понятным, то можно продвигаться дальше. Если вы занимаетесь статистикой/эконометрикой, то лучше подойдет R Book, если machine learning - то R in a Nuthshell. 


Книги по графическим возможностям R 

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

R Graph Cookbook. Mittal Hrishi (2011). Еще одна книга в стиле "кукбук" - на этот раз только графическим возможностям - но от издательства Packt, а не O'Rilley. В целом, неплохая книга в качестве "введения" в тему и дает общее представление о том, как устроены графические возможности R и что можно с ними делать. Мне, к примеру, больше всего были полезны примеры из 4 главы "Creating Line Graphs and Line Series Charts". Охват тем достаточно широкий - от базовых графиков до рисования карт и 3d-изображений. Примеры построены в основном на базовой графике, хотя есть немного ggplot2 и других пакетов. Есть важные вещи, связанные с подготовкой и экспортом графики. К сожалению, книга уже достаточно старая, поэтому в ней нет разделов, посвященных интерактивной графике - тем же пакетам rCharts или ультра-новому ggvis. Также книга достаточно базовая, поэтому "продвинутые" вещи или тонкости не обсуждаются - для этого все равно придется использовать StackOverflow и прочие источники "мудрости".

R Graphics Cookbook. Winston Chang (2012).   
Еще одна "книга рецептов" от издательства O'Rilley, написанная одним из разработчиков RStudio, наиболее популярной среды разработки для R. Хотя книга формально посвящена "R графике", на самом деле это только ggplot2. Поэтому никаких примеров на базовой графике или других графических пакетах нет. Эту книгу можно рассматривать как очень хорошее справочное пособие по ggplot2, написанное понятное и доступным языком. К книге прилагается специальный пакет  с используемыми датасетами. Весь приведенный в книге код выложен отдельно на сайте издательства и отсортирован по главам книги. Поэтому проблем с воспроизведением кода при изучении материала возникнуть не должно.
ggplot2. Elegant Graphics for Data Analysis. Hadley Wickam (2009). Довольная старая, по меркам "технической" литературы, книга от легендарного в мире R человека - Hadley Wickham, профессора статистики из Rice University и создателя кучи пакетов, без которых не обходится ни один пользователь R. Книга посвящена популярному графическому пакету ggplot2. Книга интересна сейчас первыми главами, в которых автор рассуждает про "грамматику графику"  ("grammar of graphics") и рассказывает про идеи, стоящие за ggplot2. Приведенный в книге код сейчас может быть неработоспособным в текущей версии ggplot2. Поэтому использовать эту книгу как учебник по ggplot2 вряд ли получится. С другой стороны, Хэдли поддерживает документацию в настолько идеальном состоянии, что все вопросы по текущим возможностям, аргументам функций и примерам использования можно решать без помощи специальной литературы. 


Резюме по "графическим" книгам. Если вас интересуют возможности базовой графики - читайте R Graph Cookbook, если интересует ggplot2 - читайте R Graphics Cookbook. Две книги покрывают достаточно широкий спектр того, чтобы доступно в R для графики, по крайней мере, на первом этапе.

Как я уже говорил, выходит достаточно большое книг, посвященное отдельным "специальным" темам в R. В следующий раз я напишу про книги, которые посвящены R в эконометрике/финансах, machine learning и GIS. 

Комментариев нет: