SlideShare une entreprise Scribd logo
1  sur  53
Télécharger pour lire hors ligne
Тема 4
Сергей Мастицкий
БГУ, Минск, май 2014
4.1. Общий протокол для
выполнения РАД
Zuur et al. (2010) A protocol for data exploration to avoid common
statistical problems. Methods in Ecology & Evolution 1: 3-14
 Линейная регрессия и ANOVA-подобные методы
 Обобщенные линейные модели (GLM)
 Обобщенные аддитивные модели (GAM)
 Деревья принятия решений
 Анализ выживаемости
 Нейронные сети
 Кластерный анализ
 Метод главных компонент (PCA)
 Многомерное шкалирование (MDS)
 Анализ временных рядов, etc.
Author: Sergey Mastitsky
Мусор на входе – мусор на выходе
В частности, исследователи часто игнорируют
математические допущения, лежащие в основе
тех или иных методов
Author: Sergey Mastitsky
 Для всех Xi
 Yi должны быть распределены нормально
 дисперсия Yi должна быть однородной
 Yi должны быть независимы (=отсутствие
временной или пространственной корреляции)
 Отсутствие наблюдений-выборосов
 Остатки должны распределяться нормально
iii XY   10
Author: Sergey Mastitsky
…анализу данных должно
предшествовать тщательное
изучение их свойств
Разведочный анализ данных (Exploratory data
analysis, EDA) может занимать более 50% всего
времени, затрачиваемого на анализ!
Author: Sergey Mastitsky
 1. Формулировка биологической гипотезы.
Выполнение исследования и сбор данных
 2. Изучение свойст данных:
- Выбросы среди Y и X
- Однородность дисперсии Y
- Нормальность распределения Y и X
- Проблемы с нулевыми значениями Y
- Коллинеарность среди предикторов (X)
- Взаимодействия среди предикторов
- Независимость значений Y
 3. Подгонка статистической модели
Author: Sergey Mastitsky
 Выявление выбросов:
http://r-analytics.blogspot.de/2012/05/blog-post_28.html
 Проверка однородности групповых дисперсий:
http://r-analytics.blogspot.de/2012/06/blog-post.html
 Проверка нормальности распределения:
http://r-analytics.blogspot.de/2012/06/blog-post_14.html
 Выявление избыточного количества нулевых значений:
http://r-analytics.blogspot.de/2012/06/blog-post_22.html
 Выявление коллинеарности:
http://r-analytics.blogspot.de/2012/07/blog-post.html
 Выявление взаимодействий между предикторами:
http://r-analytics.blogspot.de/2012/07/blog-post_13.html
 Выявление автокорреляции
http://r-analytics.blogspot.de/2012/07/blog-post_20.html
Author: Sergey Mastitsky
“…нет более мощного статистического
инструмента, чем хорошо подобранный
график” (Chambers et al., 1983)
Всегда начинайте анализ данных с их
визуалиции при помощи графиков, подходящих
ситуации
Chambers, J. M., Cleveland, W. S., Kleiner, B. and Tukey, P. A. (1983) Graphical Methods for Data
Analysis. Wadsworth & Brooks/Cole
Author: Sergey Mastitsky
 Встроенные примеры:
> demo(graphics)
 R Graph Gallery:
http://rgraphgallery.blogspot.com/
 ggplot2:
http://docs.ggplot2.org/current/
Author: Sergey Mastitsky
4.2. Основы создания
графиков в R: диаграммы
рассеяния
Подробнее см.:
http://r-analytics.blogspot.de/2011/10/r-plot.html
http://r-analytics.blogspot.de/2011/10/r_18.html
http://r-analytics.blogspot.de/2011/10/r_28.html
> LWdata = read.table(
file = "pH_down_experiment.txt",
header = TRUE,
sep = "t")
> names(LWdata)
> head(LWdata)
> LWdata
Author: Sergey Mastitsky
 Функция общего назначения (generic
function)
 Позволяет выполнять тонкую настройку
внешнего вида графиков => имеет очень
много аргументов
 Мы коснемся только самых азов этой
огромной темы
Author: Sergey Mastitsky
> plot(LWdata$Length, LWdata$Weight)
> # или используя интерфейс формулы:
> plot(LWdata$Weight ~ LWdata$Length)
Author: Sergey Mastitsky
10 15 20 25 30 35
0.00.20.40.60.81.01.2
Length
Weight
attach() делает содержимое таблицы
данных видимым в т.н. поисковом
окружении R => нет необходимости в $
> attach(LWdata)
> plot(Weight ~ Length)
Author: Sergey Mastitsky
> plot(log(Weight) ~ log(Length))
> # Изменям заголовки осей:
> plot(log(Weight) ~ log(Length),
xlab = "log transformed Length",
ylab = "log transformed Weight")
Author: Sergey Mastitsky
Author: Sergey Mastitsky
2.5 3.0 3.5
-4-3-2-10
log(Length)
log(Weight)
выброс
> identify(log(Weight) ~ log(Length))
Кликните рядом с
подозрительной точкой,
а затем - ESC…
Author: Sergey Mastitsky
2.5 3.0 3.5
-4-3-2-10
log(Length)
log(Weight)
205
> detach(LWdata)
> LWdata <- LWdata[-205, ]
> attach(LWdata)
> # сработало?
> plot(log(Weight) ~ log(Length))
Author: Sergey Mastitsky
> plot(log(Weight) ~ log(Length),
xlab = "log transformed Length",
ylab = "log transformed Weight",
pch = 2)
Упражнение:
Попробуйте другие значения pch …
Author: Sergey Mastitsky
Author: Sergey Mastitsky
2.5 3.0 3.5
-4-3-2-10
log transformed Length
logtransformedWeight
> plot(log(Weight) ~ log(Length),
xlab = "log transformed Length",
ylab = "log transformed Weight",
pch = 2, cex = 0.6)
Author: Sergey Mastitsky
Author: Sergey Mastitsky
2.5 3.0 3.5
-4-3-2-10
log transformed Length
logtransformedWeight
> plot(log(Weight) ~ log(Length),
xlab = "log transformed Length",
ylab = "log transformed Weight",
pch = 2, cex = 0.6, col = 2)
Также применяется col = "red"
См. colors()
Author: Sergey Mastitsky
Author: Sergey Mastitsky
2.5 3.0 3.5
-4-3-2-10
log transformed Length
logtransformedWeight
> plot(log(Weight) ~ log(Length),
xlab = "log transformed Length",
ylab = "log transformed Weight",
pch = 20, col = 2)
Author: Sergey Mastitsky
Author: Sergey Mastitsky
2.5 3.0 3.5
-4-3-2-10
log transformed Length
logtransformedWeight
> plot(log(Weight) ~ log(Length),
xlab = "log transformed Length",
ylab = "log transformed Weight",
pch = 20,
col = as.numeric(Treatment))
> # вот как это работает:
> as.numeric(Treatment)
Author: Sergey Mastitsky
Author: Sergey Mastitsky
2.5 3.0 3.5
-4-3-2-10
log transformed Length
logtransformedWeight
> plot(log(Weight) ~ log(Length),
xlab = "log transformed Length",
ylab = "log transformed Weight",
pch = 20, col = ifelse(
Treatment == "Control", 1, 2))
условие
да
нет
Author: Sergey Mastitsky
Author: Sergey Mastitsky
2.5 3.0 3.5
-4-3-2-10
log transformed Length
logtransformedWeight
> contr <- lm(log(
Weight[Treatment == "Control"]) ~
log(
Length[Treatment == "Control"]))
> other <- lm(log(
Weight[Treatment != "Control"]) ~
log(
Length[Treatment != "Control"]))
Author: Sergey Mastitsky
> abline(contr, lty = 1, lwd = 2)
> abline(other, lty =5, lwd = 2,
col = "blue")
Author: Sergey Mastitsky
Author: Sergey Mastitsky
2.5 3.0 3.5
-4-3-2-10
log transformed Length
logtransformedWeight
> plot(log(Weight) ~ log(Length),
xlab = "log transformed Length",
ylab = "log transformed Weight",
main = "Length/Weight relationship",
pch = 20, col = ifelse(
Treatment == "Control", 1, 2))
> abline(contr, lty = 1, lwd = 2)
> abline(other, lty = 5, lwd = 2,
col = "blue")
Author: Sergey Mastitsky
! Не забудьте:
detach(LWdata)
Author: Sergey Mastitsky
2.5 3.0 3.5
-4-3-2-10
Length/Weight relationship
log transformed Length
logtransformedWeight
4.3. Основы создания
графиков в R: гистограммы
и диаграммы плотности
вероятности
Подробнее см.:
http://r-analytics.blogspot.de/2011/11/r_06.html
 Дают представление о форме
распределения данных
 В R гистограммы строятся очень просто:
> hist(LWdata$Length)
> hist(LWdata$Weight)
Author: Sergey Mastitsky
Histogram of LWdata$Length
LWdata$Length
Frequency
5 10 15 20 25 30 35
010203040
Histogram of LWdata$Weight
LWdata$Weight
Frequency
0.0 0.2 0.4 0.6 0.8 1.0 1.2
020406080100
Author: Sergey Mastitsky
> hist(LWdata$Length, breaks = 50)
Histogram of LWdata$Length
LWdata$Length
Frequency
10 15 20 25 30 35
0246812
Author: Sergey Mastitsky
 Часто лучше гистограмм отображают
свойства данных
 Кривые плотности рассчитываеются при
помощи функции density()
 Эти кривые потом добавляются к графику
при помощи функции lines()
Author: Sergey Mastitsky
# Расчет кривых для каждой группы:
> attach(LWdata)
> trControl = density(Length[Treatment ==
"Control"])
> trA = density(Length[Treatment == "A"])
> trB = density(Length[Treatment == "B"])
> trC = density(Length[Treatment == "C"])
# Построение графика:
> plot(trControl, main =" ",
ylim = c(0, 0.065), lty = 1)
Author: Sergey Mastitsky
# Добавление кривых:
> lines(trA, col = 2)
> lines(trB, col = 3)
> lines(trC, col = 4)
# Добавление легенды:
> legend("topright",
lty = c(1, 1, 1, 1), col = c(1:4),
legend = c("Control", "A", "B", "C"),
bty = "n")
Author: Sergey Mastitsky
Author: Sergey Mastitsky
0 10 20 30 40
0.000.020.040.06
N = 90 Bandwidth = 2.452
Density
Control
A
B
C
4.4. Основы создания
графиков в R: графики
квантилей
 Позволяют проверить нормальность
распределения данных
 Наблюдаемые значени vs. их ожидаемые
квантили => должна получаться
примерно прямая диагональная линия
 В R:
> qqnorm(LWdata$Length)
> qqnorm(LWdata$Weight)
Author: Sergey Mastitsky
Author: Sergey Mastitsky
-3 -2 -1 0 1 2 3
101520253035
Theoretical Quantiles
SampleQuantiles
-3 -2 -1 0 1 2 3
0.00.20.40.60.81.01.2
Theoretical Quantiles
SampleQuantiles
4.5. Основы создания
графиков в R: диаграммы
размахов
Подробнее см.:
http://r-analytics.blogspot.de/2011/11/r_08.html
Медиана
0.75 квантиль (Q3)
0.75 квантиль (Q1)
ИКР
max в пределах
Q3 + 1.5ИКР
“выброс”
Author: Sergey Mastitsky
min в
пределах
Q1 - 1.5ИКР
> boxplot(Weight/Length ~ Treatment)
Author: Sergey Mastitsky
Control A B C
0.0050.0150.0250.035
4.6. Основы создания
графиков в R: столбиковые
диаграммы
Подробнее см.:
http://r-analytics.blogspot.de/2012/01/r_20.html
 Обобщают информацию о качественных
переменных
 Для создания служит функция barplot() (см.
?barlot)
 Часто требуется кросс-табуляция при помощи
xtabs()для подготовки таблицы
сопряженности:
> xtabs(~ Treatment)
Treatment
Control A B C
90 89 90 92
Author: Sergey Mastitsky
> barplot(xtabs(~ Treatment))
Control A B C
020406080
Author: Sergey Mastitsky

Contenu connexe

Tendances

Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Mikhail Kurnosov
 
Алгоритмы и структуры данных осень 2013 лекция 3
Алгоритмы и структуры данных осень 2013 лекция 3Алгоритмы и структуры данных осень 2013 лекция 3
Алгоритмы и структуры данных осень 2013 лекция 3
Technopark
 
Лекция 3: Бинарный поиск. Связные списки
Лекция 3: Бинарный поиск. Связные спискиЛекция 3: Бинарный поиск. Связные списки
Лекция 3: Бинарный поиск. Связные списки
Mikhail Kurnosov
 
Лекция 9: Графы. Поиск кратчайшего пути в графе
Лекция 9: Графы. Поиск кратчайшего пути в графеЛекция 9: Графы. Поиск кратчайшего пути в графе
Лекция 9: Графы. Поиск кратчайшего пути в графе
Mikhail Kurnosov
 
Лекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графовЛекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графов
Mikhail Kurnosov
 
Лекция 4: Стек. Очередь
Лекция 4: Стек. ОчередьЛекция 4: Стек. Очередь
Лекция 4: Стек. Очередь
Mikhail Kurnosov
 
Java осень 2013 лекция 2
Java осень 2013 лекция 2Java осень 2013 лекция 2
Java осень 2013 лекция 2
Technopark
 
Алгоритмы и структуры данных осень 2013 лекция 7
Алгоритмы и структуры данных осень 2013 лекция 7Алгоритмы и структуры данных осень 2013 лекция 7
Алгоритмы и структуры данных осень 2013 лекция 7
Technopark
 

Tendances (20)

Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...
Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...
Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...
 
Data Mining - lecture 4 - 2014
Data Mining - lecture 4 - 2014Data Mining - lecture 4 - 2014
Data Mining - lecture 4 - 2014
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
 
Лекция 8. Графы. Обходы графов
Лекция 8. Графы. Обходы графовЛекция 8. Графы. Обходы графов
Лекция 8. Графы. Обходы графов
 
Алгоритмы и структуры данных осень 2013 лекция 3
Алгоритмы и структуры данных осень 2013 лекция 3Алгоритмы и структуры данных осень 2013 лекция 3
Алгоритмы и структуры данных осень 2013 лекция 3
 
Лекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмовЛекция 1. Анализ эффективности алгоритмов
Лекция 1. Анализ эффективности алгоритмов
 
Лекция 3: Бинарный поиск. Связные списки
Лекция 3: Бинарный поиск. Связные спискиЛекция 3: Бинарный поиск. Связные списки
Лекция 3: Бинарный поиск. Связные списки
 
Лекция 9: Графы. Поиск кратчайшего пути в графе
Лекция 9: Графы. Поиск кратчайшего пути в графеЛекция 9: Графы. Поиск кратчайшего пути в графе
Лекция 9: Графы. Поиск кратчайшего пути в графе
 
Лекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графовЛекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графов
 
Лекция 4: Стек. Очередь
Лекция 4: Стек. ОчередьЛекция 4: Стек. Очередь
Лекция 4: Стек. Очередь
 
Лекция 4. Стеки и очереди
Лекция 4. Стеки и очередиЛекция 4. Стеки и очереди
Лекция 4. Стеки и очереди
 
Java осень 2013 лекция 2
Java осень 2013 лекция 2Java осень 2013 лекция 2
Java осень 2013 лекция 2
 
Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование
 
Алгоритмы сортировки
Алгоритмы сортировкиАлгоритмы сортировки
Алгоритмы сортировки
 
Лекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировкиЛекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировки
 
Алгоритмы и структуры данных осень 2013 лекция 7
Алгоритмы и структуры данных осень 2013 лекция 7Алгоритмы и структуры данных осень 2013 лекция 7
Алгоритмы и структуры данных осень 2013 лекция 7
 
Лекция 7. Бинарные кучи. Пирамидальная сортировка
Лекция 7. Бинарные кучи. Пирамидальная сортировкаЛекция 7. Бинарные кучи. Пирамидальная сортировка
Лекция 7. Бинарные кучи. Пирамидальная сортировка
 
Лекция о языке программирования Haskell
Лекция о языке программирования HaskellЛекция о языке программирования Haskell
Лекция о языке программирования Haskell
 
Основы MATLAB. Лекция 1.
Основы MATLAB. Лекция 1.Основы MATLAB. Лекция 1.
Основы MATLAB. Лекция 1.
 
Основы NumPy
Основы NumPyОсновы NumPy
Основы NumPy
 

En vedette

Presentation inflation
Presentation inflationPresentation inflation
Presentation inflation
suvarnapstpl
 
Karatayev et al 2008 Aquatic invasions in Belarus
Karatayev et al 2008 Aquatic invasions in BelarusKaratayev et al 2008 Aquatic invasions in Belarus
Karatayev et al 2008 Aquatic invasions in Belarus
Sergey Mastitsky
 
Karataev_et_al._2003_Conchophthirus_emergenece.PDF
Karataev_et_al._2003_Conchophthirus_emergenece.PDFKarataev_et_al._2003_Conchophthirus_emergenece.PDF
Karataev_et_al._2003_Conchophthirus_emergenece.PDF
Sergey Mastitsky
 
Разведочный анализ данных
Разведочный анализ данныхРазведочный анализ данных
Разведочный анализ данных
DEVTYPE
 
Reproducibility with Revolution R Open and the Checkpoint Package
Reproducibility with Revolution R Open and the Checkpoint PackageReproducibility with Revolution R Open and the Checkpoint Package
Reproducibility with Revolution R Open and the Checkpoint Package
Revolution Analytics
 
Presentation on Inflation
Presentation onInflationPresentation onInflation
Presentation on Inflation
VisualBee.com
 

En vedette (18)

Корреляционный анализ в системе R
Корреляционный анализ в системе RКорреляционный анализ в системе R
Корреляционный анализ в системе R
 
Загрузка данных в системе R
Загрузка данных в системе RЗагрузка данных в системе R
Загрузка данных в системе R
 
Реализация классических статистических тестов в системе R
Реализация классических статистических тестов в системе RРеализация классических статистических тестов в системе R
Реализация классических статистических тестов в системе R
 
Presentation inflation
Presentation inflationPresentation inflation
Presentation inflation
 
Karatayev et al 2008 Aquatic invasions in Belarus
Karatayev et al 2008 Aquatic invasions in BelarusKaratayev et al 2008 Aquatic invasions in Belarus
Karatayev et al 2008 Aquatic invasions in Belarus
 
