воскресенье, 19 июля 2009 г.

Очарование языка R для анализа данных

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




Для некоторых (и таких большинство) R - это просто 18 буква в латинском алфавите. Для других это значок задней передачи, мера водонепроницаемости чердака (да, бывает и такое) или просто нечленораздельный крик.
Но кроме всего перечисленного и еще сотни возможных значений, R - это еще популярный язык программирования, который использует всё возрастающее сообщество исследователей в коммерческих корпорациях и научных учреждениях. Для них она стал настоящим лингва-франка, ведь сейчас статистический анализ данный переживает свой золотой век - его используют и для определения наилучшей цены за рекламу, и для разработки лекарств и для сложных финансовых моделей. При этом язык R используют такие компнии, как Google, Pfizer, Merck, Bank of America, the InterContinental Hotels Group и Shell.
Но, пожалуй, одним из главных факторов обеспечивших такую популярность для R стала возможность его использования людьми слабо знакомыми с компьютерами и не имеющими навыков программирования.
"R настолько важен, что его очень сложно переоценить" - говорит Дарел Прегибон, исследователь из Google, который постоянно использует R в своей работе. "Он позволяет статистикам строить очень неординарные и сложные модели без знания всей подноготной компьютера."
Кроме того, он свободен. R - это программа с открытым исходным кодом, и её популярность еще раз демонстрирует изменение приоритетов внутри корпораций, связанных с использованием программного обеспечения. Открытый исходный код бесплатен, как для использования, так и для изменения (тратиться надо только на те изменения, которые делает вы). I.B.M., Hewlett-Packard и Dell получают многомиллионные прибыли, продавая сервера с операционными системами на базе ядра Linux, которые успешно конкурируют с Windows от Microsoft. Большинство сайтов обслуживаются веб-сервером с открытым исходным кодом Apache, и компании всё больше полагаются на СУБД MySQL при хранении своих данных (а некоторые полагаются на PostgreSQL). Множество людей смотрит на результаты всей этой работы при помощи браузера Firefox, также с доступным исходным кодом.
В принципе R похож на другие языки програмирования, такие как C, Java и Perl, в том смысле, что даёт возможноть выполнять самые разнообразные действия через различные команды. Для статистиков же, R наиболее удобен, так как содержит встроенные средства организации данных, проведения объемных вычислений и создания графических представлений исходных данных и результатов их обработки.
Некоторые не по наслышке знакомые с этим языком называют его многократно улучшенной версией табличного процессора Excel (немного улучшенными по всей видимости являются другие свободные табличные процессоры - Gnumeric и OpenOffice.org Calc - последнюю русифицированную версию последнего можно бесплатно скачать здесь). При этом использование полноценного языка программирования позволяет выделять тренды и всячески обрабатывать данные гораздо проще и быстрее, чем перемещаясь по строкам и колонкам огромной таблицы.
Что делает R настолько хорошим - и что объясняет такое быстрое его распространение (хотя появился он ещё в 1993 году) - это то, что статистики, инженеры и учёные могут улучшать его функциональность, дописывая необходимые им модели. Множество дополнений уже написанных для R добавляют множество очень сложных прикладных алгоритмов, средств визуализации и обработки данных с доступом к большинству существующих СУБД.
Почти 1600 пакетов расширения можно найти на одном из многих сайтов, посвященных R (на самом деле сайт в принципе один - CRAN), число дополнительных пакетов продолжает расти экспоненциально. Один из таких пакетов - BiodiversityR - предоставляет графический интерфейс нацеленный специально на расчёты, связанные со средами обитания организмов.
Другой пакет - Emu - предназначен для анализа шаблонов в человеческой речи, а GenABEL используется для изучения генома человека.
Особенную заинтересованность в R демонстрирует сообщество финансовых аналитиков - существует больше дюжины пакетов предназначенных только для анализа дериватов.
"R просто прекрасен, потому что вы можете модифицировать его для выполнения любых задач" - говорит Хал Вариан (Hal Varian), ведущий экономист в Google. "А также у вас есть доступ к огромному количеству модульных расширений, поэтому мы действительно стоим на плечах гигантов".
R впервые появился в 1996 (в википедии дана ссылка на источник, который думает по-другому) году, когда профессора статистики Росс Ихака и Роберт Джентельмен (Ross Ihaka и Robert Gentleman) из университета в Новой Зеландии открыли первую порцию кода.
Они говорят, что идея разработки чего-то наподобие R появилась во время коридорной разговора. Им обоим требовалась технология, подходящая для их студентов, которым требовалось анализировать данные и создавать визуальные представления информации. Самое близкое по целям программное обеспечение разрабатывалось учеными в области компьютерных наук и его было сложно использовать.
Не имея глубоких знаний в области компьютеров, профессора воспринимали свои попытки написания кода скорее, как академическую игру, чем что-то серьёзное. Несмотря на это, начиная примерно с 1991 года, они работали над R полный рабочий день.
"Мы были неразлучны в течение пяти или шести лет" - говорит Джентельмен - "один может набирать в то время, как другой может думать."
Некоторые статистики, кто обращался в R в самом начале его разработки, говорили, что там упрощаются некоторые специализированные вещи. Но не смотря на его недостатки, R сразу же получил многих сторонников, которые видели предоставляемые изменяемость свободного ПО возможности.
Джон М. Чамберс (John M. Chambers), бывший исследователь из лабораторий Bell, а сейчас профессор-консультант статистики в Стэнфордском университете, был одним из лидеров формирующегося сообщества. В лабораториях Bell Чамберс участвовал в разработке S, другого проекта по созданию статистического ПО, которые было предназначено для анализа данных исследователями в самых различных областях. Этот проект, однако, не был проектом с открытым исходным кодом.
Эта программа не смогла привлечь к себе большого внимания и закончила свои дни в руках компании Tibco Software. И сейчас R превзошёл все мечты Чамберса относительно возможностей S.
"Разнообразие и воодушевлённость тем, что делают все эти люди, просто впечатляет," - говорит Чамберс.
При том, что очень сложно посчитать, сколько людей используют R, те кто тесно связан с этой программой говорят о 250000 человек, который регулярно работают в R. Популярность R в университетах угрожает SAS Institute - частной софтверной компании, которая специализируется на программном обеспечении в области анализа данных. SAS, с годовым доходом в 2 миллиарда $ всё еще является производителем предпочтительного для учёных и менеджеров инструмента.
"R стал вторым родным языков для людей выпускающихся из высшей школы в данный момент, и количество кода, написанного на нём, поражает" - говорил Макс Кахн (Max Kuhn), первый помощник начальника неклинических статистиков в фармацевтической компании Pfizer. "Вы можете посмотреть на порталы для общения от SAS, и Вы увидите стабильное уменьшение трафика."
В SAS говорят, что они отметили растущую популярность R в академической среде, несмотря на академические скидки на их собственное программное обеспечение, но ситуация ставит их технологию в положение, когда она интересна только людям работающим над очень сложными задачами.
"Я думаю она нацелена на нишу очень аналитиков самого высокого класа, которым нужен постоянно доступный стабильный код," - говорит Анна Миллей (Anne H. Milley), директор маркетингового департамента в SAS. Она добавляет: "У нас есть клиенты, которые производят двигатели для самолётов. И, когда я сажусь в самолёт, я счастлива, что они не используют что-то фриварное."
Но в том время, как SAS занижается востребованность R в корпорациях, такие компании как Google и Pfizer говорят, что используют его для всего, чего только могут. Google, например, использует R, чтобы понять тренды в ценах на рекламу и для выделения патернов (шаблонов, повторяющихся элементов, архитектур - слово уже прочно вошло в околокомпьютерный жаргон, ИМХО) в данных, которые собирает их поисковый робот. Работники Pfizer создали собственные пакеты для R, чтобы позволить своим учёным манипулировать данными во время неклинических испытаний лекарств вместо того, чтобы постоянно пересылать их статистикам.
Соавторы R выражают удовлетворение тем, что такие компании получают прибыль, используя результаты трудов их и сотен добровольцев.
Мистер Ихака продолжает учить статистиков в университете Ауклэнда и хочет создавать еще более продвинутое программное обеспечение. Джентельмен разрабатывает основанное на R ПО, называющееся Bioconductor, в работе, связанной с вычислительной биологией в центре исследования рака Фреда Хатчинсона (Fred Hutchinson Cancer Research Center) в Сиэтле.
"R - это настоящая демонстрация силы взаимодействия, я не думаю, что возможно создать что-то подобное каким-то другим путём" - говорит Ихака - "Мы могли стать коммерческим продуктом и продать пять его копий."

1 комментарий: