Что такое язык программирования r. Основы программирования на R. Язык R в мире статистических программ


Давайте немного поговорим о языке программирования под названием R. В последнее время вы могли у нас в блогах прочитать статьи о и , тех сферах, где просто необходимо под рукой иметь мощный язык для работы со статистикой и графиками. И R как раз из таких. Новичку в мире программирования буде достаточно непросто в это поверить, но сегодня R уже популярнее SQL, он активно используется в коммерческих организациях, исследовательских и университетах.

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

Что такое язык R, зачем он вам нужен и как его можно использовать с умом, можно узнать из прекрасного Руслана Купцова, который он провёл чуть меньше года назад в рамках GeekWeek-2015.

Книги

Теперь, когда в голове есть определённый порядок, можно приступать к чтению литературы, благо её более чем достаточно. Начнём с отечественных авторов:


Интернет-ресурсы

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

Но опять проникшись заботой к тем, кто английский язык выучить ещё не успел, а вот изучить R ну очень хочет, упомянем несколько российских ресурсов:

А пока довершим картину небольшим списком англоязычных, но от этого не менее познавательных сайтов:

CRAN - собственно, место где можно загрузить к себе на компьютер среду разработки R. Кроме того мануалы, примеры и прочее полезное чтиво;

Quick-R - коротко и понятно про статистику, методы её обработки и язык R;

Burns-Stat - про R и про предшественника его S с огромным количеством примеров;

R for Data Science - ещё одна книга от Гаррета Гроулмунда (Garrett Grolemund), переведённая в формат онлайн учебника;

Awesome R - подборка лучшего кода с официального сайта, размещённая на нашем любимом GitHub;

Mran - язык R от Microsoft;

Tutorial R - ещё один ресурс с упорядоченной информацией с официального сайта.

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

Что такое R?

Прежде чем дать четкое определение, следует отметить, что R - это нечто большее, чем просто программа: это и среда, и язык, и даже движение! Мы рассмотрим R с разных ракурсов.

R - это среда вычислений , разработанная учеными для обработки данных, математического моделирования и работы с графикой. R можно использовать как простой калькулятор, можно , можно проводить простые статистические анализы (например, ANOVA или регрессионный анализ) и более сложные длительные вычисления, проверять гипотезы, строить векторные графики и карты. Это далеко не полный перечень того, что можно делать в этой среде. Стоит отметить, что она распространяется бесплатно и может быть установлена как на Windows, так и на операционные системы класса UNIX (Linux и MacOS X). Другими словами, R - это свободный и кроссплатформенный продукт.

R - это язык программирования , благодаря чему можно писать собственные программы (скрипты ) при помощи , а также использовать и создавать специализированные расширения (пакеты ). Пакет - это набор , файлов со справочной информацией и примерами, собранных вместе в одном архиве. играют важную роль, так как они используются как дополнительные расширения на базе R. Каждый пакет, как правило, посвящен конкретной теме, например: пакет "ggplot2" используется для построения красивых векторных графиков определенного дизайна, а пакет "qtl" идеально подходит для генетического картирования. Таких пакетов в библиотеке R насчитывается на данный момент более 7000! Все они проверены на предмет ошибок и находятся в открытом доступе.


R - это сообщество/движение.
Так как R - это бесплатный продукт с открытым кодом, то его разработкой, тестированием и отладкой занимается не отдельная компания с нанятым персоналом, а сами пользователи. За два десятилетия из ядра разработчиков и энтузиастов сформировалось огромное сообщество. По последним данным, более 2 млн человек так или иначе помогали развивать и продвигать R на добровольной основе, начиная от переводов документации, создания обучающих курсов и заканчивая разработкой новых приложений для науки и промышленности. В интернете существует огромное количество форумов, на которых можно найти ответы на большинство вопросов, связанных с R.

Как выглядит среда R?

Существует много "оболочек" для R, внешний вид и функциональность которых могут сильно отличаться. Но мы коротко рассмотрим лишь три наиболее популярных варианта: Rgui, Rstudio и R, запущенный в терминале Linux/UNIX в виде командной строки.


Язык R в мире статистических программ

На данный момент насчитываются десятки качественных статистических пакетов, среди которых явными лидерами являются SPSS, SAS и MatLab. Однако, в 2013 году, несмотря на высокую конкуренцию, R стал самым используемым программным продуктом для статистического анализа в научных публикациях (http://r4stats.com/articles/popularity/). Кроме того, в последнее десятилетие R становится все более востребованным и в бизнес-секторе: такие компании-гиганты, как Google, Facebook, Ford и New York Times активно используют его для сбора, анализа и визуализации данных (http://www.revolutionanalytics.com/companies-using-r). Для того чтобы понять причины растущей популярности языка R, обратим внимание на его общие черты и отличия от других статистических продуктов.

В целом большинство статистических инструментов можно разделить на три типа:

  1. программы с графическим интерфейсом , основанные на принципе "кликни здесь, тут и получи готовый результат";
  1. статистические языки программирования , в работе с которыми необходимы базовые навыки программирования;
  1. "смешанный" , в которых есть и графический интерфейс (GUI ), и возможность создания скриптовых программ (например: SAS, STATA, Rcmdr).

Особенности программ с GUI

Программы с графическим интерфейсом имеют привычный для обычного пользователя вид и легки в освоении. Но для решения нетривиальных задач они не подходят, так как имеют ограниченный набор стат. методов и в них невозможно писать собственные алгоритмы. Смешанный тип сочетает в себе удобство GUI оболочки и мощь языков программирования. Однако, при детальном сравнении статистических возможностей с языками программирования SAS и STATA проигрывают и R, и MatLab (сравнение статистических методов R, MatLab, STATA, SAS, SPSS). К тому же за лицензию для этих программ придется выложить приличную сумму денег, а единственным бесплатной альтернативой является Rcmdr: оболочка для R с GUI (Rcommander).

Сравнение R с языками программирования MatLab, Python и Julia

Среди языков программирования, используемых в статистических расчетах, лидирующие позиции занимают R и Matlab. Они схожи между собой, как по внешнему виду, так и по функциональности; но имеют разные лобби пользователей, что и определяет их специфику. Исторически MatLab был ориентирован на прикладные науки инженерных специальностей, поэтому его сильными сторонами являются мат. моделирование и расчеты, к тому же он гораздо быстрее R! Но так как R разрабатывался как узкопрофильный язык для статистической обработки данных, то многие экспериментальные стат. методы появлялись и закреплялись именно в нем. Этот факт и нулевая стоимость сделали R идеальной площадкой для разработки и использования новых пакетов, применяемых в фундаментальных науках.

Другими "конкурирующими" языками являются Python и Julia. По моему мнению, Python, являясь универсальный языком программирования, больше подходит для обработки данных и сбора информации с применением веб-технологий, чем для статистического анализа и визуализации (основные отличия R от Python хорошо описаны ). А вот статистический язык Julia - довольно молодой и претенциозный проект. Основной особенностью этого языка является скорость вычислений, в некоторых тестах превышающая R в 100 раз! Пока Julia находится на ранней стадии развития и имеет мало дополнительных пакетов и последователей, но в отдаленный перспективе Julia - это, пожалуй, единственный потенциальный конкурент R.

Заключение

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

Достоинства среды R:

  • бесплатная и кроссплатформенная;
  • богатый арсенал стат. методов;
  • качественная векторная графика;
  • более 7000 проверенных пакетов;
  • гибкая в использовании:
    - позволяет создавать/редактировать скрипты и пакеты,
    - взаимодействует с другими языками, такими: C, Java и Python,
    - может работать с форматами данных для SAS, SPSS и STATA;
  • активное сообщество пользователей и разработчиков;
  • регулярные обновления, хорошая документация и тех. поддержка.

Недостатки:

  • небольшой объем информации на русском языке (хотя за последние пять лет появилось несколько обучающих курсов и интересных книг);
  • относительная сложность в использовании для пользователя, незнакомого с языками программирования. Частично это можно сгладить работая в GUI оболочке Rcmdr, о которой я писал выше, но для нестандартных решений все же необходимо использовать командную строку.

Список полезных источников

  1. Официальный сайт: http://www.r-project.org/
  2. Сайт для начинающих: http://www.statmethods.net/
  3. Один из лучших справочников: The R Book, 2nd Edition by Michael J. Crawley, 2012
  4. Список доступной литературы на русском + хороший блог

]. «Пролетарий умственного труда». По образованию физик. Тружусь на ниве обработки медицинской и биологической информации 30+ лет.
В R работаю ровно 10 лет, мигрировав на него после 15 лет плотного сотрудничества с Matlab. Первопричиной миграции на другую рабочую платформу послужила моя собственная физическая миграция на противоположный край Земли в Окланд, Новая Зеландия. Здесь жизнь с первых дней толкнула меня в объятия R, о чем мне еще не приходилось жалеть.

Все чаще наблюдаю вспышки интереса к R в профессиональном ру.нете. Ну вот и на этом уважаемом ресурсе появляются статьи про него. Далее под катом моя первая попытка русскоязычного введения в R - первая (словесная) часть презентации, которую я делал для коллег факультета Animal Science, Iova State University три года назад.
(в сторону: а как, оказывется, трудно себя переводить...)


В этом посте

  • Что такое R
  • Откуда он взялся
  • За что я его люблю
  • Мифы и правда

Что такое R

В первую очередь R это система для статистических и прочих научных расчетов, использующая язык программирования S .

S - язык, написанный статистиками для статистиков. по определению автора Джона Чамберса. Язык с момента его появления был очень хорошо принят и протестирован поколениями весьма придирчивых пользователей-статистиков. Можно считать, что он достаточно широко известен и принят в мировом статистическом сообществе. На языке S реализованы и до сих пор эксплуатируются ряд критических эпидемиологических, экологических и финансовых моделей по всему миру и во многих отраслях. Как язык с точки зрения меня, как «пишущего пользователя», S представляет собой весьма приятную альтернативу языку SAS .

Из моего собственного опыта - Знакомство и первые уроки S я сам получил в начале 90-х от экспертов-статистиков ВОЗ, с которыми пересекался по научным исследованиям того времени.

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

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

Откуда взялся S и какое это имеет отношение к R

Несомненно, википедия даст вам много больше букв.
Я лишь отмечу то, что считаю важным для понимания места S и R в этой жизни в этом мире.

Лаборатории Белла (ака Bell Labs, AT&T Bell Labaratories) достаточно известны в истории науки и техники, и АйТи в частности. Статистические исследования там всегда были поставлены весьма серьезно и также серьезно поддерживались всеми доступными компьютерными средствами (читай - тоннами фортрановского и лисповского кода).

То, что потом стало языком S, возникло в 70-х по инициативе и под руководством Джона Чамберса (John Chambers), как набор скриптов, облегчающих «скармливание» данных фортрановскому коду. Т.е. во главу угла ставилась задача интерактивной манипуляции данными, компактность, приятность в написании и читаемость кода и получения приличного вывода на разнообразные устройства таблиц и графиков.

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

С 1984 года язык обрел имя, свою собственную «Библию» (издана книга Чамберса and Beckers: S: An Interactive Environment for Data Analysis and Graphics ), стал по умолчанию содержать практически полный «джентельменский набор» статистика и «вероятностника» - распредления, генераторы случайных чисел, статистические тесты, многие стандартные статистические анализы, работы с матрицами и пр., не говоря уже о развитой системе научной графики. Самое главное - он стал доступен для пользователей по вему миру за весьма умеренную цену.

В 1988 (издана еще одна книга The New S Langugage ) - модифицирован с применением ООП, все стало объектами с весьма разумными значениями по умолчанию, доступностью для модификации, элементами самодукоментирования и пр. и пр.

В это же время были лабораториями опубликованы исходники и «белл-лабовский» S стал бесплатным для студентов и для использования в научных целях. Это все как-то было связано с «раскулачиванием» AT&T, но меня уже эти подробности не сильно интересовали.

Существовали и, наверное, все еще существуют коммерческие реализация языка S . Я сталкивался с S-Plus и S2000 . Они в разное время поддерживались разными компаниями, в основном, жили (живут?) за счет поддержки ранее созданных на S приложений. В этих пост-белловских версиях S появилась новая версия ООП-движка, но для чистого пользователя это прошло почти бескровно в плане совместимости исторического кода.

R - единственная некоммерческая полностью независимая (от исходной Белловской) реализация языка S .

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

А теперь R

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

В случае с R таких людей трое.
Про Джона Чамберса я уже сказал.

Росс Ихака (Ross Ihaka) - студент, а потом научный сотрудник факультета статистики Оклендского университета темой своей диссертации (которая выполнялась в MIT, USA) выбрал исследование возможности построения виртуальной машины (VM) для статистических языков программирования. В качестве промежуточного языка был выбран Lisp (Common Lisp, CL ) и на нем реализован прототип VM, «понимающий» небольшие подмножества из SAS и S .
Дорабатывать диссертацию Росс вернулся в Окланд, где вскорости встретил Роберта Джентельменв и увлекся проектом R.
Диссертацию Росс так и не защитил, но уже имеет ученую степень от нескольких университетов «по совокупности заслуг». В прошлом году ему было присвоено звание и он получил должность Associate Professor (доцент) в своем родном университете.

Роберт Джентелмен (Robert Gentleman) - еще один статистик со страстью к программированию, родом из Канады, будучи в Оклендском университете на стажировке (он тогда работал в Австралии), предложил Россу «написать какой-нибудь язычок».
Согласно легенде, которую я сам слышал от этих «отцов-основателей» всего чуть ли не за месяц они в порыве безумного энтузиазма переписали на CL практически все команды S , включая мощную библиотеку линейного моделирования.

Вычислительным движком R , следуя традициям прототипа, была выбрана известная, общепризнанная и бесплатная библиотека BLAS , (с возможностью использования ATLAS и пр. с тем же интерфейсом).
Пол Murrel, один из из ближайших друзей Росса и также сотрудник Окландского универа расстарался и написал (кажется, на С) с нуля графический движок, полностью воспроизводящий функциональность такового в S .

В результате получился бесплатный полнофункциональный пакетик, моментально получивший место в учебном процессе Окланлского университета, полностью соответствующий описаниям в очень подробных и качественных книгах Чамберса, которые по традиции издавались в мягких обложках и среднего качества печати, зато были дешевы и доступны.
Несколько групп-активистов GNU-шного (например GIS) движения приняли R в качестве платформы для научных вычислений.

Но поистине широчайшую известность R приобрел в биоинформатике, когда один из «отцов» Роберт Джентельмен, вовлеченный в то время в работы фирмы Affimmetrix , продублировал всю функциональность коммерческого софта фирмы и запустил (ну не один, конечно) опенсорсный проект Bioconductor . В настоящее время Bioconductor является безусловным лидером биоинформатического опенсорса для всех "-омиксов" (genomics, proteomics, metabolomics etc.).

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

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

За что я его люблю (список)

  1. Интерактивность, «Программирование с данными» - мой любимый стиль работы
  2. Изящный (на любителя) язык - люблю списки, data frames, функциональное программирование и лямбда-функции (а-la)ю Свобода самовыражения: одну и ту же задачу можно решить десятью способами (смягчает ощущение рутины)
  3. «Трезво смотрит на этот мир» - редко «падает» или кого-нить «подвешивает», логичные операции с пропущенными данными, обработка ошибок во время выполнения (try-error), легкий обмен с системой на уровне стандартного I/O и пр.
  4. Полный набор готовых к употреблению статистических процедур
  5. Хорошо документирован и хорошо сопровождается - совместимость, преемственность и т.п.
  6. Собрал вокруг себя по-человечески приятное профессиональное сообщество (форумы, конференции пользователей и пр.)
  7. Хорошо докуметированный интерфейс для внешних библиотек и функций на чем угодно - Фортран, С, Java. Отсюда море хорошо документированных библиотек по всем аспектам статистики и обработки данных практически во всех сферах науки, но с основным упором на биоинформатику/биостатистику; все регулярно и корректно обновляется, если есть на то авторская воля
  8. Отсутствие обязательного GUI в «базовой комплектации» - Ну не «мышиный» я человек!
Вне списка: Мне просто приятно, что мой основной рабочий инструмент имеет… душу.
Что я, на самом деле, и пытаюсь показать в своей статье.

Для чего и как я его использую (примеры)

Начал писать в этот раздел, но остановился.
Иначе я никогда бы не закончил.
Ой, наверное, как нибудь потом.

Мифы и правда

R медленный
R - «тонкий», для вычислений использует blas/lapack/atlas библиотеки, попробуйте написать что-нибудь быстрее этих старых добры фортрановских (зачастую) «рабочих лошадок». Все критичные функции, как правило, используют векторные операции и реализованы на С .
R нерационально использует вычислительные ресурсы, в частности - память
Да, разработчики признают такой грех. Но рабочее время специалиста сейчас всяко дороже «железа». Выгрузите из современного рабочего компа игрушки и с большинством реальных наборов данных у вас с R проблем не будет.
Бесплатный софт не может быть надежным
Может: Fortran, Linux, C, Lisp, Java etc.
Вместо Эпилога
Как сказано выше, пост ниже является фактически переводом моей презентации для достаточно специфичесуой целевой аудитории, и я вкратце опишу эту аудиторию.

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

Итак, моя аудитория - люди, с базовым образованием в генетике и селекции, ветеринарии, реже - биологии (преимущественно - молекулярной). Дядьки и тетки (последних больше), лет по 20-30-… программирующие (!) на FORTRANe или VB , лихо управляющиеся с excel-таблицами в 100к строк/столбцов и периодически «роняющие» своими задачами (и своим программированием) свой вычислительный линуксовый 500+ядерный кластер 12Тб общей памяти и время от времени требующие расширения дисковой памяти очередным десятком терабайт.

Методическая база - гремучая смесь древних как мир дисперсионных анализов со смешанными моделями, решаемыми никак иначе, как только методом максимального правдоподобия, «плавящие мозг» байесовские сети и т.п.

Данные - таблицы данных от единиц до десятков тысяч строк, включающие иногда 1-5 колонок с фенотипами, но все чаще - десятки или сотни «Ка» столбцов переменных, слабокореллирующих между собой и с фенотипами.

Ну да, еще у них есть «хорошая традиция» расматривать все в аспекте родственных связей (генетика, как-никак). Родственные связи традиционно представлены в виде матрицы «родственных связей» (pedigree) размерами, например 40 000 х 40 000 (это если 40 000 животных). Ну или (пока, к счастью, только в проекте) 20 000 000 х 20 000 000 - это чтобы «охватить» единой моделью все 20 млн. исторических животных, имеющихся в базе данных (DB2 , если кому интересно, и даже Сobol еще «выпилили» не отовсюду...)

По столам, заваленным литературой по (одновременно) Fortran, Java, C#, Scalа, Octavia, Linux for Dummies можно узнать недавних выпускников-биоинформатиков. Но как-то быстро многие из них уходят из науки в «кодеры».

Впрочем, знаю и случай обратного движения. Так что R еще многим пригодится.

Хочу рассказать об использовании свободной среды статистического анализа R. Рассматриваю ее как альтернативу статистических пакетов типа SPSS Statistics. К моему глубокому сожалению, она совершенно неизвестна на просторах нашей Родины, а зря. Полагаю, что возможность написания дополнительных процедур статистического анализа на языке S делает систему R полезным инструментом анализа данных.

В весеннем семестре 2010 года мне довелось читать лекции и проводить практические занятия по курсу «Статистический анализ данных» для студентов отделения интеллектуальных систем РГГУ.

Мои студенты предварительно изучали семестровый курс теории вероятностей, покрывающий основы дискретных вероятностных пространств, условные вероятности, теорему Байеса, закон «больших чисел», некоторые сведения о нормальном законе и Центральную предельную теорему.

Лет пять назад я уже проводил занятия по (тогда еще объединенному) семестровому курсу «Основы теории вероятностей и математической статистики», поэтому я расширил свои заметки (выдаваемые перед каждым занятием студентам) по статистике. Сейчас, когда в РГГУ имеется студенческий сервер isdwiki.rsuh.ru отделения, я параллельно выкладываю их на FTP.

Встал вопрос: какую программу использовать, для проведения практических занятий в компьютерном классе? Часто используемый Microsoft Excel был отклонен как из-за проприетарности, так и из-за некорректности реализации некоторых статистических процедур. Об этом можно прочитать, например, в книге А.А.Макарова и Ю.Н.Тюрина «Статистический анализ данных на компьютере». Электронные таблицы Calc из бесплатного офисного пакета Openoffice.org русифицировали так, что мне с трудом удается найти требуемую функцию (их названия еще и сократили отвратительно).

Наиболее часто используется пакет SPSS Statistics. В настоящее время фирма SPSS поглощена фирмой IBM. Среди преимуществ IBM SPSS Statistics выделю:

  • Удобная загрузка данных различных форматов (Excel, SAS, через OLE DB, через ODBC Direct Driver);
  • Наличие как командного языка, так и разветвленной системы меню для прямого доступа к различным процедурам статистического анализа;
  • Графические средства вывода результатов;
  • Встроенный модуль Statistics Coach, интерактивным образом предлагающий адекватный метод анализа.
Недостатками IBM SPSS Statistics на мой взгляд являются:
  • Платность даже для студентов;
  • Необходимость получения (дополнительно оплачиваемых) модулей, содержащих специальные процедуры;
  • Поддержка только 32-разрядных операционных систем Linux, хотя Windows поддерживаются как 32-разрядные, так и 64-разрядные.
В качестве альтернативы я выбрал систему . Эта система начала разрабатываться усилиями Роберта Джентльмена и Росса Ихака на факультете статистики университета Мельбурна в 1995 году. Первые буквы имен авторов определили ее название. Впоследствии к развитию и расширению этой системы подключились ведущие специалисты-статистики.

Достоинствами обсуждаемой системы я считаю:

  • Распространение программы под GNU Public License;
  • Доступность как исходных текстов, так и бинарных модулей в обширной сети репозитариев CRAN (The Comprehensive R Archive Network). Для России - это сервер cran.gis-lab.info ;
  • Наличие установочного пакета под Windows (работает как на 32-х, так и на 64-х разрядной Vista). Случайно выяснилось, что установка не требует прав администратора под Windows XP;
  • Возможность установки из репозитария в Linux (у меня работает на 64-разрядной версии Ubuntu 9.10);
  • Наличие собственного языка программирования статистических процедур R, фактически ставшим стандартом. Он, например, полностью поддерживается новой системой IBM SPSS Statistics Developer;
  • Этот язык является расширением языка S, разработанным в Bell Labs, в настоящее время составляющим основу коммерческой системы S-PLUS. Большинство программ, написанных для S-PLUS, может легко быть исполнено в среде R;
  • Возможность обмена данным с электронными таблицами;
  • Возможность сохранения всей истории вычислений для целей документирования.
К первому занятию были подготовлены CD, на которые были записаны установочные файлы, документация и руководства. О последних скажу подробнее. В CRAN имеются подробные руководства пользователя по установке, языку R (и его подмножеству S), написанию дополнительных статистических процедур, экспорту и импорту данных. В разделе Contributed Documentation имеется большое число публикаций преподавателей-статистиков, использующих этот пакет в учебном процессе. К сожалению, на русском языке ничего нет, хотя, например, есть даже на польском. Из англоязычных книг отмечу «Using R for introductory statistics» профессора Джона Верзани из городского университета Нью-Йорка и «Introduction to the R project for Statistical Computing» профессора Росситера (Голландия) из Международного института Геоинформатики и наблюдений Земли.