Презентация "Методы и алгоритмы распознавания образов с использованием древо...
Презентация "Методы и алгоритмы распознавания образов  с использованием древо...Презентация "Методы и алгоритмы распознавания образов  с использованием древо...
Презентация "Методы и алгоритмы распознавания образов с использованием древо...
 
mastitsky_article
mastitsky_articlemastitsky_article
mastitsky_article
 
Karataev_et_al._2003_Conchophthirus_emergenece.PDF
Karataev_et_al._2003_Conchophthirus_emergenece.PDFKarataev_et_al._2003_Conchophthirus_emergenece.PDF
Karataev_et_al._2003_Conchophthirus_emergenece.PDF
 
Дисперсионный анализ (ANOVA) в системе R
Дисперсионный анализ (ANOVA) в системе RДисперсионный анализ (ANOVA) в системе R
Дисперсионный анализ (ANOVA) в системе R
 
Разведочный анализ данных
Разведочный анализ данныхРазведочный анализ данных
Разведочный анализ данных
 
Ковариационный анализ (ANСOVA) в системе R
Ковариационный анализ (ANСOVA) в системе RКовариационный анализ (ANСOVA) в системе R
Ковариационный анализ (ANСOVA) в системе R
 
Birthday Effect
Birthday EffectBirthday Effect
Birthday Effect
 
Марк Шафир - Программа курса "Современные методы анализа данных" (НИУ ВШЭ)
Марк Шафир - Программа курса "Современные методы анализа данных" (НИУ ВШЭ)Марк Шафир - Программа курса "Современные методы анализа данных" (НИУ ВШЭ)
Марк Шафир - Программа курса "Современные методы анализа данных" (НИУ ВШЭ)
 
Reproducibility with Revolution R Open and the Checkpoint Package
Reproducibility with Revolution R Open and the Checkpoint PackageReproducibility with Revolution R Open and the Checkpoint Package
Reproducibility with Revolution R Open and the Checkpoint Package
 
Matrix Laboratory (эффективное программирование)
Matrix Laboratory (эффективное программирование)Matrix Laboratory (эффективное программирование)
Matrix Laboratory (эффективное программирование)
 
Введение в язык программирования Питон (Python)
Введение в язык программирования Питон (Python)Введение в язык программирования Питон (Python)
Введение в язык программирования Питон (Python)
 
Presentation on Inflation
Presentation onInflationPresentation onInflation
Presentation on Inflation
 
Inflation ppt
Inflation ppt Inflation ppt
Inflation ppt
 

Similaire à Разведочный анализ данных: создание графиков в системе R

Статический анализ: вокруг Java за 60 минут
Статический анализ: вокруг Java за 60 минутСтатический анализ: вокруг Java за 60 минут
Статический анализ: вокруг Java за 60 минут
Andrey Karpov
 
Лекция 10: Графы. Остовные деревья минимальной стоимости
Лекция 10: Графы. Остовные деревья минимальной стоимостиЛекция 10: Графы. Остовные деревья минимальной стоимости
Лекция 10: Графы. Остовные деревья минимальной стоимости
Mikhail Kurnosov
 
Опыт разработки статического анализатора кода
Опыт разработки статического анализатора кодаОпыт разработки статического анализатора кода
Опыт разработки статического анализатора кода
Andrey Karpov
 
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
Ontico
 
экспертные системы
экспертные системыэкспертные системы
экспертные системы
sokol_klinik
 
Big Data - первые шаги
Big Data - первые шагиBig Data - первые шаги
Big Data - первые шаги
Anton Gorokhov
 
SAMag2007 Conference: PostgreSQL 8.3 presentation
SAMag2007 Conference: PostgreSQL 8.3 presentationSAMag2007 Conference: PostgreSQL 8.3 presentation
SAMag2007 Conference: PostgreSQL 8.3 presentation
Nikolay Samokhvalov
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.
sharikdp
 
TMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry ZaitsevTMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry Zaitsev
Iosif Itkin
 
20100425 model based_testing_kuliamin_lectures01-03
20100425 model based_testing_kuliamin_lectures01-0320100425 model based_testing_kuliamin_lectures01-03
20100425 model based_testing_kuliamin_lectures01-03
Computer Science Club
 

Similaire à Разведочный анализ данных: создание графиков в системе R (20)

!Predictive analytics part_2
!Predictive analytics part_2!Predictive analytics part_2
!Predictive analytics part_2
 
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
 
Статический анализ: вокруг Java за 60 минут
Статический анализ: вокруг Java за 60 минутСтатический анализ: вокруг Java за 60 минут
Статический анализ: вокруг Java за 60 минут
 
