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

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

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

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

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

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

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

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

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

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

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

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

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

  • Приклад завдання. Розпізнати стать та вік у кожного відвідувача сайту
  • Досліджувані методи. Метод найближчого сусіда Дерева класифікації (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.230766667 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.
Також функцію apply можна використовувати для багатовимірних масивів:

> 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 5 3 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 190.16667 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 58 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 xyz 1 0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43 2 0.21 Premium E SI1 59 3 6 3 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: Основні компоненти статистичного середовища
  • Розділ 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

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

«СТАТИСТИЧНИЙ АНАЛІЗ І ВІЗУАЛІЗАЦІЯ ДАНИХ ЗА ДОПОМОГОЮ 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 осередків персональної ЕОМ "Пром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]Ми також будемо вдячні за будь-які інші Ваші зауваження та побажання щодо цієї роботи.

–  –  –

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

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

Utils "Рекомендовані" пакети Функції різних процедур бутстрепу та "складного ножа" boot Різні алгоритми неієрархічної класифікації та розпізнавання class Алгоритми поділу та ієрархічної кластеризації cluster Аналіз та перевірка кодів R codetools Читання та запис файлів у різних форматах (DBTA, STA 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 Процедури аналізу та заповнення розрахунку вибіркових моментів nortest Критерії при перевірці гіпотези про нормальний розподіл outliers Аналіз викидів у даних pastecs Аналіз просторових і часових рядів в екології pls Регресія на головні компоненти pwr Оцінка статистичної потужності гіпотез декількома змінними scales Підбір колірних шкал sem Моделі структурних рівнянь semPlot Візуалізація структурних зв'язків sm Оцінка щільності розподілів та методи згладжування sp Класи та методи доступу до просторових даних spatstat Методи просторової статистики підбір моделей spdep Просторові залежності: геостатистичні методи і моделювання stargazer Виведення інформації про статистичні моделі в різних форматах vcd встановлений у 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], charTR.)

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

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

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

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

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

Args(lm) function (formula, data, subset, weights, na.action, method = "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 IN BETWEEN DISCIPLINES RCS 2015 CONFERENCE BOOK OF ABSTRACTS EDITORS Romana Bokovi Miljana Zekovi Slaana Milievi

























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.

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

« 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 978 )"Текст", 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-39676 від 05.05.2010 http://pnu.edu.ru/ru/ejournal/about/ [email protected]УДК 316.33 © 2015 р.І. А. Гарєєва, д-р соціол. наук, А. Г. Кисельова (Тихоокеанський державний університет, Хабаровськ) СТАНОВЛЕННЯ СИСТЕМ СОЦІАЛЬНОГО СТРАХУВАННЯ Ця стаття аналізує становлення систем соціального страхування та його сучасний стан...»

« Конференція 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 ISFN 978-986-5654-33-7 Conference on Life Science and Engineering ISBN 978-986-90052-9-6 Content Content...»

Технології