R візуалізація даних. Методичний посібник "Статистичний аналіз і візуалізація даних за допомогою R"

«СТАТИСТИЧНИЙ АНАЛІЗ І ВІЗУАЛІЗАЦІЯ ДАНИХ ЗА ДОПОМОГОЮ R трава коріння плоди листя Хайдельберг - Лондон - Тольятті 2014 року, ...»

- [Сторінка 1] -

С.Е. Мастіцкій, В.К. Шитіков

СТАТИСТИЧНИЙ АНАЛІЗ І

ВІЗУАЛІЗАЦІЯ ДАНИХ ЗА ДОПОМОГОЮ R

трава коріння плоди листя

Хайдельберг - Лондон - Тольятті

2014 року, Сергій Едуардович Мастіцкій, Володимир Кирилович Шитіков

Веб-сайт: http://r-analytics.blogspot.com

Дана робота розповсюджується в рамках ліцензії

Creative Commons «Атрибуція - Некомерційне

використання - На тих же умовах 4.0 Всесвітня ». Відповідно до цієї ліцензії, Ви можете вільно копіювати, поширювати і видозмінювати цей твір за умови точної вказівки його авторів і джерела. При зміні цього твору або використанні його в своїх роботах, Ви можете поширювати результат тільки за такою ж або подібної ліцензії. Забороняється використовувати цю роботу в комерційних цілях без узгодження з авторами. Більш детальна інформація про ліцензії представлена \u200b\u200bна сайті www.creativecommons.com

Будь ласка, посилайтеся на цю книгу в такий спосіб:

Мастіцкій С.Е., Шитіков В.К. (2014 року) Статистичний аналіз і візуалізація даних за допомогою R.

- Електронна книга, адреса доступу:

http://r-analytics.blogspot.com

ПЕРЕДМОВА 5

1. ОСНОВНІ КОМПОНЕНТИ СТАТИСТИЧНОЇ СЕРЕДОВИЩА R 8


1.1. Історія виникнення і основні принципи організації 8 середовища R

1.2. Робота з командної консоллю інтерфейсу R 11

1.3. Робота з меню пакета R Commander 13

1.4. Об'єкти, пакети, функції, пристрої 17

2. ОПИС МОВИ R 23

2.1. Типи даних мови R 23

2.2. Вектори і матриці 24

2.3. фактори 29

2.4. Списки і таблиці 31

2.5. Імпорт даних в R 37

2.6. Подання дати і часу; тимчасові ряди 40

2.7. Організація обчислень: функції, розгалуження, цикли 46

2.8. Векторизованних обчислення в R з використанням apply- 50 функцій

3. БАЗОВІ ГРАФІЧНІ МОЖЛИВОСТІ R 58

3.1. Діаграми розсіювання plot () і параметри графічних 58 функцій

3.2. Гістограми, функції ядерної щільності і функція 66 cdplot ()

3.3. Діаграми розмахів 74

3.4. Кругові і стовпчикові діаграми 77

3.5. Діаграми Клівленда і одномірні діаграми розсіювання 84

4. описової статистики І ПІДГОНКА 97

розподілити

- & nbsp- & nbsp-

ПЕРЕДМОВА

Одним з основних інструментів пізнання світу є обробка даних, одержуваних людиною з різних джерел. Суть сучасного статистичного аналізу полягає в інтерактивному процесі, що складається з дослідження, візуалізації та інтерпретації потоків поступаемой інформації.

Історія останніх 50 років - це і історія розвитку технології аналізу даних.

Один з авторів з розчуленням згадує кінець 60-х років і свою першу програму розрахунку парної кореляції, яка набиралася металевими штирёчкамі на "операційному полі" з 150 осередків персональної ЕОМ "Промiнь-2" вагою понад 200 кг.

У наш час високопродуктивні комп'ютери і доступне програмне забезпечення дозволяють реалізувати повний цикл інформаційно-технологічного процесу, що складається, в загальному випадку, з наступних кроків:

° доступ до оброблюваних даних (їх завантаження з різних джерел і комплектація сукупності взаємопов'язаних вихідних таблиць);

° редагування завантажених показників (заміна або видалення пропущених значень, перетворення ознак в більш зручний вид);

° анотування даних (щоб пам'ятати, що являє собою кожний їх фрагмент);

° отримання загальних відомостей про структуру даних (обчислення описових статистик для того, щоб охарактеризувати аналізовані показники);

° графічне представлення даних і результатів обчислень в зрозумілою інформативній формі (одна картинка насправді іноді варто тисячі слів);

° моделювання даних (знаходження залежностей і тестування статистичних гіпотез);

° оформлення результатів (підготовка таблиць і діаграм прийнятного публікаційного якості).

В умовах, коли до послуг користувача є десятки пакетів прикладних програм, актуальна проблема вибору (іноді трагічна, якщо згадати "буриданова осла"): яке програмне забезпечення аналізу даних слід віддати перевагу для своєї практичної роботи? Тут зазвичай береться до уваги специфіка розв'язуваної задачі, ефективність настройки алгоритмів обробки, витрати на покупку програм, а також смаки і особисті переваги аналітика. При цьому, наприклад, шаблонна Statistica з її механічним комплексом кнопок меню, далеко не завжди може задовольнити творчого дослідника, що віддає перевагу самостійно контролювати хід обчислювального процесу. Комбінувати різні типи аналізу, мати доступ до проміжних результатів, управляти стилем відображення даних, додавати власні розширення програмних модулів і оформляти підсумкові звіти в необхідному вигляді дозволяють комерційні обчислювальні системи, що включають високорівневі засоби командного мови, такі як Matlab, SPSS та ін. Чудовою альтернативою їм є безкоштовна програмне середовище R, яка є сучасною і постійно розвивається статистичної платформою загального призначення.



Сьогодні R є безумовним лідером серед вільно розповсюджуваних систем статистичного аналізу, про що говорить, наприклад, той факт, що в 2010 році система R стала переможцем щорічного конкурсу відкритих програмних продуктів Bossie Awards в декількох номінаціях. Провідні університети світу, аналітики найбільших компаній і дослідницьких центрів постійно використовують R при проведенні науково-технічних розрахунків і створення великих інформаційних проектів. Широке викладання статистики на базі пакетів цього середовища і всебічна підтримка науковим співтовариством зумовили те, що приведення скриптів R поступово стає загальновизнаним "стандартом" як в журнальних публікаціях, так і при неформальному спілкуванні вчених усього світу.

Головною перешкодою для російськомовних користувачів при освоєнні R, безумовно, є те, що майже вся документація по цьому середовищі існує англійською мовою. Лише з 2008 р зусиллями А.В. Шипунова, Е.М. Балдина, С.В. Петрова, І.С. Зарядова, А.Г. Буховцев та інших ентузіастів з'явилися методичні посібники та книги російською мовою (посилання на них можна знайти в списку літератури в кінці цієї книги; там же представлені і посилання на освітні ресурси, авторами яких робиться посильний внесок у просування R серед російськомовних користувачів).

Цей посібник узагальнює сукупність методичних повідомлень, опублікованих одним з авторів з 2011 р в блозі «R: Аналіз і візуалізація даних»

(Http://r-analytics.blogspot.com). Нам здалася доцільною ідея представити для зручності читачів весь цей кілька роз'єднаний матеріал в концентрованій формі, а також розширити деякі розділи для повноти викладу.

У перших трьох розділах містяться докладні вказівки по роботі з інтерактивними компонентами R, детальний опис мови і базових графічних можливостей середовища.

Ця частина книги цілком доступна новачкам в області програмування, хоча читач, уже знайомий з мовою R, може знайти там цікаві фрагменти коду або використовувати наведені описи графічних параметрів як довідковий посібник.

У наступних розділах (4-8) наведено опис поширених процедур обробки даних і побудови статистичних моделей, яке ілюстровано кількома десятками прикладів. Вони включають короткий опис алгоритмів аналізу, основні отримані результати та їх можливу інтерпретацію. Ми намагалися, по можливості, обійтися без зловживання "ритуальними" словообороти, характерними для численних посібників з прикладної статистики, цитування загальновідомих теорем і приведення багатоповерхових розрахункових формул. Акцент робився, в першу чергу, на практичне застосування - на те, щоб читач, керуючись прочитаним, міг проаналізувати свої дані і викласти результати колегам.

Розділи цієї частини збудовані в міру ускладнення представленого матеріалу.

Глави 4 і 5 орієнтоване на читача, який цікавиться статистикою лише в рамках початкового університетського курсу. У розділах 6 і 7 в рамках єдиної теорії загальних лінійних моделей представлені дисперсійний та регресійний аналізи і наведені різні алгоритми дослідження та структурної ідентифікації моделей. Глава 8 присвячена деяким сучасним методам побудови та аналізу узагальнених регресійних моделей.

Оскільки незмінний інтерес у дослідника викликає просторовий аналіз і відображення результатів на географічних картах і схемах, в розділі 9 наведені деякі приклади таких прийомів візуалізації.

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

Файли зі скриптами кодів R по всім главам книги, а також необхідні таблиці вихідних даних для їх виконання, вільно доступні для скачування з GitHubрепозіторія https://github.com/ranalytics/r-tutorials, а також з сайту Інституту екології Волзького басейну РАН по засланні http://www.ievbras.ru/ecostat/Kiril/R/Scripts.zip.

Слід зазначити, що текст в цьому посібнику представлений в авторській редакції і тому, незважаючи на всі наші зусилля, є ймовірність наявності в ньому помилок, граматичних неточностей і невдалих оборотів. Ми будемо вдячні Вам, Читач, за повідомлення про ці, а також інші виявлені недоліки по електронній пошті [Email protected] Ми також будемо вдячні за будь-які інші Ваші зауваження та побажання щодо цієї роботи.

- & nbsp- & nbsp-

1. ОСНОВНІ КОМПОНЕНТИ СТАТИСТИЧНОЇ СЕРЕДОВИЩА R

1.1. Історія виникнення і основні принципи організації середовища R Система статистичного аналізу та візуалізації даних R складається з наступних основних частин:

° мови програмування високого рівня R, що дозволяє одним рядком реалізувати різні операції з об'єктами, векторами, матрицями, списками і т.д .;

° великого набору функцій обробки даних, зібраних в окремі пакети (package);

° розвиненою системою підтримки, що включає оновлення компонентів середовища, інтерактивну допомогу і різні освітні ресурси, призначені як для початкового вивчення R, так і наступних консультацій з виникаючих ускладнень.

Початок шляху відноситься до 1993 року, коли двоє молодих новозеландських вчених Росс Ихак (Ross Ihaka) і Роберт Джентльмен (Robert Gentleman), анонсували свою нову розробку, яку назвали R. Вони взяли за основу мову програмування розвиненою комерційної системи статистичної обробки даних S- PLUS і створили його безкоштовну вільну реалізацію, що відрізняється від свого прабатька легко розширюваної модульною архітектурою. Незабаром виникла розподілена система зберігання і поширення пакетів до R, відома під абревіатурою "CRAN" (Comprehensive R Archive Network - http://cran.r-project.org), основна ідея організації якої - постійне розширення, колективне тестування і оперативне поширення прикладних засобів обробки даних.

Виявилося, що такий продукт безперервних і добре скоординованих зусиль потужного "колективного розуму" тисяч безкорисливих розробників-інтелектуалів виявився значно ефективніше комерційних статистичних програм, вартість ліцензії на які може становити кілька тисяч доларів. Оскільки R є улюбленим мовою професійних статистиків, всі останні досягнення статистичної науки дуже швидко стають доступними для користувачів R у всьому світі у вигляді додаткових бібліотек. Жодна комерційна система статистичного аналізу так швидко сьогодні не розвивається. У R є численна армія користувачів, які повідомляють авторам додаткових бібліотек і самої системи R про виявлені помилки, які оперативно виправляються.

Мова обчислень R, хоча і вимагає певних зусиль для свого освоєння, неабияких пошукових навичок і енциклопедичної пам'яті, дозволяє оперативно виконати розрахунки, за своєю різноманітністю практично «настільки ж невичерпні, як атом». Ентузіастами з усього світу за станом на липень 2014 р написано 6739 додаткових бібліотек для R, що включають 137 506 функцій (див.

http://www.rdocumentation.org), які суттєво розширюють базові можливості системи. Дуже складно уявити будь-якої клас статистичних методів, який ще не реалізовано сьогодні в вигляді пакетів R, включаючи, зрозуміло, весь "джентльменський набір": лінійні і узагальнені лінійні моделі, нелінійні регресійні моделі, планування експерименту, аналіз часових рядів, класичні параметричні і непараметричні тести, байєсівську статистика, кластерний аналіз і методи згладжування. За допомогою потужних засобів візуалізації, результати аналізу можна узагальнювати у вигляді всіляких графіків і діаграм. Крім традиційної статистики, розроблений функціонал включає великий набір алгоритмів чисельної математики, методів оптимізації, рішення диференціальних рівнянь, розпізнавання образів і ін. Свої специфічні методи обробки даних можуть виявити в складі пакетів R генетики і соціологи, лінгвісти і психологи, хіміки і медики, фахівці з ГІС і Web-технологій.

"Фірмова" документація по R вельми об'ємна і далеко не завжди розумно написана (за дивною традицією англомовної літератури занадто багато слів витрачається на опис тривіальних істин, тоді як важливі моменти пробігаються скоромовкою). Однак, на додаток до цього, провідними світовими видавництвами (Springer, Cambridge University Press та Chapman & Hall / CRC) або просто окремими колективами ентузіастів випущена величезна кількість книг, що описують різні аспекти аналізу даних в R (див., Наприклад, список літератури на сайті «Енциклопедія психодіагностики», http://psylab.info/R:Литература). Крім того, існує кілька активно діючих міжнародних і російських форумів користувачів R, де будь-хто може попросити про допомогу в виниклої проблеми. У списку літератури ми наводимо пару сотень книг і Інтернет-посилань, на які радимо звернути особливу увагу в ході вивчення R.

Безпосереднє навчання практичній роботі в R складається з а) освоєння конструкцій мови R і знайомства з особливостями виконання функцій, які виконують аналіз даних, і б) придбання навичок роботи з програмами, що реалізують специфічні методи аналізу та візуалізації даних.

Питання вибору засобів для користувача інтерфейсу R неоднозначний і сильно залежить від смаків користувачів. Єдиної думки немає навіть у авторитетних фахівців.

Одні вважають, що немає нічого кращого стандартного консольного інтерфейсу R. Інші вважають, що для зручної роботи варто інсталювати будь-яку з наявних інтегрованих середовищ розробки (IDE) з багатим набором кнопкових меню. Наприклад, відмінним варіантом є безкоштовна інтегроване середовище розробки RStudio.

Нижче ми зупинимося на описі консольного варіанту і роботі з R Commander, але подальшим пошукам читача може допомогти огляд різних версій IDE, представлений в додатку до книги Шипунова з співавт. (2014 року).

Один з R-експертів, Джозеф Рикерт, вважає, що процес вивчення R можна розділити на наступні етапи (докладніше див.

його статтю на inside-r.org):

1. Знайомство з загальними принципами культури R-спільноти та програмного середовища, в якій розроблявся і функціонує мова R. Відвідування основних і допоміжних ресурсів і освоєння хорошого вступного підручника. Інсталяція R на комп'ютері користувача і виконання перших тестових скриптів.

2. Зчитування даних із стандартних файлів операційної системи і впевнене використання R-функцій для виконання обмеженого набору звичних користувачеві процедур статистичного аналізу.

3. Використання базових структур мови R для написання простих програм.

Написання власних функцій. Ознайомлення зі структурами даних, з якими може працювати R, і більш складними можливостями мови. Робота з базами даних, веб-сторінках і зовнішніми джерелами даних.

4. Написання складних програм на мові R. Самостійна розробка та глибоке розуміння структури об'єктів так званих S3- і S4-класів.

5. Розробка професійних програм на мові R. Самостійне створення додаткових модулів-бібліотек для R.

Більшість пересічних користувачів R зупиняються на стадії 3, тому що

отриманих до цього часу знань їм цілком достатньо для виконання статистичних задач за профілем їх основної професійної діяльності.

Приблизно в цьому обсязі ми і наводимо опис мови R в рамках цього посібника.

Встановити і налаштувати базову комплектацію статистичної середовища R вельми просто. На липень 2014 р актуальною є версія R 3.1.1 для 32 і 64-бітної Windows (доступні також дистрибутиви для всіх інших поширених операційних систем). Завантажити дистрибутив системи разом з базовим набором з 29 пакетів (54 мегабайта) можна абсолютно безкоштовно з основного сайту проекту http://cran.r-project.org або російського "дзеркала" http://cran.gis-lab.info. Процес інсталяції системи з завантаженого дистрибутива утруднень не викликає і не вимагає ніяких особливих коментарів.

Для зручності зберігання скриптів, вихідних даних і результатів розрахунків варто виділити на комп'ютері користувача спеціальний робочий каталог. Вельми небажано використовувати в назві робочого каталогу символи кирилиці.

Шлях до робочого каталогу і деякі інші опції налаштувань доцільно розмістити, змінивши будь-яким текстовим редактором системний файл C: \\ Program Files \\ R \\ Retc \\ Rprofile.site (на Вашому комп'ютері він може мати інше місце розміщення). У представленому нижче прикладі модифіковані рядки відзначені зеленим кольором.

Крім вказівки робочого каталогу, ці рядки визначають посилання на російське джерело завантаження пакетів R і автоматичний запуск R Commander.

Лістинг файлу Rprofile.site # Все, що слід на символом коментаря «#» середовищем ігнорується # options (papersize \u003d "a4") # options (editor \u003d "notepad") # options (pager \u003d "internal") # встановити тип відображення довідкової інформації # options (help_type \u003d "text") options (help_type \u003d "html") # встановити місце розташування локальної бібліотеки # .Library.site - file.path (chartr ( "\\\\", "/", R.home () ), "site-library") # При завантаженні середовища запустити меню R Commander # Поставити знаки «#», якщо запуск Rcmdr не потрібен local ((old - getOption ( "defaultPackages") options (defaultPackages \u003d c (old, "Rcmdr" )))) # Визначити дзеркало CRAN local ((r - getOption ( "repos") r [ "CRAN"] - "http: //cran.gis-lab" options (repos \u003d r))) # Визначити шлях до робочого каталогу (будь-якій іншій на Вашому комп'ютері) setwd ( "D: / R / Process / Resampling") Що стосується «хорошого вступного підручника», то будь-які наші рекомендації будуть носити суб'єктивний відтінок. Проте, слід згадати офіційно визнане введення в R У. Венеблеза і Д. Сміта (Venables, Smith, 2014 року) і книгу Р.Кабакова (Kabaco, 2011), почасти ще й тому, що є їх російський переклад. Відзначимо також традиційне "повчання для чайників" (Meys, Vries, 2012) і керівництво (Lam, 2010), написане з завидною голландської педантичністю. З російськомовних вступних курсів найбільш повними є книги І.Зарядова (2010а) і А.Шіпунова з співавт. (2014 року).

1.2. Робота з командним консоллю інтерфейсу R Статистична середу R виконує будь-який набір осмислених інструкцій мови R, що містяться в файлі скрипта або представлених послідовністю команд, що задаються за консолі. Робота з консоллю може здатися важким для сучасних користувачів, які звикли до кнопковим меню, оскільки треба запам'ятовувати синтаксис окремих команд. Однак, після придбання деяких навичок, виявляється, що багато процедур обробки даних можна виконувати швидше і з меншими зусиллями, ніж, припустимо, в тому ж пакеті Statistica.

Консоль R являє собою діалогове вікно, в якому користувач вводить команди і де бачить результати їх виконання. Це вікно виникає відразу при запуску середовища (наприклад, після кліка мишею на ярлику R на робочому столі). Крім того, стандартний графічний користувальницький інтерфейс R (RGui) включає вікно редагування скриптів і спливаючі вікна з графічною інформацією (малюнками, діаграмами та ін.)

У командному режимі R може працювати, наприклад, як звичайний калькулятор:

Праворуч від символу запрошення користувач може ввести довільне арифметичне вираз, натиснути клавішу Enter і тут же отримати результат.

Наприклад, у другій команді на наведеному вище малюнку ми використовували функції факторіалу і синуса, а також вбудоване число p. Результати, отримані в текстовій формі можна виділити мишею і скопіювати через буфер обміну в будь-який текстовий файл операційної системи (наприклад, документ Word).

При роботі з використанням RGui ми рекомендуємо у всіх випадках створювати файл зі скриптом (тобто послідовністю команд мови R, яка виконує певні дії). Як правило, це звичайний текстовий файл з будь-яким ім'ям (але, для визначеності, краще з розширенням * .r), який можна створювати і редагувати звичайним редактором типу "Блокнот". Якщо цей файл існує, його найкраще помістити в робочий каталог, і тоді після запуску R і вибору пункту меню "Файл Відкрити скрипт" вміст цього файлу з'явиться у вікні "Редактор R". Виконати послідовність команд скрипта можна з пункту меню "Правка Запустити всі".

Можна також виділити мишею осмислений фрагмент з будь-якого місця підготовленого скрипта (від імені однієї змінної до всього вмісту) і здійснити запуск цього блоку на виконання. Це можна зробити чотирма можливими способами: з основного і контекстного меню, комбінацією клавіш Ctrl + R або кнопкою на панелі інструментів.

На представленому малюнку були виконані наступні дії:

° з безкоштовного Інтернет-джерела Global Administrative Areas (GADM) був викачаний R-об'єкт gadm з даними по територіальним поділом Республіки Білорусь;

° латинізовані найменування міст замінені на загальновживані еквіваленти;

° з використанням функції spplot () пакета sp в графічне вікно виведена адміністративна карта республіки, яку можна засобами меню скопіювати в буфер обміну або зберегти як стандартний мета- або растровий графічний файл.

Детальніше сенс окремих операторів ми розглянемо в наступних розділах, а тут звернемо увагу, що виділивши в скрипті і запустивши на виконання комбінацію символів [Email protected], Ми отримаємо в вікні консолі весь набір даних data по об'єкту а команда, складена з виділених символів gadm, [Email protected]$ NAME_1, дасть нам список найменувань адміністративних центрів до і після його модифікації.

Таким чином, Редактор R дозволяє легко виконати навігацію по скрипту, редагування і виконання будь-якої комбінації команд, пошук і заміну певних частин коду. Згадана вище надбудова RStudio дозволяє додатково виконувати підсвічування синтаксису коду, його автоматичне завершення, "упаковку" послідовності команди в функції для їх подальшого використання, роботу з документами Sweave або TeX і інші операції, які будуть корисні просунутому користувачеві.

R володіє вбудованими великими довідковими матеріалами, які можна отримати безпосередньо в RGui.

Якщо подати з консолі команду help.start (), то в вашому інтернет-браузері відкриється сторінка, що відкриває доступ до всіх довідкових ресурсів: основних посібникам, авторських матеріалів, відповідей на ймовірні запитання, списками змін, посиланнях на довідки по інших об'єктах R і т .буд .:

Довідку за окремими функціями можна отримати з використанням наступних команд:

° help ( "foo") або? foo - довідка по функції foo (лапки необов'язкові);

° help.search ( "foo") або ?? foo - пошук всіх довідкових файлів, що містять foo;

° example ( "foo") - приклади використання функції foo;

° RSiteSearch ( "foo") - пошук посилань в онлайн-довідниках і архівах розсилок;

° apropos ( "foo", mode \u003d "function") - список всіх функцій з комбінацією foo;

° vignette ( "foo") - список посібників по темі foo.

1.3. Робота з меню пакета R Commander Зручним засобом освоєння обчислень в R для початківця користувача є R Commander - від платформи незалежний графічний інтерфейс в стилі кнопкового меню, реалізований в пакеті Rcmdr. Він дозволяє здійснити великий комплект процедур статистичного аналізу, не вдаючись до попереднього заучування функцій на командному мовою, проте мимоволі сприяє цьому, оскільки відображає всі виконувані інструкції в спеціальному вікні.

Встановити Rcmdr, як і будь-які інші розширення, можна з меню консолі R "Пакети встановити пакет", але краще виконавши команду:

install.packages ( "Rcmdr", dependencies \u003d TRUE) де включення опції dependencies викличе гарантовану встановлення повного комплекту інших пакетів, які можуть знадобитися при обробці даних через меню Rcmdr.

Запуск R Commander відбувається при завантаженні пакета Rcmdr через меню "Пакети Включити пакет" або командою library (Rcmdr) Якщо з якоїсь причини було прийнято рішення аналізувати дані виключно за допомогою R Commander, то для автоматичного завантаження цієї графічної оболонки при запуску R необхідно відредагувати файл Rprofile.site як показано в розділі 1.1.

Роботу в R Commander розглянемо на прикладі кореляційного аналізу даних за рівнем зараженості двостулкового молюска Dreissena polymorpha инфузорией Conchophthirus acuminatus в трьох озерах Білорусі (Mastitsky S.E. // BioInvasions Records.

2012. V. 1. P 161-169). У таблиці з вихідними даними, які завантажили з сайту figshare, нас будуть цікавити дві змінні: довжина раковини молюска (ZMlength, мм) і число виявлених в молюсків інфузорій (CAnumber). Детально цей приклад буде розглянуто в розділах 4 і 5, тому тут ми не будемо детально зупинятися на змісті аналізу, а зосередимося на техніці роботи з Rcmdr.

Далі - визначаємо у спливаючих вікнах режим завантаження даних і адреса посилання в Інтернеті. Неважко помітити, що ті ж дані ми могли легко завантажити з локального текстового файлу, книги Excel або таблиці бази даних. Щоб переконатися в тому, що наші дані завантажені вірно (або при необхідності їх відредагувати), натискаємо кнопку "Подивитися дані".

Вікно визначення організації даних Фрагмент завантаженої таблиці

На другому етапі в меню "Статистика" вибираємо "Кореляційний тест":

Вибираємо пару корелюється змінних і в Вікні виведення отримуємо коефіцієнт кореляції Пірсона (R \u003d 0.467), рівень досягнутої статистичної значущості (p-value 2.2e-16) і 95% -ві довірчі межі.

- & nbsp- & nbsp-

Отримані результати легко скопіювати з вікна виведення через буфер обміну.

Тепер отримаємо графічне зображення кореляційної залежності. Виберемо точковий графік (scatterplot) залежно CAnumber від ZMlength і забезпечимо його крайовими діаграмами розмахів, лінією лінійного тренда по методу найменших квадратів (зеленим кольором), лінією, згладженої за методом локальної регресії (червоним кольором), представленої з довірчою областю (пунктир). Для кожного з трьох озер (змінна Lake) експериментальні точки будуть представлені різними символами.

- & nbsp- & nbsp-

Графік, скопійований з графічного вікна R Commander Як еквівалент всім натиснень кнопок меню R Commander, у вікні скриптів з'являються інструкції мови R.

У нашому випадку вони мають такий вигляд:

Молюски read.table ( "http://figshare.com/media/download/98923/97987", header \u003d TRUE, sep \u003d "\\ t", na.strings \u003d "NA", dec \u003d ".", Strip. white \u003d TRUE) cor.test (Молюски $ CAnumber, Молюски $ ZMlength, alternative \u003d "two.sided", method \u003d "pearson") scatterplot (CAnumber ~ ZMlength | Lake, reg.line \u003d lm, smooth \u003d TRUE, spread \u003d TRUE, boxplots \u003d "xy", span \u003d 0.5, ylab \u003d "Чисельність інфузорій", xlab \u003d "Довжина раковини", by.groups \u003d FALSE, data \u003d Молюски) Сам скрипт або виводяться результати (а також і те, і інше разом ) можна зберегти в файлах і в будь-який момент повторити. Той же самий результат можна отримати без запуску R Commander, завантаживши збережений файл через консоль R.

За великим рахунком, не знаючи конструкцій мови R (або просто не бажаючи обтяжувати свою пам'ять їх запам'ятовуванням), з використанням Rcmdr можна виконати обробку даних з використанням майже всіх базових статистичних методів. Тут представлені параметричні і непараметричні тести, методи підгонки різних безперервних і дискретних розподілів, аналіз багатовимірних таблиць спряженості, одновимірний і багатовимірний дисперсійний аналіз, метод головних компонент і кластеризація, різні форми узагальнених регресійних моделей та ін. Гідний ретельного вивчення розвинений апарат аналізу і тестування отриманих моделей .

Детальний опис техніки роботи з R Commander, а також особливості реалізації алгоритмів обробки даних, можна знайти в посібниках (Larson-Hall, 2009 року; Karp, 2014 року).

Проте, як мову жестів не може замінити людського спілкування природною мовою, так і знання мови R істотно розширює межі можливостей користувача і робить спілкування з середовищем R приємним і захоплюючим. І тут автоматична генерація скриптів в R Commander може виявитися для читача прекрасним засобом для знайомства з операторами мови R і навчання специфіці виклику окремих функцій. Наступні глави керівництва ми присвятимо обговоренню процедур обробки даних лише на рівні мовних конструкцій.

1.4. Об'єкти, пакети, функції, пристрої Мова R належить до сімейства так званих високорівневих об'єктно мов програмування. Для неспеціаліста суворе визначення поняття "об'єкт" є досить абстрактним. Однак для простоти можна називати об'єктами все, що було створено в процесі роботи з R.

Виділяють два основних типи об'єктів:

1. Об'єкти, призначені для зберігання даних ( "data objects") - це окремі змінні, вектори, матриці та масиви, списки, фактори, таблиці даних;

2. Функції ( "function objects") - це зазначені програми, призначені для створення нових об'єктів або виконання певних дій над ними.

Об'єкти середовища R, призначені для колективного і вільного використання, комплектуються в пакети, що об'єднуються подібною тематикою або методами обробки даних. Є певна відмінність між термінами пакет ( "package") і бібліотека ( "library"). Термін "library" визначає директорію, яка може містити один або кілька пакетів. Термін "package" позначає сукупність функцій, HTMLстраніц посібників і прикладів об'єктів даних, призначених для тестування або навчання.

Пакети встановлюються в певній директорії операційної системи або, в невстановленому вигляді, можуть зберігатися і поширюватися в архівних * .zip файлах Windows (Версія пакету має кореспондуватися з конкретною версією вашої R).

Повна інформація про пакет (версія, основне тематичне спрямування, автори, дати змін, ліцензії, інші функціонально пов'язані пакети, повний список функцій із зазначенням на їх призначення та ін.) Може бути отримана командою

library (help \u003d Имя_Пакета), наприклад:

library (help \u003d Matrix) Всі пакети R відносяться до однієї з трьох категорій: базові ( "base"), рекомендовані ( "recommended") та інші, встановлені користувачем.

Отримати їх список на конкретному комп'ютері можна, подавши команду library () або:

installed.packages (priority \u003d "base") installed.packages (priority \u003d "recommended") # Отримання повного списку пакетів packlist - rownames (installed.packages ()) # Виведення інформації в буфер обміну в форматі для Excel write.table (packlist , "clipboard", sep \u003d "\\ t", col.names \u003d NA) Базові і рекомендовані пакети зазвичай включаються в інсталяційний файл R.

Зрозуміло, немає необхідності відразу встановлювати "про запас" багато різних пакетів.

Для установки пакета досить в командному вікні R Console вибрати пункт меню "Пакети Встановити пакет (и)" або ввести, наприклад, команду:

install.packages (c ( "vegan", "xlsReadWrite", "car"))

Пакети можна завантажувати, наприклад, з російської "дзеркала" http://cran.gis-lab.info, для чого зручно скористатися редакцією файлу Rprofile.site як показано в розділі 1.1.

Інший варіант установки пакетів - зайти на сайт http://cran.gis-lab.info/web/packages, вибрати потрібний пакет у вигляді zip-файлу і завантажити в обрану папку свого комп'ютера.

В цьому випадку можна попередньо подивитися всю інформацію по пакету, зокрема, опис входять до нього функцій, і визначитися, наскільки він вам необхідний. Далі потрібно виконати пункт командного меню "Пакети Встановити пакети з локальних zip-файлів".

При запуску консолі RGui завантажуються тільки деякі базові пакети. Для ініціалізації будь-якого іншого пакета перед безпосереднім використанням його функцій потрібно ввести команду library (Имя_Пакета).

Встановити, які пакети завантажені в кожен момент проводиться сесії, можна, подавши команду:

sessionInfo () R version 2.13.2 (2011-09-30) Platform: i386-pc-mingw32 / i386 (32-bit)

- & nbsp- & nbsp-

other attached packages:

Vegan_2.0-2 permute_0.6-3

loaded via a namespace (and not attached):

Grid_2.13.2 lattice_0.19-33 tools_2.13.2 Наведемо в таблиці нижче список (можливо, не вичерпно повний) пакетів, які використовувалися в скриптах, представлених справжньою книгою:

Пакети R Призначення "Базові" пакети Базові конструкції R base Компілятор пакетів R compiler Набір таблиць з даними для тестування і демонстрації функцій datasets Базові графічні функції graphics Драйвери графічних пристроїв, палітри кольорів, шрифти grDevices Функції створення графічних шарів grid Компоненти об'єктно-орієнтованого програмування (класи , methods методи) Функції роботи з регресійний сплайнами різного типу splines Базові функції статистичного аналізу stats Методи статистичних функцій класу S4 stats4 Компоненти інтерфейсу з користувачем (меню, бокси вибору та ін.) tcltk Інформаційна підтримка, адміністрування та документування tools Різні утиліти налагодження, введення-виведення, архівування та ін.

Utils "Рекомендовані" пакети Функції різних процедур бутстрепа і "складного ножа" boot Різні алгоритми ієрархічній класифікації і розпізнавання class Алгоритми поділу і ієрархічної кластеризації cluster Аналіз і перевірка кодів R codetools Читання і запис файлів в різних форматах (DBF, SPSS, DTA, Stata) foreign функції, які обслуговують оптимізацію ядерного згладжування KernSmooth Графічні функції розширеної функціональності (Sarkar, 2008) lattice Набір даних і статистичних функцій (Venables, Ripley, 2002) MASS Операції з матрицями і векторами Matrix Узагальнені адитивні моделі і моделі зі змішаними ефектами mgcv Лінійні і нелінійні моделі зі змішаними ефектами nlme Нейронні мережі прямого поширення nnet Побудова дерев класифікації і регресії rpart Функції крігінга і аналізу просторового розподілу точок spatial Аналіз виживаності (модель Кокса та ін.) survival Пакети, встановлені в процесі роботи adegenet Алгоритми аналізу генетичних відстаней arm Аналіз моделей регресії - додаток до книги (Gelman, Hill, 2007) car Процедури, пов'язані з прикладним регресійний аналізом corrplot Відображення кореляційних матриць в графічному вигляді fitdistrplus Підбір параметрів статистичних розподілів FWDselect, Селекція набору інформативних змінних в регресійних моделях packfor gamair Набори даних для тестування адитивних моделей geosphere Оцінка географічних відстаней ggplot2 Вдосконалений графічний пакет високою функціональності DAAG Функції аналізу даних і графіки до книги (Maindonald, Braun, 2010) Hmisc Набір функцій Харрел (Harrell) HSAUR2 Додаток до книги (Everitt, Hothorn, 2010) ISwR Первинний статистичний аналіз в R jpeg Робота з графічними файлами jpeg lars Спеціальні види регресії (LARS, Lasso і ін.) lavaan Конфірматорний аналіз і моделі структурних рівнянь lmodel2 Реалізація моделей регресії I і II типів (MA, SMA, RMA) maptools Інструментарій роботи з географічними картами mice Процедури аналізу та заповнення пропущених значень moments Функції розрахунку вибіркових моментів nortest Критерії при перевірці гіпотези про нормальний розподіл outliers Аналіз викидів в даних pastecs Аналіз просторових і часових рядів в екології pls Регресія на головні компоненти pwr Оцінка статистичної потужності гіпотез reshape Гнучке перетворення таблиць даних robustbase Робастні методи побудови регресійних моделей rootSolve Знаходження коренів функції з декількома змінними scales Підбір колірних шкал sem Моделі структурних рівнянь semPlot Візуалізація структурних зв'язків sm Оцінка щільності розподілів і методи згладжування sp Класи і методи доступу до просторових даних spatstat методи просторової статистики, підбивши ор моделей spdep Просторові залежності: геостатистичного методи і моделювання stargazer Висновок інформації про статистичних моделях в різних форматах vcd Візуалізація категоріальних даних Виконання розрахунків по екології спільнот (міри схожості, різноманітності і vegan вкладеності, ординація і багатовимірний аналіз) Якщо ми спробуємо завантажити пакет, ще не встановлений в R, або спробуємо використовувати функції ще не завантаженого пакету, то отримаємо повідомлення системи:

sem (model, data \u003d PoliticalDemocracy) Помилка: не можу знайти функцію "sem" library (lavaan) Помилка в library (lavaan): немає пакету під назвою "lavaan" Наступна функція, представлена \u200b\u200bK. Cichini, приймає в якості вихідного параметра список використовуваних користувачем пакетів і сама розбирається, які слід завантажити, а які потрібно попередньо встановити. Для розуміння роботи скрипта необхідно знання конструкцій мови R, описуваних в наступному розділі, але цікавиться читач може повернутися до наведених командам пізніше.

instant_pkgs - function (pkgs) (pkgs_miss - pkgs)] # Інсталюємо пакети, які не підготовлені до завантаження:

if (length (pkgs_miss) 0) (install.packages (pkgs_miss)) # Завантажуємо пакети, які ще не завантажені:

Attached - search () attached_pkgs - attached need_to_attach - pkgs if (length (need_to_attach) 0) (for (i in 1: length (need_to_attach)) require (need_to_attach [i], character.only \u003d TRUE))) # Приклад виклику:

instant_pkgs (c ( "base", "jpeg", "vegan"))

Отримати список функцій кожного пакета можна, наприклад, подавши команду:

ls (pos \u003d "package: vegan") Примітка: ls () є функцією загального призначення для виведення списку об'єктів в заданому середовищі (environment). Команда вище встановлює в якості такого середовища пакет vegan. Якщо подати цю команду без параметрів, то отримаємо список об'єктів, створених за час поточної сесії.

Отримати список аргументів входять параметрів будь-якої функції завантаженого пакету можна, подавши команду args ().

Наприклад, при запуску широко використовується нами згодом функції отримання лінійної моделі lm () задають параметри:

Args (lm) function (formula, data, subset, weights, na.action, method \u003d "qr", model \u003d TRUE, x \u003d FALSE, y \u003d FALSE, qr \u003d TRUE, singular.ok \u003d TRUE, contrasts \u003d NULL, offset, ...) Якщо ввести команду, що складається тільки з абревіатури функції (наприклад, обчислює межквартільний розмах IQR), то можна отримати вихідний текст функції в кодах мови R:

IQR function (x, na.rm \u003d FALSE) diff (quantile (as.numeric (x), c (0.25, 0.75), na.rm \u003d na.rm, names \u003d FALSE)) Досвідчений користувач може внести зміни в цей код і "перенаправити" виклик стандартної функції на свою версію.

Однак якщо ми захочемо таким же чином подивитися код функції predict (), яка використовується для розрахунку прогнозованих значень лінійної моделі, то отримаємо:

predict function (object, ...) UseMethod ( "predict") В даному випадку predict () являє собою "універсальну" функцію: в залежності від того, об'єкт якої моделі подається на її вхід (lm для лінійної регресії, glm для пуассонівської або логістичної регресії, lme для моделі зі змішаними ефектами і т.д.), актуалізується відповідний метод отримання прогнозованих значень.

Зокрема, ця функція використовується для реалізації таких методів:

methods ( "predict") predict.ar * predict.Arima * predict.arima0 * predict.glm predict.HoltWinters * predict.lm predict.loess * predict.mlm predict.nls * predict.poly predict.ppr * predict.prcomp * predict.princomp * predict.smooth.spline * predict.smooth.spline.fit * predict.StructTS * Non-visible functions are asterisked Цей приклад пов'язаний з ідеями об'єктно-орієнтованого програмування (ООП), що лежать в основі середовища R. Для ООП в стилі S3 метод - це, власне кажучи, функція, яка викликається інший універсальної (generic) функцією, такий, наприклад, як print (), plot () або summary (), в залежності від класу об'єкта, що подається на її вхід. При цьому за "об'єктну орієнтованість" відповідає атрибут class, який забезпечує коректну диспетчеризацію і виклик необхідного методу для даного об'єкта. Так "функція-метод" для отримання прогнозованих значень узагальненої лінійної моделі матиме виклик predict.glm (), при згладжуванні сплайнами - predict.smooth.spline () і т.д. Детальну інформацію про моделі ООП S3 можна отримати в розділі довідки S3Methods, а по більш просунутої моделі S4 - в розділі Methods.

Нарешті, розглянемо деякі найпростіші прийоми збереження результатів роботи, отриманих під час сесії R:

° sink (file \u003d ім'я файлу) - виводить результати виконання наступних команд в режимі реального часу в файл з заданим ім'ям; для припинення дії цієї команди необхідно виконати команду sink () без параметрів;

° save (file \u003d ім'я файлу, список зберігаються об'єктів) - зберігає зазначені об'єкти в довічним файлі XDR-формату, з яким можна працювати в будь-якій операційній системі;

° load (file \u003d ім'я файлу) - відновлює збережені об'єкти в поточній середовищі;

° save.image (file \u003d ім'я файлу) - зберігає всі об'єкти, створені в ході роботи, у вигляді специфічного для R rda-файлу.

Приклад передачі сформованої таблиці з даними в буфер обміну в форматі, сумісному зі структурою листа Excel, був наведений вище в цьому розділі. У розділі 6 буде наведено приклад передачі даних з об'єкта лінійної моделі в файл Word.

Середа R може генерувати піксельний зображення необхідної якості майже для будь-якого дозволу дисплея або пристрої друку, а також зберегти отримані графічні вікна в файлах різного формату. Для кожного пристрою графічного виводу існує функція драйвера: для отримання повного списку драйверів можна ввести команду help (Devices).

Серед графічних пристроїв найбільш вживаними є:

° windows () - графічне вікно Windows (екран, принтер або метафайл).

° png (), jpeg (), bmp (), tiff () - висновок в растровий файл відповідного формату;

° pdf (), postscript () - виведення графічної інформації в файл PDF або PostScript.

По завершенню роботи з пристроєм виведення слід відключити його драйвер командою dev.off (). Існує можливість активізації декількох пристроїв графічного виводу одночасно і перемикання між ними: див., Наприклад, відповідний розділ в книзі Шипунова з співавт. (2012, с. 278).

1. ОПИС МОВИ R

2.1. Типи даних мови R Всі об'єкти даних (а, отже, і змінні) в R можна розділити на наступні класи (тобто типи об'єктів):

° numeric - об'єкти, до яких відносяться цілочисельні (integer) і дійсні числа (double);

° logical - логічні об'єкти, які приймають тільки два значення: FALSE (скорочено F) і TRUE (T);

° character - символьні об'єкти (значення змінних задаються в подвійних, або одинарних лапках).

В R можна створювати імена для різних об'єктів (функцій або змінних) як на латиниці, так і на кирилиці, але слід врахувати, що а (кирилиця) і a (латиниця) - це два різних об'єкта. Крім того, середа R чутлива до регістру, тобто рядкові і великі літери в ній розрізняються. Імена змінних (ідентифікатори) в R повинні починатися з літери (або точки.) І складатися з букв, цифр, знаків точки і підкреслення.

За допомогою команди? ім'я можна перевірити, чи існує змінна або функція з зазначеними ім'ям.

Перевірка на приналежність змінної до певного класу перевіряється функціями is.numeric (імя_об'екта), is.integer (ім'я), is.logical (ім'я), is.character (ім'я), а для перетворення об'єкта в інший тип можна використовувати функції as.numeric (ім'я), as.integer (ім'я), as.logical (ім'я), as.character (ім'я).

В R існує ряд спеціальних об'єктів:

° Inf - позитивна чи негативна нескінченність (зазвичай результат ділення дійсного числа на 0);

° NA - "відсутнє значення" (Not Available);

° NaN - «не число" (Not a Number).

Перевірити, чи стосується змінна до якого-небудь з цих спеціальних типів, можна, відповідно, функціями is.nite (ім'я), is.na (ім'я) і is.nan (ім'я).

Вираз (expression) мови R являє собою поєднання таких елементів, як оператор присвоювання, арифметичні або логічні оператори, імена об'єктів і імена функцій. Результат виконання вираження, як правило, відразу відображається в командному або графічному вікні. Однак при виконанні операції присвоювання результат зберігається у відповідному об'єкті і на екран не виводиться.

В якості оператора присвоєння в R можна використовувати або символ "\u003d", або пару символів "-" (присвоювання певного значення об'єкту зліва) або "-" (присвоювання значення об'єкту праворуч). Хорошим стилем програмування вважається використання "-".

Вирази мови R організовуються в скрипті по рядках. В одному рядку можна ввести кілька команд, розділяючи їх символом ";". Одну команду можна також розташувати на двох (і більше) рядках.

Об'єкти типу numeric можуть становити вираження з використанням традиційних арифметичних операцій + (додавання), - (віднімання), * (множення), / (ділення), ^ (піднесення до степеня),% /% (цілочисельне ділення), %% (залишок від ділення). Операції мають звичайний пріоритет, тобто спочатку виконується піднесення до степеня, потім множення або ділення, потім вже додавання чи віднімання. У виразах можуть використовуватися круглі дужки і операції в них мають найбільший пріоритет.

Логічні вирази можуть складатися з використанням наступних логічних операторів:

° "Так само" \u003d\u003d ° "Не дорівнює"! \u003d ° "Менше" ° "Більше" ° "Менше або дорівнює" \u003d ° "Більше або дорівнює" \u003d ° "Логічне І" & ° "Логічне АБО" | ° "Логічне НЕ"!

ПІД ДЕР Ж К И, АУ ТСОРСІНГОВИЕ усл У ГІ І А ДМІНІСТРІРОВА НИЕ ФОН ДОВ 2 ГРУПА AMICORP СФЕРА ДІЯЛЬНОСТІ КОМПАНІЇ STAND OUT FROM THE CROWD w w w.am icor p. c om ГРУПА AMICORP СФЕРА ДІЯЛЬНОСТІ КОМПАНІЇ ЗМІСТ ПРО КОГО П АН ІІ Н А Ш І УС ЛУГИ Послуги для корпоративних клієнтів Послуги для інституціональних продажів Створення та управління ... »

«Федеральне державне освітній бюджетна установа вищої професійної освіти« Фінансовий університет при Уряді Російської Федерації »Кафедра« Маркетинг »СУЧАСНІ НАПРЯМКИ МАРКЕТИНГУ: ТЕОРІЯ, МЕТОДОЛОГІЯ, ПРАКТИКА КОЛЕКТИВНА МОНОГРАФІЯ Під загальною редакцією С.В. Коропової Москва 2011 Рецензенти: Н.С. Перекаліна - д.е.н., професор, зав. кафедрою «Маркетинг» «МАТИ» - Російський державний технологічний університет ім. К. Е. Ціолковського С.С. Соловйов ... »

«Малко дігітално вестніче за КАФЕ і ЧАЙ РДАКЦІЯ: Гл. Редактор: Весела Д'бова Бр.4 декемврі, 2011 Редактори: Отслабване з чай Теодора Василева Гергана Іванова видаючи: АББ Какво се случва в організму ні при пріемането на чаената напою і як се случва отслабването Най-Сігурні і здравословен начин за намаляване на теглото е редовната консумация на чаша чай. С'ществуват різних думок относно достоверността на тазі теорія, але редіца факти доказват, че єдна чаша чай, с'четана з визначений режим на ... »

«INTERNATIONAL INTERDISCIPLINARY SCIENTIFIC CONFERENCE RADICAL SPACE IN BETWEEN DISCIPLINES RCS 2015 CONFERENCE BOOK OF ABSTRACTS EDITORS Romana Bokovi Miljana Zekovi Slaana Milievi NOVI SAD / SERBIA / SEPTEMBER 21-23 / 2015 Radical Space In Between Disciplines Conference Book of Abstracts Editors: Romana Bokovi Miljana Zekovi Slaana Milievi ISBN: 978-86-7892-733-1 Leyout: Maja Momirov Cover design: Stefan Vuji Published by Department of Architecture and Urbanism, Faculty of Technical Sciences, ... »

«Санкт-Петербурзький державний університет Факультет географії та геоекології Кафедра геоморфології ДИПЛОМНА РОБОТА (випускна кваліфікаційна робота) на тему:« Геоморфологические особливості і палеоклімата арктичних озер (на прикладі озер центрального сектора Російської Арктики) »Виконала: студентка вечірнього відділення Морозова Олена Олександрівна Науковий керівник: д.г.н., проф. Большіянов Дмитро Юрійович к.г.н., ст. викладач Савельєва Лариса Анатоліївна Рецензент: к.г.н., зав .... »

«Миша Apacer M811 - лазерний міні-позашляховик Комплекту. http://news.kosht.com/computer/mouse/2009/11/26/mysh_apacer_m811. пошуковий плагін за цінами дня KOSHT.com для браузера Firefox. Встановіть Один клік. Один кілобайт. Головна Новини Ціни Оголошення Робота Форуми Компанії Мобі Знайти Знайди свою новина Всі новини Кошта ПК і комплектуючі Миші ПК і комплектуючі Миші Всі новини Кошта Кращі ігрові комп'ютери розрахунок On-line на UltraPrice.by Миша Apacer M811 - лазерний міні-позашляховик [... »

«МІНІСТЕРСТВО ОСВІТИ Державна освітня установа вищої професійної освіти МОСКОВСЬКИЙ ДЕРЖАВНИЙ ІНДУСТРІАЛЬНИЙ УНІВЕРСИТЕТ (ГОУ МГИУ)« ІНФОРМАЦІЙНІ СИСТЕМИ І ТЕХНОЛОГІЇ »КАФЕДРА ДИПЛОМНА РОБОТА за фахом« Математичне забезпечення й адміністрування інформаційних систем»Студентки Чумакової Тетяни Андревна на тему« Розрахунок відривних течій за погано обтічним тілом »Керівник роботи: проф., Д. Ф.-м. н. Олексин Володимир Адамович ... »

«R ВОІВ A / 45/3 ОРИГІНАЛ: англійська ДАТА: 15 серпня 2008 р ВСЕСВІТНЯ ОРГАНІЗАЦІЯ ІНТЕЛЕКТУАЛЬНОЇ ВЛАСНОСТІ ЖЕНЕВА АСАМБЛЕЇ ДЕРЖАВ-ЧЛЕНІВ ВОІВ Сорок п'ята серія засідань Женева, 22-30 вересня 2008 р ДОПУСК СПОСТЕРІГАЧІВ Меморандум Генерального директора I. ДОПУСК МІЖНАРОДНИХ неурядових організацій ЯК СПОСТЕРІГАЧІВ 1. На своїх попередніх сесіях Асамблеї взяли ряд принципів, які повинні застосовуватися при направленні міжнародним неурядовим організаціям ... »

«1 Олег Санаєв. КРУГОСВІТКА протяжністю В ЧОТИРИ РОКИ І ВАРТІСТЮ СТО ДОЛАРІВ З термінами подорожі Євгена Олександровича Гвоздьова на яхті Лена, зазначеними в заголовку, все в порядку - чотири роки плюс два тижні 7 липня 1992 року він вийшов з Махачкалінська порту, 19 липня 1996 р повернувся . А ось з грошима - явне перебільшення, вірніше применшення: не можна, звичайно, чотири роки жити на сто доларів - ноги протягнеш. Але, починаючи плавання, Гвоздьов у своєму розпорядженні саме цією сумою. І хоч ніг ... »

«Institute of Management, дослідницького університету Belgorod State National Research University ТЕХНОЛОГІЇ ЗАБЕЗПЕЧЕННЯ TECHNOLOGIES OF БЕЗПЕКИ ФОРМУВАННЯ SECURING THE FORMATION OF КАДРОВОГО РЕЗЕРВУ CANDIDATE POOL ДЕРЖАВНОЇ FOR STATE AND MUNICIPAL І МУНІЦИПАЛЬНОЇ СЛУЖБИ SERVICE Анотація: Summary: У статті розглянуті ...»

«Лідія ЯНОВСЬКА ЗАПИСКИ про Михайла Булгакова МОСКВА« ТЕКСТ »УДК 821.161.1 ББК 84 (2Рос-Рус) 6-44 Я64 ISBN 978-5-7516-0660-2 ISBN 978-985-16-3297-4 (ТОВ« Харвест »)« Текст », 2007« БРАВО, БІС, ЛОМБАРД! » «БРАВО, БІС, ЛОМБАРД!» Не знаю, де нині в Москві знаходиться редакція журналу «Юність». І чи існує ще такий журнал? В середині 70-х ця наймолодша і симпатична редакція в Москві розташовувалася на Садовій-Тріумфальної, поруч з майдан дью Маяковського, займаючи невелику, але надзвичайно затишне ... »

«Додаток 1 ФОРМИ ЗАЯВОК КОНКУРСІВ 2013 року Форма« Т ». Титульний лист заявки в НАН України Назва проекту Номер проекту Тип проекту (а, в, г, д, е) Область знання (код) Код класифікатора НАН України Код ДРНТІ (http://www.grnti.ru/) Пріоритетний напрям розвитку науки, технологій і техніки в Російській Федерації, критична технологія1 Прізвище, ім'я, по батькові керівника Контактний телефон керівника проекту проекту Повна і коротка назва організації, через яку має здійснюватися ... »

«FNI Report 8/2014 Implementing EU Climate and Energy Policies in Poland: From Europeanization to Polonization? Jon Birger Skjrseth Implementing EU Climate and Energy Policies in Poland: From Europeanization to Polonization? Jon Birger Skjrseth [Email protected] December 2014 Copyright © Fridtjof Nansen Institute 2014 Title Implementing EU Climate and Energy Policies in Poland: From Europeanization to Polonization? Publication Type and Number Pages FNI Report 8/2014 57 Author ISBN 978-82-7613-683-8 Jon ... »

«« Вчені замітки тогу »Том 6, № 4, 2015 ISSN 2079-8490 Електронне наукове видання« Вчені замітки тогу »2015 року, Том 6, № 4, С. 173 - 178 Свідоцтво Ел № ФС 77-39676 від 05.05.2010 http : //pnu.edu.ru/ru/ejournal/about/ [Email protected] УДК 316.33 © 2015 Г.І. А. Гареева, д-р соціол. наук, А. Г. Кисельова (Тихоокеанський державний університет, Хабаровськ) СТАНОВЛЕННЯ СИСТЕМ СОЦІАЛЬНОГО СТРАХУВАННЯ Дана стаття аналізує становлення систем соціального страхування і його сучасний стан ... »

«Conference Program Chiang Mai, Thailand November, 2015 APCBSS Asia -Pacific Conference on Business & Social Sciences ICEI International Conference on Education Innovation APCLSE Asia-Pacific Conference on Life Science and Engineering APCBSS Asia -Pacific Conference on Business & Social Sciences ISBN978-986- 90263-0-7 ICEI International Conference on Education Innovation ISBN 978-986-5654-33-7 APCLSE Asia-Pacific Conference on Life Science and Engineering ISBN 978-986-90052-9-6 Content Content ... »

програма курсу

Елементи програмування в R

  • Описові статистики та візуалізація
  • Наприклад, що важливіше: середній чек або типовий чек?

кластерний аналіз

  • Яке завдання вирішується. Розбити групу об'єктів на підгрупи.
  • Приклад завдання. Сегментація сайтів, визначення схожих сайтів.
  • Досліджувані методи. Ієрархічний кластерний аналіз, метод к-середніх, Метод к-медоідов.

Перевірка статистичних гіпотез

  • Яке завдання вирішується. Порівняти дві групи об'єктів.
  • Приклад завдання. A / B тестування поведінки користувача на різних версіях сторінки сайту.
  • Досліджувані методи. Тест для пропорцій, Критерій Стьюдента, Критерій Лівіньо, Критерій Уилкоксона-Манна-Уїтні

Лінійний регресійний аналіз.

  • Приклад завдання. Оцінити, наскільки впали ціни на старі автомобілі після збільшення митних зборів.
  • Досліджувані методи. Відбір змінних, коллинеарность, впливові спостереження, аналіз залишків. Непараметрична регресія (ядерне згладжування). Прогнозування коротких рядів з сезонної складової з допомогою лінійної регресії

прогнозування

  • Яке завдання вирішується. Побудувати прогноз часового ряду
  • Приклад завдання. Спрогнозувати відвідуваність сайту на 6 місяців вперед.
  • Досліджуваний метод. експоненціальне згладжування

Machine Learning (Розпізнавання образів)

  • Приклад завдання. Розпізнати стать і вік у кожного відвідувача сайту
  • Досліджувані методи. Метод k-го найближчого сусіда Дерева класифікації (CART). Випадкові лісу. Gradient boosting machine

Оцінки за курс

Слухачам будуть видані 14 лабораторних робіт. Оцінка за курс виставляється за таким правилом:

  • Відмінно - зараховані всі роботи;
  • Добре - зараховані всі роботи, крім одной ?;
  • Задовільно - зараховані всі роботи, крім двох;
  • Незадовільно - в інших випадках.

Лабораторна робота полягає в тому, що

  • слухачеві видається набір даних і питання;
  • слухач відповідає на питання, підкріплюючи свої твердження таблицями, графіками і скриптом, написаним на мові R;
  • слухач відповідає на додаткові питання.

Приклад питання. Запропонувати параметри, які забезпечать оптимальну роботу алгоритму Random Forest при розпізнаванні марки вина за результатами хімічного аналізу.

Що потрібно знати, щоб слухати курс

Передбачається, що слухачі курсу вже прослухали курс теорії ймовірностей.

література

  • Шипунів, Балдін, Волкова, Коробейников, Назарова, Петров, Суфіянов Наочна статистика. використовуємо R
  • Мастіцкій, Шитіков Статистичний аналіз і візуалізація даних за допомогою R
  • Bishop Pattern Recognition and Machine Learning.
  • James, Witten, Hastie, Tibshirani. An Introduction to Statistical Learning. With Applications in R.
  • Hastie, Tibshirani, Friedman. The Elements of Statistical Learning_Data Mining, Inference, and Prediction 2 + ed
  • Crawley. The R Book.
  • Kabacoff R in Action. Data analysis and graphics with R.

викладачі

список лекцій

Введення в R: базові команди. Медіана, квантилі і квартили. Гістограма. Столбиковая діаграма. Кругова діаграма. Діаграма розсіювання. Матриця діаграм розсіювання. Використання кольору на графіку. Ящики з вусами (Ящиково діаграма). Типове спостереження вибірки: середнє арифметичне, медіана або усеченное середнє. Вибір способу опису типового значення, адекватного аналізованих даних. Логнормальний розподіл. Викиди і екстремальні спостереження.

Ієрархічний кластерний аналіз. Кластер, відстані між об'єктами, відстані між кластерами. Алгоритм побудови дендрограмми. Кам'яниста осип / лікоть. Стандартизація даних. Типові помилки при підготовці даних. Інтерпретація результатів.

Метод к-середніх. Датчики випадкових чисел, зерно датчика. Візуалізація алгоритму методу к-середніх. Методи визначення числа кластерів. Бібліотека NbClust. Кам'яниста осип / лікоть. Багатовимірне шкалювання для візуалізації кластерів.

Перевірка статистичних гіпотез. Гіпотези згоди, однорідності, незалежності, гіпотзи про параметри розподілу.

Перевірка статистичних гіпотез. Помилки першого і другого роду, р-значення і рівень значущості, алгоритм перевірки статистичної гіпотези і інтерпретація результатів. Гіпотеза про нормальність розподілу. Критерії Шапіро-Уілкі і Колмогорова-Смирнова. Несуттєві відхилення від нормальності. Порівняння вибірок. Незалежні і парні вибірки. Вибір між t-критерієм Ст'юдента, критерієм Манна-Уїтні-Вілкоксона і критерієм Муда. Різновиди t-критеріїв Ст'юдента і порівняння дисперсій. Візуалізація при порівняннях. Односторонні і двосторонні тести.

Перевірка статистичних гіпотез. Порівняння вибірок. Незалежні і парні вибірки. Вибір між t-критерієм Ст'юдента, критерієм Манна-Уїтні-Вілкоксона і критерієм Муда. Різновиди t-критеріїв Ст'юдента і порівняння дисперсій. Візуалізація при порівняннях. Односторонні і двосторонні тести. Незалежність. Коефіцієнти кореляції Пірсона, Кендалла і Спірмена, типові помилки при вивченні зв'язку між двома явищами. Візуальна перевірка висновків.

Лінійний регресійний аналіз Модель, інтерпретація оцінок коефіцієнтів, множинний коефіцієнт детермінації. Інтерпретація множинного коефіцієнта детермінації, обмеження на область його застосування. Виявлення найбільш значущих предикторів і оцінка внеску кожного предиктора. Алгоритми коригування побудованих моделей. Колінеарність.

Лінійний регресійний аналіз: прогнозування коротких часових рядів.

Прогнозування на основі регресійної моделі з сезонними індикаторними (фіктивними, структурними) змінними. Тренд, сезонні складові, зміна характеру ряду, викиди. Логарифмування - прийом для перетворення мультипликативной сезонності в аддитивную. Індикаторні змінні. Перенавчання.

Лінійна регресія - аналіз залишків. Порушення модельних обмежень теореми Гаусса-Маркова. Аналіз залишків. Помилка специфікації. Мультиколінеарності, Tolerance і VIF. Перевірка сталості дисперсій залишків. Корекція моделей при наявності відхилень розподілу залишків від нормальності. Відстань Кука і leverage. Статистика Дурбина-Ватсона. Скорочення числа сезонних поправок.

Експоненціальне згладжування Метод Holt "а-Winters" а. Локальний тренд, локальна сезонність.

Термінологія: Machine Learning, Artificial Intelligence, Data Mining і Pattern Recognition.

Метод к-го найближчого сусіда. Спроможність методу. Lazy learning (ліниве навчання). Feature Selection. Крос-валідація. k-fold крос-валідація. Overfitting (Надмірна підгонка). Навчальна та тестова вибірки.

Метод к-го найближчого сусіда Приклади. Визначення числа найближчих сусідів. Таблиця спряженості для визначення якості роботи методу.

Дерева класифікації CART. Геометричне уявлення. Подання у вигляді набору логічних правил. Подання у вигляді дерева. Вузли, батьки і нащадки, кінцеві вузли. Граничні значення. Бібліотека rpart. Заходи чистота вузла (impurity measures). Методи вимірювання чистоти: Джині, ентропія, помилки класифікації. Правила останок навчання дерева. Бібліотека rpart.plot.

Блог "R: Аналіз і візуалізація даних" існує вже більше трьох з половиною років. Кілька місяців тому народилася ідея узагальнити методичні повідомлення, опубліковані тут за весь цей час, у вигляді електронної книги. Автором ідеї, а згодом і співавтором книги, став доктор біологічних наук Володимир Кирилович Шитіков (). Із задоволенням представляємо вам отриманий результат в якості нашого новорічного подарунка.


Методичний посібник " Статистичний аналіз і візуалізація даних за допомогою R"Адресовано переважно студентам, аспірантам, молодим і таким, що відбувся вченим, а також професійним аналітикам, раніше не мали досвіду роботи з R. Наслідуючи традиції блогу, ми намагалися, по можливості, обійтися без зловживання" ритуальними "словообороти, характерними для численних посібників з прикладної статистики , цитування загальновідомих теорем і приведення багатоповерхових розрахункових формул. Акцент робився, в першу чергу, на практичне застосування - на те, щоб читач, керуючись прочитаним, зміг проаналізувати свої дані і викласти результати колегам. Книга включає 9 глав, які охоплюють такі теми:

  • Глава 1: Основні компоненти статистичної середовища R
  • Глава 2: Опис мови R
  • Глава 3: Базові графічні можливості R
  • Глава 4: Описова статистика і підгонка розподілів
  • Глава 5: Класичні методи і критерії статистики
  • Глава 6: Лінійні моделі в дисперсійному аналізі
  • Глава 7: Регресивні моделі залежностей між кількісними змінними
  • Глава 8: Узагальнені, структурні та інші моделі регресії
  • Глава 9: Просторовий аналіз і створення картограм
Крім того, представлені обширна бібліографія та список корисних інтернет-ресурсів по R.

Офіційна поточна версія книги в форматі PDF (~ 11 МБ) доступна для вільного скачування з двох сайтів:

  • Репозиторій GitHub: https://github.com/ranalytics/r-tutorials
  • Сайт Інституту екології Волзького басейну РАН: http://www.ievbras.ru/ecostat/Kiril/R/

На тих же двох ресурсах можна знайти скрипти R-коду і набори даних, необхідні для відтворення розглянутих у книзі прикладів.

Ми будемо вдячні за будь-які ваші зауваження та побажання щодо цієї роботи - відправляйте їх, будь ласка, по електронній пошті rtutorialsbook [ "собака"] gmail.com

Як зазначено вище, книга розповсюджується абсолютно безкоштовно. Однак якщо вона виявиться вам корисною і ви вважаєте доречним віддячити авторів за їх роботу, ви можете перерахувати будь-яку суму, скориставшись наступною кнопкою (всі транзакції виконуються в безпечному режимі через систему електронних платежів

Минулого разу (в листопаді 2014 го, мені дуже соромно, що я так затягнув з продовженням!) Я розповідав про базові можливості мови R. Незважаючи на наявність всіх звичних керуючих конструкцій, таких як цикли і умовні блоки, класичний підхід до обробки даних на основі ітерації далеко не краще рішення, Оскільки цикли в R незвичайно повільні. Тому зараз я розповім, як насправді потрібно працювати з даними, щоб процес обчислень не змушував тебе випивати занадто багато чашок кави в очікуванні результату. Крім того, деякий час я присвячу розповіді про те, як користуватися сучасними засобами візуалізації даних в R. Тому що зручність представлення результатів обробки даних на практиці не менш важливо, ніж самі результати. Почнемо з простого.

векторні операції

Як ми пам'ятаємо, базовим типом в R є зовсім не число, а вектор, і основні арифметичні операції діють на вектори поелементно:

\u003e x<- 1:6; y <- 11:17 > x + y 12 14 16 18 20 22 18\u003e x\u003e 2 FALSE FALSE TRUE TRUE TRUE TRUE\u003e x * y 11 24 39 56 75 96 17\u003e x / y 0.09090909 0.16666667 0.23076923 0.28571429 0.33333333 0.37500000 0.05882353

Тут все досить просто, проте цілком логічно задатися питанням: що ж буде, якщо довжина векторів не збіжиться? Якщо ми, скажімо, напишемо k<- 2, то будет ли x * k соответствовать умножению вектора на число в математическом смысле? Короткий ответ - да. В более общем случае, когда длина векторов не совпадает, меньший вектор просто продолжается повторением:

\u003e z<- c(1, 0.5) > x * z 1 1 3 2 5 3

Приблизно так само йдуть справи і з матрицями.

\u003e x<- matrix(1:4, 2, 2); y <- matrix(rep(2,4), 2, 2) > x * y [, 1] [2] 2 6 4 8\u003e Параметри x / y [, 1] [2] 0.5 1.5 1.0 2.0

При цьому «нормальне», а не поразрядное множення матриць буде виглядати так:

\u003e X% *% y [, 1] [2] 8 8 12 12

Все це, звичайно, дуже добре, проте що ж робити, коли нам потрібно застосовувати свої власні функції до елементів векторів або матриць, тобто як це можна зробити без циклу? Підхід, який використовується в R для вирішення даної проблеми, дуже схожий з тим, до чого ми звикли в функціональних мовах, - все це нагадує функцію map в Python або Haskell.

Корисна функція lapply і її друзі

Перша функція в цьому сімействі - це lapply. Вона дозволяє застосовувати задану функцію до кожного елементу списку або вектора. Причому результатом буде саме список незалежно від типу аргументу. Найпростіший приклад із застосуванням лямбда-функцій:

\u003e q<- lapply(c(1,2,4), function(x) x^2) > q 1 4 16

Якщо функція, яку потрібно застосувати до списку або вектору, вимагає більш одного аргументу, то ці аргументи можна передати через lapply.

\u003e q<- lapply(c(1,2,4), function(x, y) x^2 + y, 3)

Зі списком функція працює аналогічним чином:

\u003e x<- list(a=rnorm(10), b=1:10) > lapply (x, mean)

Тут функція rnorm задає нормальний розподіл (в даному випадку десять нормально розподілених чисел в діапазоні від 0 до 1), а mean обчислює середнє значення. Функція sapply повністю аналогічна функції lapply за винятком того, що вона намагається спростити результат. Наприклад, якщо кожен елемент списку довжини 1, то замість списку повернеться вектор:

\u003e Sapply (c (1,2,4), function (x) x ^ 2) 1. 4 16

Якщо результатом буде список з векторів однакової довжини, то функція поверне матрицю, якщо ж нічого не зрозуміло, то просто список, як lapply.

\u003e x<- list(1:4, 5:8) > sapply (x, function (x) x ^ 2) [, 1] [2] 1 25 4 36 9 49 16 64

Для роботи з матрицями зручно використовувати функцію apply:

\u003e x<- matrix(rnorm(50), 5, 10) > apply (x, 2, mean)\u003e apply (x, 1, sum)

Тут для початку ми створюємо матрицю з п'яти рядків і десяти стовпців, потім спочатку вважаємо середнє по стовпцях, а потім суму в рядках. Для повноти картини слід зазначити, що завдання обчислення середнього і суми по рядках настільки часто зустрічаються, що в R для цього передбачені спеціальні функції rowSums, rowMeans, colSums і colMeans.
Також функцію apply можна застосовувати для багатовимірних масивів:

\u003e arr<- array(rnorm(2 * 2 * 10), c(2, 2, 10)) > apply (arr, c (1,2), mean)

Останній виклик можна замінити на більш зручний для читання варіант:

\u003e RowMeans (arr, dim \u003d 2)

Перейдемо до функції mapply, що представляє собою багатовимірний аналог lapply. Почнемо з простого прикладу, який можна знайти прямо в стандартній документації до R:

\u003e Mapply (rep, 1: 4, 4: 1) 1 1 1 1 2 2 2 3 3 4

Як можна бачити, тут відбувається застосування функції rep до набору параметрів, які генеруються з двох послідовностей. Сама функція rep просто повторює перший аргумент то число раз, яке зазначено в якості другого аргументу. Таким чином, попередній код просто еквівалентний наступному:

\u003e List (rep (1,4), rep (2,3), rep (3,2), rep (4,1))

Іноді буває необхідно застосувати функцію до якоїсь частини масиву. Це можна зробити за допомогою функції tapply. Давай розглянемо наступний приклад:

\u003e x<- c(rnorm(10, 1), runif(10), rnorm(10,2)) > f<- gl(3,10) > tapply (x, f, mean)

Спочатку ми створюємо вектор, частини якого формуються з випадкових величин з різним розподілом, далі ми генеруємо вектор з факторів, який являє собою не що інше, як десять одиниць, потім десять двійок і стільки ж трійок. Потім обчислюємо середнє за відповідними групами. Функція tapply за замовчуванням намагається спростити результат. Цю опцію можна вимкнути, вказавши в якості параметра simplify \u003d FALSE.

\u003e Tapply (x, f, range, simplify \u003d FALSE)

Коли говорять про функції apply, зазвичай також говорять про функції split, яка розбиває вектор на частини, аналогічно tapply. Так, якщо ми викличемо split (x, f) то отримаємо список з трьох векторів. Таким чином, пара lapply / split працює так само, як і tapply зі значенням simplify, рівним FALSE:

\u003e Lapply (split (x, f), mean)

Функція split корисна і за межами роботи з векторами: її також можна використовувати і для роботи з кадрами даних. Розглянемо наступний приклад (я запозичив його з курсу R Programming на Coursera):

\u003e Library (datasets)\u003e head (airquality) Ozone Solar.R Wind Temp Month Day 1 41 190 7.4 67 5 1 2 36 118 8.0 72 5 2 3 12 149 12.6 74 5 3 4 18 313 11.5 62 5 4 5 NA NA 14.3 56 5 5 6 28 NA 14.9 66 5 6\u003e Параметри s<- split(airquality, airquality$Month) > lapply (s, function (x) colMeans (x [, c ( "Ozone", "Solar.R", "Wind")]))

Тут ми працюємо з набором даних, який містить інформацію про стан повітря (вміст озону, сонячна радіація, вітер, температура в градусах Фаренгейта, місяць і день). Ми можемо легко зробити звіт про середньомісячних показниках, використовуючи split і lapply, як показано в коді. Використання sapply, однак, дасть нам результат в більш зручному вигляді:

\u003e Sapply (s, function (x) colMeans (x [, c ( "Ozone", "Solar.R", "Wind")])) 5 6 7 8 9 Ozone NA NA NA NA NA Solar.R NA 190.16667 216.483871 NA 167.4333 Wind 11.62258 10.26667 8.941935 8.793548 10.1800

Як видно, деякі значення величин не визначені (і для цього використовується зарезервоване значення NA). Це означає, що якісь (хоча б одне) значення в колонках Ozone і Solar.R були також не визначені. У цьому сенсі функція colMeans поводиться абсолютно коректно: якщо є якісь невизначені значення, то і середнє, таким чином, не визначено. Проблему можна вирішити, примусивши функцію не враховувати значення NA за допомогою параметра na.rm \u003d TRUE:

\u003e Sapply (s, function (x) colMeans (x [, c ( "Ozone", "Solar.R", "Wind")], na.rm \u003d TRUE)) 5 6 7 8 9 Ozone 23.61538 29.44444 59.115385 59.961538 31.44828 Solar.R 181.29630 190.16667 216.483871 171.857143 167.43333 Wind 11.62258 10.26667 8.941935 8.793548 10.18000

Навіщо потрібна така кількість функцій для вирішення дуже схожих між собою завдань? Думаю, таке питання задасть кожна друга людина, який все це прочитав. Всі ці функції насправді намагаються вирішити проблему обробки векторних даних без використання циклів. Але одна справа - добитися високої швидкості обробки даних і зовсім інша - отримати хоча б частину тієї гнучкості і контролю, яку забезпечують такі керуючі конструкції, як цикли і умовні оператори.

візуалізація даних

Система R незвичайно багата на засоби візуалізації даних. І тут переді мною стоїть непростий вибір - про що взагалі говорити, якщо область так велика. Якщо в разі програмування є якийсь базовий набір функцій, без якого нічого не зробити, то в візуалізації величезна кількість різних завдань і кожна з них (як правило) може бути вирішена декількома способами, кожен з яких має свої плюси і мінуси. Більш того, завжди є безліч опцій і пакетів, що дозволяють вирішувати ці завдання по-різному.
Про стандартні засоби візуалізації в R написано дуже багато, тому тут мені б хотілося розповісти про щось більш цікаве. В останні роки все більш популярним стає пакет ggplot2, Ось про нього і поговоримо.

Для того щоб почати працювати з ggplot2, потрібно встановити бібліотеку за допомогою команди install.package ( "ggplot2"). Далі підключаємо її для використання:

\u003e Library ( "ggplot2")\u003e head (diamonds) carat cut color clarity depth table price xyz 1 0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43 2 0.21 Premium E SI1 59.8 61 326 3.89 3.84 2.31 3 0.23 Good E VS1 56.9 65 327 4.05 4.07 2.31 4 0.29 Premium I VS2 62.4 58 334 4.20 4.23 2.63 5 0.31 Good J SI2 63.3 58 335 4.34 4.35 2.75 6 0.24 Very Good J VVS2 62.8 57 336 3.94 3.96 2.48\u003e head (mtcars) mpg cyl disp hp drat wt qsec vs am gear carb Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1

Дані diamonds і mtcars є частиною пакета ggplot2, і саме з ними ми будемо зараз працювати. З першим все зрозуміло - це дані про діаманти (чистота, колір, вартість та інше), а другий сет - це дані дорожніх тестів (кількість миль на галон, кількість циліндрів ...) автомобілів 1973-1974 років випуску через американського журналу Motor Trends . Більш детальну інформацію про дані (наприклад, розмірність) можна отримати, набравши? Diamonds або? Mtcars.

Для візуалізації в пакеті передбачено багато функцій, з яких для нас зараз буде найбільш важлива qplot. Функція ggplot надає значно більше контролю над процесом. Все, що можна зробити за допомогою qplot, також можна зробити і за допомогою ggplot. Розглянемо це на простому прикладі:

\u003e Qplot (clarity, data \u003d diamonds, fill \u003d cut, geom \u003d "bar")

Того ж самого ефекту можна досягти і функцією ggplot:

\u003e Ggplot (diamonds, aes (clarity, fill \u003d cut)) + geom_bar ()

Однак виклик qplot виглядає простіше. На рис. 1 можна побачити, як будується залежність кількості діамантів з різною якістю огранювання (cut) від чистоти (clarity).

Тепер побудуємо залежність пробігу на одиницю палива автомобілів від їх маси. Отримана точкова діаграма (або діаграма розсіювання scatter plot) представлена
на рис. 2.

\u003e Qplot (wt, mpg, data \u003d mtcars)

Можна також ще додати кольорове відображення показника часу розгону на чверть милі (qsec):

\u003e Qplot (wt, mpg, data \u003d mtcars, color \u003d qsec)

При візуалізації також можна перетворювати дані:

\u003e Qplot (log (wt), mpg - 10, data \u003d mtcars)

У деяких випадках дискретне колірне розподіл виглядає більш репрезентативно, ніж безперервне. Наприклад, якщо ми хочемо відобразити кольором інформацію про кількість циліндрів замість часу розгону, то потрібно вказати, що величина носить дискретний характер (рис. 3):

\u003e Qplot (wt, mpg, data \u003d mtcars, color \u003d factor (cyl))

Також можна змінювати розмір точок, використовуючи, наприклад, size \u003d 3. Якщо ти збираєшся друкувати графіки на чорно-білому принтері, то краще не використовувати кольору, а замість цього міняти форму маркера в залежності від фактора. Це можна зробити, замінивши color \u003d factor (cyl) на shape \u003d factor (cyl).
Тип графіка задається з допомогу параметра geom, і в разі точкових діаграм значення цього параметра дорівнює "points".

Тепер нехай ми хочемо просто побудувати гістограму за кількістю автомобілів з відповідним значенням циліндрів:

\u003e Qplot (factor (cyl), data \u003d mtcars, geom \u003d "bar")\u003e qplot (factor (cyl), data \u003d mtcars, geom \u003d "bar", color \u003d factor (cyl))\u003e qplot (factor (cyl) , data \u003d mtcars, geom \u003d "bar", fill \u003d factor (cyl))

Перший виклик просто малює три гістограми для різних значень циліндрів. Треба сказати, що перша спроба надати колір гистограмме не призведе до очікуваного результату - чорні стовпчики так і будуть чорними, тільки отримають кольоровий контур. А ось останній виклик qplot зробить красиву гистограмму, як показано на рис. 4.

Тут слід внести ясність. Справа в тому, що поточний побудований нами об'єкт не є гистограммой в строгому сенсі слова. Зазвичай під гістограмою розуміють аналогічне відображення для безперервних даних. В англійській мові bar chart (Це те, що ми тільки що зробили) і histogram - це два різних поняття (див. Відповідні статті у Вікіпедії). Тут я, з деякою вагою на душі, буду використовувати слово «гістограма» для обох понять, вважаючи, що сама природа даних говорить за себе.

Якщо повернутися до рис. 1, то ggplot2 надає кілька корисних опцій в позиціонування графіків (за замовчуванням використовується значення position \u003d "stack"):

\u003e Qplot (clarity, data \u003d diamonds, geom \u003d "bar", fill \u003d cut, position \u003d "dodge")\u003e qplot (clarity, data \u003d diamonds, geom \u003d "bar", fill \u003d cut, position \u003d "fill") \u003e qplot (clarity, data \u003d diamonds, geom \u003d "bar", fill \u003d cut, position \u003d "identity")

Перший із запропонованих варіантів будує діаграми поруч, як показано на рис. 5, другий показує частки діамантів різної якості ограновування в загальній кількості діамантів заданої чистоти (рис. 6).

Тепер розглянемо приклад справжньої гістограми:

\u003e Qplot (carat, data \u003d diamonds, geom \u003d "histogram", bandwidth \u003d 0.1)\u003e qplot (carat, data \u003d diamonds, geom \u003d "histogram", bandwidth \u003d 0.05)

Тут параметр bandwidth якраз показує, якої ширини смуга в гістограмі. Гістограма показує, скільки даних доводиться на якийсь діапазон. Результати представлені на рис. 7 і 8.

Іноді, коли нам потрібно побудувати модель (лінійну або, скажімо, поліноміальних), ми можемо зробити це прямо в qplot і побачити результат. Наприклад, ми можемо побудувати графік залежності mpg від маси wt прямо поверх точкової діаграми:

\u003e Qplot (wt, mpg, data \u003d mtcars, geom \u003d c ( "point", "smooth"))

За замовчуванням в якості моделі буде використовуватися локальна поліноміальна регресія (method \u003d "loess"). Результат роботи буде виглядати, як показано на рис. 9, де темно-сіра смуга - це стандартна помилка. Вона відображається за замовчуванням, її відображення можна вимкнути, написавши se \u003d FALSE.

Якщо ж ми хочемо спробувати натягнути лінійну модель на ці дані, то це можна зробити, просто вказавши method \u003d lm (рис. 10).

І наостанок, звичайно ж, потрібно показати, як будувати кругові діаграми:

\u003e t<- ggplot(mtcars, aes(x=factor(1), fill=factor(cyl))) + geom_bar(width=1) > t + coord_polar (theta \u003d "y")

Тут ми скористаємося більш гнучкою функцією ggplot. Це працює так: спочатку ми будуємо графік, що відображає частки автомобілів з різною кількістю циліндрів в загальній масі (рис. 11), потім переводимо графік в полярні координати (рис. 12).

замість висновку

Ось ми і освоїлися з використанням R. Що далі? Зрозуміло, що тут дано базові функції ggplot2 і розглянуті питання, пов'язані з векторизацией. Є кілька хороших книг по R, які варто згадати, і до них, поза всяким сумнівом, варто звертатися частіше, ніж до послуг корпорації дуже нав'язливого добра. По-перше, це книга Нормана Матлоффа (Norman Matloff) The Art of R Programming. Якщо ж у тебе вже є досвід в програмуванні на R, то тобі знадобиться The R Inferno, написана П. Бернсом (Patrick Burns). Класична книга Software for Data Analysis Джона Чемберса (John Chambers) також цілком доречна.

Якщо говорити про візуалізації в R, тобто хороша книга R Graphics Cookbook В. Чанга (Winston Chang). Приклади для ggplot2 в цій статті були взяті з Tutorial: ggplot2. До зустрічі в наступній статті «Аналіз даних і машинне навчання в R»!