Лекция 10: Графы. Остовные деревья минимальной стоимости
Лекция 10: Графы. Остовные деревья минимальной стоимостиЛекция 10: Графы. Остовные деревья минимальной стоимости
Лекция 10: Графы. Остовные деревья минимальной стоимости
 
PascalABC.NET 2015-2016
PascalABC.NET 2015-2016PascalABC.NET 2015-2016
PascalABC.NET 2015-2016
 
Лекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 10. Графы. Остовные деревья минимальной стоимостиЛекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 10. Графы. Остовные деревья минимальной стоимости
 
Опыт разработки статического анализатора кода
Опыт разработки статического анализатора кодаОпыт разработки статического анализатора кода
Опыт разработки статического анализатора кода
 
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
Отказоустойчивая обработка 10M OAuth токенов на Tarantool / Владимир Перепели...
 
!Predictive analytics part_3
!Predictive analytics part_3!Predictive analytics part_3
!Predictive analytics part_3
 
экспертные системы
экспертные системыэкспертные системы
экспертные системы
 
Big Data - первые шаги
Big Data - первые шагиBig Data - первые шаги
Big Data - первые шаги
 
SAMag2007 Conference: PostgreSQL 8.3 presentation
SAMag2007 Conference: PostgreSQL 8.3 presentationSAMag2007 Conference: PostgreSQL 8.3 presentation
SAMag2007 Conference: PostgreSQL 8.3 presentation
 
Razinkov
RazinkovRazinkov
Razinkov
 
Razinkov
RazinkovRazinkov
Razinkov
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.
 
TMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry ZaitsevTMPA-2013 Dmitry Zaitsev
TMPA-2013 Dmitry Zaitsev
 
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
 
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
 
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
Введение в машинное обучение. Кластеризация (Bitworks Software, Кирилл Жданов)
 
20100425 model based_testing_kuliamin_lectures01-03
20100425 model based_testing_kuliamin_lectures01-0320100425 model based_testing_kuliamin_lectures01-03
20100425 model based_testing_kuliamin_lectures01-03
 

