Поздняков Иван
Выпускник МГУ (2014) и Вышки (2016)
Работаю дата-аналитиком
Cтарший преподаватель Школы Лингвистики НИУ ВШЭ
Cognitive neuroscience, Digital Literary Studies
Для тех, кто без опыта программирования: R с нуля
Для тех, кто умеет в MATLAB, python: R-way
Для тех, кто уже знает R: продвинутые фишки R
И все это в едином потоке безумия
Много практики (в т.ч. на данных)
Задания разного уровня
Да, будет тяжело
Зато интересно!
Создание функций
Функции семейства apply()
Работа с пакетами
Основы tidyverse
Текстовые:
.csv = comma separated values
.tsv = tab separated values
.txt, .dat и так далее
Бинарные:
apply()
Студент | До курса по R | После курса по R |
---|---|---|
Маша | 70 | 63 |
Рома | 80 | 74 |
Антонина | 86 | 71 |
Студент | Время измерения | Вес (кг) |
---|---|---|
Маша | До курса по R | 70 |
Рома | До курса по R | 80 |
Антонина | До курса по R | 86 |
Маша | После курса по R | 63 |
Рома | После курса по R | 74 |
Антонина | После курса по R | 71 |
Слои (Layers):
Data
Mapping (aes)
Statistical transformation (stat)
Geometric object (geom)
Position adjustment (position)
На одном графике можно соединять несколько слоев!
Кроме слоев, у графика есть:
scale
Coordinate system (coord)
Faceting (facet)
theme
“…In brief, the grammar tells us that a statistical graphic is a mapping from data to aesthetic attributes (colour, shape, size) of geometric objects (points, lines, bars). The plot may also contain statistical transformations of the data and is drawn on a specific coordinate system. Facetting can be used to generate the same plot for different subsets of the dataset…” (Hadley Wickham, “ggplot2: Elegant Graphics for Data Analysis”, 2016)
library(tidyverse)
got <- read_csv("data/character-deaths.csv")
ggplot(data = got)
ggplot(data = got) +
geom_bar(aes(x = "", fill = as.factor(Gender)))
ggplot(data = got) +
geom_bar(aes(x = "", fill = as.factor(Gender)))+
coord_polar(theta = "y")
ggplot(data = got) +
geom_bar(aes(x = "", fill = as.factor(Gender)))+
coord_polar(theta = "y")+
theme_void()
Мета-анализ связи количества лет обучения и интеллект: “How Much Does Education Improve Intelligence? A Meta-Analysis” (Ritchie, Tucker-Drob, 2018)
Данные и скрипт находятся в открытом доступе: https://osf.io/r8a24/
cowplot
- for publications
Dynamic visualization
Using d3.js
library(plotly)
data(diamonds)
diamonds <- diamonds[sample(nrow(diamonds), 1000),]
gg <- ggplot(data = diamonds)+
geom_point(aes(x = carat, y = price, colour = price), alpha = 0.1)
ggplotly(gg)
plot_ly(diamonds, x = ~carat, y = ~price, color = ~carat, size = ~carat)
http://gallery.htmlwidgets.org/
leaflet
listviewer
wordcloud2
networkD3
Принятое решение Реальность | \(H_0\) верна | \(H_1\) верна |
---|---|---|
Не отклоняем \(H_0\) | Верный пропуск | Ошибка 2 рода (type II error) |
Отклоняем \(H_0\) | Ошибка 1 рода (type I error) | Верное попадание |
\[t = \frac{\overline{x} - \mu} {s_x / \sqrt{N}} \]
t_normal_pdf_gg <- tibble(x = seq(-3, 3, .01),
t_5 = dt(x, df = 3),
t_15 = dt(x, df = 10),
t_100 = dt(x, df = 100),
normal = dnorm(x)) %>%
pivot_longer(cols = -x, values_to = 'pdf', names_to = 'distribution') %>%
ggplot(aes(x = x, y = pdf, colour = distribution))+
geom_line()+
theme_light()
t_normal_pdf_gg
t-тест | Зависимый (парный) | Независимый |
---|---|---|
Эксперимент | Within-subject | Between-subject |
\[t = \frac{\overline{x} - \mu} {s_x / \sqrt{N}} = \frac{\overline{d} - (\mu_1 - \mu_2)} {s_d / \sqrt{N}} = \frac{\overline{d} - 0} {s_d / \sqrt{N}} = \frac{\overline{d}} {s_d / \sqrt{N}}\]
объединенное стандартное отклонение (pooled standard deviation):
\[s^2_{pool} = \frac {(n_1-1)s^2_1 + (n_2-1)s^2_2} {(n_1 - 1) + (n_2 -1)}\]
Стандартная ошибка разницы средних:
\[se_{m_1 - m_2} = \sqrt {(s^2_{pool}) (\frac {1} {n_1} + \frac {1}{n_2} )}\]
t-статистика:
\[t = \frac {(m_1 - m_2) - (\mu_1 - \mu_2)} {se_{m_1 - m_2}} = \frac {(m_1 - m_2) - 0} {se_{m_1 - m_2}} = \frac {m_1 - m_2} {se_{m_1 - m_2}}\]
\[\sigma_{xy} = cov(x, y) = \frac{\sum_{i = 1}^n(x_i - \overline{x})(y_i - \overline{y})}{n}\]
\[\hat{\sigma}_{xy} = \frac{\sum_{i = 1}^n(x_i - \overline{x})(y_i - \overline{y})}{n-1}\]
Корреляция — это ковариация, нормированная на стандартное отклонение обоих переменных.
Коэффициент корреляции Пирсона:
\[\rho_{xy} = \frac{\sigma_{xy}}{\sigma_x \sigma_y} = \frac{\sum_{i = 1}^n(x_i - \overline{x})(y_i - \overline{y})}{\sqrt{\sum_{i = 1}^n(x_i - \overline{x})^2}\sqrt{\sum_{i = 1}^n(y_i - \overline{y})^2}} = \frac{1}{n}\sum_{i = 1}^n z_{x,i} z_{y, i}\]