Первое занятие было посвящено установке и обучению пользоваться пакетом, знакомство с синтаксисом языка R. В качестве тестовой задачи использовались вычисления интегралов методом Монте-Карло. Вот пример вычисления вероятности с.в. с экспоненциальным распределением с параметром 3 принять значение меньше 0.5 (10000 - число попыток).
> x=runif(10000,0,0.5)
> y=runif(10000,0,3)
> t=y<3*exp(-3*x)
> u=x[t]
> v=y[t]
> plot(u,v)
> i=0.5*3*length(u)/10000

Первые две строчки задают равномерное распределение точек в прямоугольнике x, затем отбираются те точки, которые попали под график экспоненциальной плотности 3*exp(-3*x), функция plot отображает точки в окне графического вывода, наконец, вычисляется искомый интеграл.
Второе занятие было посвящено вычислению описательных статистик (квантилям, медиане, среднему, дисперсии, корреляции и ковариации) и выводу графиков (гистограммы, ящик-с-усами).
В последующих занятиях использовалась библиотека «Rcmdr». Это - графический интерфейс пользователя (GUI) для среды R. Библиотека создается усилиями профессора Джона Фокса из университета McMaster в Канаде.

Установка этой библиотеки производится выполнением команды install.packages(«Rcmdr», dependencies=TRUE) внутри среды R. Если сама среда - интерпретатор языка R, то надстройка «Rcmdr» - это дополнительное окно, снабженное системой меню, содержащей большое число команд, соответствующих стандартным статистическим процедурам. Это особенно удобно для курсов, где главное - научить студента нажимать на кнопочки (к моему сожалению, такие встречаются сейчас все в большем количестве).

Из предыдущего моего курса были расширены заметки к семинарам. Они также доступны через FTP с сайта isdwiki.rsuh.ru. Эти заметки содержали таблицы критических значений, которые использовались для вычислений у доски. В этом году студентам предлагалось решать эти задачи на компьютере, а также проверять таблицы, использовав (нормальные) аппроксимации, также указанные в заметках.

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

Следует отметить, что на мои занятия ходили несколько студентов старших курсов, а некоторые скачивали материалы лекций и семинаров. Студенты отделения интеллектуальных систем РГГУ получают фундаментальную подготовку по математике и программированию, поэтому использование среды R (вместо электронных таблиц и статистических пакетов с фиксированными статистическими процедурами) представляется мне очень полезным.

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

Недавно столкнулся с таким феноменом - про язык программирования R слышали многие. Но знают что это такое очень мало людей.

Поскольку являюсь носителем этого языка и заинтересован в его популяризации, попытаюсь немного раскрыть тему в этом посте. Будет интересно!

План простой:

1) Что такое язык R

2) Популярность в России

Что такое язык R

R (вики) - язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом в рамках проекта GNU.

По нашему: Язык идеально подходящий для поиска рыночных закономерностей. Бесплатный, быстрый и свободный.

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

Это САМЫЙ популярный язык программирования алготрейдеров на западе. Это передовая того что сейчас доступно в области машинного обучения и статистики.

Для того чтобы писать программы на R, достаточно скачать R-Studio и всё



Некоторое время назад, в рамках популяризации языка, записал мини-курс «R для каждого». Бесплатный. Посмотрите как просто всё это работает и как быстро на нём писать скрипты. Это просто великолепно!

Популярность в России

Оставляет желать лучшего.

Если на западе 90% всех исследований проводиться с помощью этого языка, то в России редкая неделя проходит на СмартЛабе, в которой можно найти хоть одно упоминание о нём. Т.е. число людей знающих R - критически мало.

В числе причин такой ситуации: отсутствие пособий на русском до недавнего времени, отсутствие обучающий курсов, низкая грамотность трейдеров и ещё много чего. Не будем об этом.

Важно лишь то, что популярность этого языка в России и СНГ неуклонно растёт.

Российские пользователи устали от неработающих АПИ и дорогих торговых систем. Бесплатный язык R, в контексте трейденга, очень скоро займёт достойное место в их инструментарии. Присоединяйся!

На этом сегодня всё. Надеюсь было интересно.

Смотрите мой бесплатный курс, чтобы понять, как просто писать код. Пишите роботов!