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

Головна / Усунення несправностей

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

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

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

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

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

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

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

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

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

Ця робота поширюється в рамках ліцензії

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

Використання – На тих самих умовах 4.0 Всесвітня». Відповідно до цієї ліцензії, Ви можете вільно копіювати, розповсюджувати та видозмінювати цей твір за умови точної вказівки його авторів та джерела. При зміні цього твору або використанні його у своїх роботах, Ви можете поширювати результат тільки за такою ж ліцензією. Забороняється використовувати цю роботу з комерційною метою без узгодження з авторами. Детальніша інформація про ліцензію представлена ​​на сайті 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

РОЗПОДІЛ

–  –  –

ПЕРЕДМОВА

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

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

Один із авторів із розчуленням згадує кінець 60-х років і свою першу програму розрахунку парної кореляції, яка набиралася металевими штирьками на "операційному полі" зі 150 осередків персональної ЕОМ "Промінь-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]Ми також будемо вдячні за будь-які інші Ваші зауваження та побажання щодо цієї роботи.

–  –  –

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, включаючи, зрозуміло, весь "джентльменський набір": лінійні та узагальнені лінійні моделі, нелінійні регресійні моделі, планування експерименту, аналіз часових рядів, класичні параметричні та непараметричні тести, байєсівська статистика, кластерний аналіз та методи згладжування. За допомогою потужних засобів візуалізації результати аналізу можна узагальнювати у вигляді різноманітних графіків та діаграм. Крім традиційної статистики, розроблений функціонал включає великий набір алгоритмів чисельної математики, методів оптимізації, розв'язання диференціальних рівнянь, розпізнавання образів та ін. ГІС- та 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="a4") # options(editor="notepad") # options(pager="internal") # встановити тип відображення довідкової інформації # options(help_type="text") options(help_type="html") # встановити місце розташування локальної бібліотеки #.Library.site - file.path(chartr("\\", "/", R.home() ), "site-library") # При завантаженні середовища запустити меню R Commander # Поставити знаки «#», якщо запуск Rcmdr не потрібен local(( old - getOption("defaultPackages") options(defaultPackages = c(old, "Rcmdr") )) )) # Визначити дзеркало CRAN local((r - getOption("repos") r["CRAN"] - "http://cran.gis-lab" options(repos=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="function") – список усіх функцій із комбінацією foo;

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

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

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

install.packages("Rcmdr", dependencies=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 = 0.467), рівень досягнутої статистичної значущості (p-value 2.2e-16) і 95%-ні довірчі межі.

–  –  –

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

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

–  –  –

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

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

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

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

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

installed.packages(priority = "base") installed.packages(priority = "recommended") # Отримання повного списку пакетів packlist - rownames(installed.packages()) # Виведення інформації в буфер обміну у форматі для Excel write.table(packlist ,"clipboard",sep="\t", col.names=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)

–  –  –

інші зареєстровані пакети:

Vegan_2.0-2 permute_0.6-3

loaded via a namespace (і не 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 Інформаційна підтримка, адміністрування та документування tool виведення, архівування та ін.

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

sem(model, data=PoliticalDemocracy) Помилка: не можу знайти функцію "sem" library(lavaan) Помилка в library(lavaan) : немає пакета під назвою "lavaan" Наступна функція, представлена ​​K. 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], charac.)

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

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

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

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

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

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