Разведочный анализ данных: создание графиков в системе R

  • 2. 4.1. Общий протокол для выполнения РАД Zuur et al. (2010) A protocol for data exploration to avoid common statistical problems. Methods in Ecology & Evolution 1: 3-14
  • 3.  Линейная регрессия и ANOVA-подобные методы  Обобщенные линейные модели (GLM)  Обобщенные аддитивные модели (GAM)  Деревья принятия решений  Анализ выживаемости  Нейронные сети  Кластерный анализ  Метод главных компонент (PCA)  Многомерное шкалирование (MDS)  Анализ временных рядов, etc. Author: Sergey Mastitsky
  • 4. Мусор на входе – мусор на выходе В частности, исследователи часто игнорируют математические допущения, лежащие в основе тех или иных методов Author: Sergey Mastitsky
  • 5.  Для всех Xi  Yi должны быть распределены нормально  дисперсия Yi должна быть однородной  Yi должны быть независимы (=отсутствие временной или пространственной корреляции)  Отсутствие наблюдений-выборосов  Остатки должны распределяться нормально iii XY   10 Author: Sergey Mastitsky
  • 6. …анализу данных должно предшествовать тщательное изучение их свойств Разведочный анализ данных (Exploratory data analysis, EDA) может занимать более 50% всего времени, затрачиваемого на анализ! Author: Sergey Mastitsky
  • 7.  1. Формулировка биологической гипотезы. Выполнение исследования и сбор данных  2. Изучение свойст данных: - Выбросы среди Y и X - Однородность дисперсии Y - Нормальность распределения Y и X - Проблемы с нулевыми значениями Y - Коллинеарность среди предикторов (X) - Взаимодействия среди предикторов - Независимость значений Y  3. Подгонка статистической модели Author: Sergey Mastitsky
  • 8.  Выявление выбросов: http://r-analytics.blogspot.de/2012/05/blog-post_28.html  Проверка однородности групповых дисперсий: http://r-analytics.blogspot.de/2012/06/blog-post.html  Проверка нормальности распределения: http://r-analytics.blogspot.de/2012/06/blog-post_14.html  Выявление избыточного количества нулевых значений: http://r-analytics.blogspot.de/2012/06/blog-post_22.html  Выявление коллинеарности: http://r-analytics.blogspot.de/2012/07/blog-post.html  Выявление взаимодействий между предикторами: http://r-analytics.blogspot.de/2012/07/blog-post_13.html  Выявление автокорреляции http://r-analytics.blogspot.de/2012/07/blog-post_20.html Author: Sergey Mastitsky
  • 9. “…нет более мощного статистического инструмента, чем хорошо подобранный график” (Chambers et al., 1983) Всегда начинайте анализ данных с их визуалиции при помощи графиков, подходящих ситуации Chambers, J. M., Cleveland, W. S., Kleiner, B. and Tukey, P. A. (1983) Graphical Methods for Data Analysis. Wadsworth & Brooks/Cole Author: Sergey Mastitsky
  • 10.  Встроенные примеры: > demo(graphics)  R Graph Gallery: http://rgraphgallery.blogspot.com/  ggplot2: http://docs.ggplot2.org/current/ Author: Sergey Mastitsky
  • 11. 4.2. Основы создания графиков в R: диаграммы рассеяния Подробнее см.: http://r-analytics.blogspot.de/2011/10/r-plot.html http://r-analytics.blogspot.de/2011/10/r_18.html http://r-analytics.blogspot.de/2011/10/r_28.html
  • 12. > LWdata = read.table( file = "pH_down_experiment.txt", header = TRUE, sep = "t") > names(LWdata) > head(LWdata) > LWdata Author: Sergey Mastitsky
  • 13.  Функция общего назначения (generic function)  Позволяет выполнять тонкую настройку внешнего вида графиков => имеет очень много аргументов  Мы коснемся только самых азов этой огромной темы Author: Sergey Mastitsky
  • 14. > plot(LWdata$Length, LWdata$Weight) > # или используя интерфейс формулы: > plot(LWdata$Weight ~ LWdata$Length) Author: Sergey Mastitsky 10 15 20 25 30 35 0.00.20.40.60.81.01.2 Length Weight
  • 15. attach() делает содержимое таблицы данных видимым в т.н. поисковом окружении R => нет необходимости в $ > attach(LWdata) > plot(Weight ~ Length) Author: Sergey Mastitsky
  • 16. > plot(log(Weight) ~ log(Length)) > # Изменям заголовки осей: > plot(log(Weight) ~ log(Length), xlab = "log transformed Length", ylab = "log transformed Weight") Author: Sergey Mastitsky
  • 17. Author: Sergey Mastitsky 2.5 3.0 3.5 -4-3-2-10 log(Length) log(Weight) выброс
  • 18. > identify(log(Weight) ~ log(Length)) Кликните рядом с подозрительной точкой, а затем - ESC… Author: Sergey Mastitsky 2.5 3.0 3.5 -4-3-2-10 log(Length) log(Weight) 205
  • 19. > detach(LWdata) > LWdata <- LWdata[-205, ] > attach(LWdata) > # сработало? > plot(log(Weight) ~ log(Length)) Author: Sergey Mastitsky
  • 20. > plot(log(Weight) ~ log(Length), xlab = "log transformed Length", ylab = "log transformed Weight", pch = 2) Упражнение: Попробуйте другие значения pch … Author: Sergey Mastitsky
  • 21. Author: Sergey Mastitsky 2.5 3.0 3.5 -4-3-2-10 log transformed Length logtransformedWeight
  • 22. > plot(log(Weight) ~ log(Length), xlab = "log transformed Length", ylab = "log transformed Weight", pch = 2, cex = 0.6) Author: Sergey Mastitsky
  • 23. Author: Sergey Mastitsky 2.5 3.0 3.5 -4-3-2-10 log transformed Length logtransformedWeight
  • 24. > plot(log(Weight) ~ log(Length), xlab = "log transformed Length", ylab = "log transformed Weight", pch = 2, cex = 0.6, col = 2) Также применяется col = "red" См. colors() Author: Sergey Mastitsky
  • 25. Author: Sergey Mastitsky 2.5 3.0 3.5 -4-3-2-10 log transformed Length logtransformedWeight
  • 26. > plot(log(Weight) ~ log(Length), xlab = "log transformed Length", ylab = "log transformed Weight", pch = 20, col = 2) Author: Sergey Mastitsky
  • 27. Author: Sergey Mastitsky 2.5 3.0 3.5 -4-3-2-10 log transformed Length logtransformedWeight
  • 28. > plot(log(Weight) ~ log(Length), xlab = "log transformed Length", ylab = "log transformed Weight", pch = 20, col = as.numeric(Treatment)) > # вот как это работает: > as.numeric(Treatment) Author: Sergey Mastitsky
  • 29. Author: Sergey Mastitsky 2.5 3.0 3.5 -4-3-2-10 log transformed Length logtransformedWeight
  • 30. > plot(log(Weight) ~ log(Length), xlab = "log transformed Length", ylab = "log transformed Weight", pch = 20, col = ifelse( Treatment == "Control", 1, 2)) условие да нет Author: Sergey Mastitsky
  • 31. Author: Sergey Mastitsky 2.5 3.0 3.5 -4-3-2-10 log transformed Length logtransformedWeight
  • 32. > contr <- lm(log( Weight[Treatment == "Control"]) ~ log( Length[Treatment == "Control"])) > other <- lm(log( Weight[Treatment != "Control"]) ~ log( Length[Treatment != "Control"])) Author: Sergey Mastitsky
  • 33. > abline(contr, lty = 1, lwd = 2) > abline(other, lty =5, lwd = 2, col = "blue") Author: Sergey Mastitsky
  • 34. Author: Sergey Mastitsky 2.5 3.0 3.5 -4-3-2-10 log transformed Length logtransformedWeight
  • 35. > plot(log(Weight) ~ log(Length), xlab = "log transformed Length", ylab = "log transformed Weight", main = "Length/Weight relationship", pch = 20, col = ifelse( Treatment == "Control", 1, 2)) > abline(contr, lty = 1, lwd = 2) > abline(other, lty = 5, lwd = 2, col = "blue") Author: Sergey Mastitsky
  • 36. ! Не забудьте: detach(LWdata) Author: Sergey Mastitsky 2.5 3.0 3.5 -4-3-2-10 Length/Weight relationship log transformed Length logtransformedWeight
  • 37. 4.3. Основы создания графиков в R: гистограммы и диаграммы плотности вероятности Подробнее см.: http://r-analytics.blogspot.de/2011/11/r_06.html
  • 38.  Дают представление о форме распределения данных  В R гистограммы строятся очень просто: > hist(LWdata$Length) > hist(LWdata$Weight) Author: Sergey Mastitsky
  • 39. Histogram of LWdata$Length LWdata$Length Frequency 5 10 15 20 25 30 35 010203040 Histogram of LWdata$Weight LWdata$Weight Frequency 0.0 0.2 0.4 0.6 0.8 1.0 1.2 020406080100 Author: Sergey Mastitsky
  • 40. > hist(LWdata$Length, breaks = 50) Histogram of LWdata$Length LWdata$Length Frequency 10 15 20 25 30 35 0246812 Author: Sergey Mastitsky
  • 41.  Часто лучше гистограмм отображают свойства данных  Кривые плотности рассчитываеются при помощи функции density()  Эти кривые потом добавляются к графику при помощи функции lines() Author: Sergey Mastitsky
  • 42. # Расчет кривых для каждой группы: > attach(LWdata) > trControl = density(Length[Treatment == "Control"]) > trA = density(Length[Treatment == "A"]) > trB = density(Length[Treatment == "B"]) > trC = density(Length[Treatment == "C"]) # Построение графика: > plot(trControl, main =" ", ylim = c(0, 0.065), lty = 1) Author: Sergey Mastitsky
  • 43. # Добавление кривых: > lines(trA, col = 2) > lines(trB, col = 3) > lines(trC, col = 4) # Добавление легенды: > legend("topright", lty = c(1, 1, 1, 1), col = c(1:4), legend = c("Control", "A", "B", "C"), bty = "n") Author: Sergey Mastitsky
  • 44. Author: Sergey Mastitsky 0 10 20 30 40 0.000.020.040.06 N = 90 Bandwidth = 2.452 Density Control A B C
  • 45. 4.4. Основы создания графиков в R: графики квантилей
  • 46.  Позволяют проверить нормальность распределения данных  Наблюдаемые значени vs. их ожидаемые квантили => должна получаться примерно прямая диагональная линия  В R: > qqnorm(LWdata$Length) > qqnorm(LWdata$Weight) Author: Sergey Mastitsky
  • 47. Author: Sergey Mastitsky -3 -2 -1 0 1 2 3 101520253035 Theoretical Quantiles SampleQuantiles -3 -2 -1 0 1 2 3 0.00.20.40.60.81.01.2 Theoretical Quantiles SampleQuantiles
  • 48. 4.5. Основы создания графиков в R: диаграммы размахов Подробнее см.: http://r-analytics.blogspot.de/2011/11/r_08.html
  • 49. Медиана 0.75 квантиль (Q3) 0.75 квантиль (Q1) ИКР max в пределах Q3 + 1.5ИКР “выброс” Author: Sergey Mastitsky min в пределах Q1 - 1.5ИКР
  • 50. > boxplot(Weight/Length ~ Treatment) Author: Sergey Mastitsky Control A B C 0.0050.0150.0250.035
  • 51. 4.6. Основы создания графиков в R: столбиковые диаграммы Подробнее см.: http://r-analytics.blogspot.de/2012/01/r_20.html
  • 52.  Обобщают информацию о качественных переменных  Для создания служит функция barplot() (см. ?barlot)  Часто требуется кросс-табуляция при помощи xtabs()для подготовки таблицы сопряженности: > xtabs(~ Treatment) Treatment Control A B C 90 89 90 92 Author: Sergey Mastitsky
  • 53. > barplot(xtabs(~ Treatment)) Control A B C 020406080 Author: Sergey Mastitsky