IQR function (x, na.rm = FALSE) diff(quantile(as.numeric(x), c(0.25, 0.75), na.rm = na.rm, names = 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 = ім'я файлу) – виводить результати виконання наступних команд у режимі реального часу у файл із заданим ім'ям; для припинення дії команди необхідно виконати команду sink() без параметрів;

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

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

° save.image(file= ім'я файлу) – зберігає всі об'єкти, створені під час роботи, у вигляді специфічного для 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 можна використовувати або символ “=“, або пару символів “-“ (привласнення певного значення об'єкту зліва) або “-“ (привласнення значення об'єкту праворуч). Хорошим стилем програмування вважається використання “-“.

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

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

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

° "Рівне" == ° "Не дорівнює" != ° "Менше" ° "Більше" ° "Менше або одно" = ° "Більше чи одно" = ° "Логічна І" & ° "Логічна АБО" | ° "Логічне НЕ"!

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

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

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

«INTERNATIONAL INTERDISCIPLINARY SCIENTIFIC CONFERENCE RADICAL SPACE 2010 Milievi ISBN: 978-86-7892-733-1 Leyout: Maja Momirov Ковер 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 липня 1999 р. він вийшов з 9 липня 1999 року. . А от із грошима – явне перебільшення, вірніше применшення: не можна, звичайно, чотири роки жити на сто доларів – ноги простягнеш. Але, починаючи плавання, Гвоздєв мав у своєму розпорядженні саме цю суму. І хоч ніг...»

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

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

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

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

«Вчені нотатки ТОГУ» Том 6, № 4, 2015 ISSN 2079-8490 Електронне наукове видання «Вчені нотатки ТОГУ» 2015, Том 6, № 4, С. 173 – 178 Свідоцтво Ел № ФС 77-396. ://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 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.

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

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

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

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

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

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

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

> x<- matrix(1:4, 2, 2); y <- matrix(rep(2,4), 2, 2) >x * y [,1] [,2] 2 6 4 8 > x / y [,1] [,2] 0.5 1.5 1.0 2.0

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

> x %*% y [,1] [,2] 8 8 12 12

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

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

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

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

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

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

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

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

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

> sapply(c(1,2,4), function(x) x^2) 1 4 16

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

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

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

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

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

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

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

> rowMeans(arr, dim = 2)

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

> mapply(rep, 1:4, 4:1) 1 1 1 1 2 2 2 3 3 4

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

> list(rep(1,4), rep(2,3), rep(3,2), rep(4,1))

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

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

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

> tapply(x, f, range, simplify=FALSE)

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

> lapply(split(x, f), mean)

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

> library(datasets) > head(airquality) Ozon 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 7 4 5 3 4 56 5 5 6 28 NA 14.9 66 5 6 > s<- split(airquality, airquality$Month) >lapply(s, function(x) colMeans(x[, c("Ozone", "Solar.R", "Wind")]))

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

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

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

> sapply(s, function(x) colMeans(x[, c("Ozone", "Solar.R", "Wind")], na.rm=TRUE)) 5 6 7 8 9 Ozone 23.61538 29.44444 59.115385 48 Solar.R 181.29630 190.16667 216.483871 171.857143 167.43333 Wind 11.62258 10.26667 8.941935 8.793548 10.

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

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

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

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

> library("ggplot2") > head(diamonds) carat cut color clarity depth table price x y z 1 0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43 2 0.21 Premium E SI1 59.2 6.3 6 3. 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 > 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.4

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

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

> qplot(clarity, data=diamonds, fill=cut, geom="bar")

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

> ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar()

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

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

> qplot(wt, mpg, data=mtcars)

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

> qplot(wt, mpg, data=mtcars, color=qsec)

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

> qplot(log(wt), mpg - 10, data=mtcars)

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

> qplot(wt, mpg, data=mtcars, color=factor(cyl))

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

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

> qplot(factor(cyl), data=mtcars, geom="bar") > qplot(factor(cyl), data=mtcars, geom="bar", color=factor(cyl)) > qplot(factor(cyl)) , data=mtcars, geom="bar", fill=factor(cyl))

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

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

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

> qplot(clarity, data=diamonds, geom="bar", fill=cut, position="dodge") > qplot(clarity, data=diamonds, geom="bar", fill=cut, position="fill") > qplot(clarity, data=diamonds, geom="bar", fill=cut, position="identity")

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

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

> qplot(carat, data=diamonds, geom="histogram", bandwidth=0.1) > qplot(carat, data=diamonds, geom="histogram", bandwidth=0.05)

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

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

> qplot(wt, mpg, data=mtcars, geom=c("point", "smooth"))

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

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

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

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

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

Замість ув'язнення

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

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

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


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

  • Глава 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

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

© 2022 androidas.ru - Все про Android