library(tidyverse)
x = rnorm(10)
y = rnorm(10)
ggplot(mapping = aes(x = x, y = y)) + geom_point(size = 3) + theme_bw() + theme(text = element_text(size = 20))
[1] 0.4784603
и его применение в биоинформатике
Лекция 9
Анастасия Жарикова
8 ноября 2024
Величина, принимающая в ходе эксперимента то или иное значение
Численные исходы некого случайного эксперимента
Точно сказать, какое это будет значение, мы не можем
Число, выпавшее на шестигранном кубике
Пол ребенка
Время прибытия автобуса
Время работы лампочки
Количество клиентов в день
Число бракованных товаров в партии
Бывают дискретными и непрырывными
Принимает не более, чем счетное множество значений
Распределение можно задавать при помощи таблицы: каждому значению сопоставлена его вероятность.
В сумме вероятности равны единице
Есть 2 случайные величины
Насколько согласовано их изменение?
Мера совместной изменчивости двух случайных величин
Большие значения одной переменной в основном соответствуют большим значениям в другой переменной, аналогично для меньших значений
Не нормированная величина
Зависит от величин переменных
Сложно интерпретировать
Можно отнормировать
Получим корреляцию Пирсона
Безразмерная величина
Изменяется от -1 до 1
Можно применять не только к нормально распределенным данным
Из этого не следует независимость переменных
Нельзя рассуждать о причинно-следственной связи
Корреляция 0,66%
Корреляция 0,99%
Если зависимость не линейная, но монотонная?
Корреляция Спирмена
Считаем корреляцию между рангами наблюдений
Пусть виды ирисов будут “до” обработки супер-средством и “после”.
Влияет ли супер-средство на длину лепестков ирисов?
df <- iris %>%
filter(Species %in% c('versicolor', 'virginica'))
t.test(Petal.Length ~ Species, df, paired = T)
Paired t-test
data: Petal.Length by Species
t = -12.091, df = 49, p-value = 2.562e-16
alternative hypothesis: true mean difference is not equal to 0
95 percent confidence interval:
-1.506744 -1.077256
sample estimates:
mean difference
-1.292
Визуализируем
t.test(Petal.Length ~ Species, df, paired = T)$p.value -> a
ggpaired(df, x = "Species", y = "Petal.Length",
fill = ("Species"),
add = c('mean', 'jitter'),
palette = c("#9e2a2b", "#62929e"),
line.color = "gray", line.size = 0.4) +
annotate("text", x=1.3, y=7.5,
label = paste('p.value (t.test): ', a, sep = ''), size = 4)
Урожайность ячменя в 1931(Y1) и 1932(Y2) годах.
Различается ли урожайность?
Есть ли зависимость между длиной лепестка и длиной чашелистика у ирисов?
Pearson's product-moment correlation
data: iris$Sepal.Length and iris$Petal.Length
t = 21.646, df = 148, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.8270363 0.9055080
sample estimates:
cor
0.8717538
Spearman's rank correlation rho
data: iris$Sepal.Length and iris$Petal.Length
S = 66429, p-value < 2.2e-16
alternative hypothesis: true rho is not equal to 0
sample estimates:
rho
0.8818981
mpg cyl disp hp drat wt
mpg 1.0000000 -0.8521620 -0.8475514 -0.7761684 0.68117191 -0.8676594
cyl -0.8521620 1.0000000 0.9020329 0.8324475 -0.69993811 0.7824958
disp -0.8475514 0.9020329 1.0000000 0.7909486 -0.71021393 0.8879799
hp -0.7761684 0.8324475 0.7909486 1.0000000 -0.44875912 0.6587479
drat 0.6811719 -0.6999381 -0.7102139 -0.4487591 1.00000000 -0.7124406
wt -0.8676594 0.7824958 0.8879799 0.6587479 -0.71244065 1.0000000
qsec 0.4186840 -0.5912421 -0.4336979 -0.7082234 0.09120476 -0.1747159
vs 0.6640389 -0.8108118 -0.7104159 -0.7230967 0.44027846 -0.5549157
am 0.5998324 -0.5226070 -0.5912270 -0.2432043 0.71271113 -0.6924953
gear 0.4802848 -0.4926866 -0.5555692 -0.1257043 0.69961013 -0.5832870
carb -0.5509251 0.5269883 0.3949769 0.7498125 -0.09078980 0.4276059
qsec vs am gear carb
mpg 0.41868403 0.6640389 0.59983243 0.4802848 -0.55092507
cyl -0.59124207 -0.8108118 -0.52260705 -0.4926866 0.52698829
disp -0.43369788 -0.7104159 -0.59122704 -0.5555692 0.39497686
hp -0.70822339 -0.7230967 -0.24320426 -0.1257043 0.74981247
drat 0.09120476 0.4402785 0.71271113 0.6996101 -0.09078980
wt -0.17471588 -0.5549157 -0.69249526 -0.5832870 0.42760594
qsec 1.00000000 0.7445354 -0.22986086 -0.2126822 -0.65624923
vs 0.74453544 1.0000000 0.16834512 0.2060233 -0.56960714
am -0.22986086 0.1683451 1.00000000 0.7940588 0.05753435
gear -0.21268223 0.2060233 0.79405876 1.0000000 0.27407284
carb -0.65624923 -0.5696071 0.05753435 0.2740728 1.00000000
library(tidyverse)
library(corrplot)
library(psych)
library(ggcats)
library(ggdogs)
library(CatterPlots)
library(ggimage)
library(rsvg)
df <- data.frame(x = grid[, 1],
y = grid[, 2],
image = c("nyancat", "bongo", "colonel", "grumpy", "hipster", "lil_bub",
"maru", "mouth", "pop", "pop_close", "pusheen", "pusheen_pc",
"toast", "venus", "shironeko"))
ggplot(df) +
geom_cat(aes(x, y, cat = image), size = 5) +
geom_text(aes(x, y - 0.5, label = image), size = 2.5) +
xlim(c(0.25, 5.5)) + ylim(c(0.25, 3.5)) + theme_bw()
df <- data.frame(x = grid[, 1],
y = grid[, 2],
image = c("doge", "doge_strong", "chihuahua", "eyes", "gabe", "glasses",
"tail", "surprised", "thisisfine", "hearing", "pug", "ears",
"husky", "husky_2", "chilaquil"))
ggplot(df) +
geom_dog(aes(x, y, dog = image), size = 5) +
geom_text(aes(x, y - 0.5, label = image), size = 2.5) +
xlim(c(0.25, 5.5)) + ylim(c(0.25, 3.5)) + theme_bw()
У человека ~20000 белок-кодирующих генов
Для каждого гена знаем уровень его экспрессии в группе больных и здоровых
Сделаем t-test для каждого гена
Получили ~2000 дифференциально экспрессирующихся генов
Сколько же генов ассоциированы с заболеванием?
У нас же есть уже p-value, сравненные с уровнем значимости…
Есть 100 чашек Петри, в которых растут клетки при одинаковых условиях
Из каждой чашки собираем клетки, выделяем РНК и измеряем уровни экспрессии 1000 генов
Получаем 100 реплик
Делим в произвольном порядке 100 реплик на 2 группы
Проверяем каждый из 1000 генов на изменение уровня экспрессии
Ожидаем, что гены не должны менять свою экспрессию
Ожидаем, что \(H_{0}\) верна для всех генов
Если \(p-value \le \alpha\), отвергаем нулевую гипотезу
Поддерживаем ошибку первого рода на уровне значимости \(\alpha\)
Если вернуться к чашкам, что получается, что мы ожидаем:
1000 * 0.05 = 50 дифференциально экспрессирующихся генов
Мы говорим, что есть статистически значимый результат, но на самом деле его нет
Было 20000 генов
Сделали 20000 статистических тестов
Среди всех обнаруженных дифференциально экспрессирующихся генов будут те, которые ассоциированы с болезнью, и ложноположительные результаты, пойманные за счет поддержки ошибки первого рода
… в конце концов они в чем-то сознаются
Scanning Dead Salmon in fMRI Machine Highlights Risk of Red Herrings
Проводим много тестов
Для каждого теста контролируем уровень ошибки первого рода
Получаем ложноположительные значения
Хотелось бы как-то контролировать уровень ошибки первого рода сразу для всех проведенных тестов
Их очень много
Выделяют два основных семейства:
FWER - family-wise error rate
FDR - false discovery rate
Вероятность совершить хотя бы одну ошибку первого рода
Контроль FWER на уровне значимости \(\alpha\): \(FWER \le \alpha\)
Достаточно жесткие поправки
Поправка Бонферрони
Поправка Холм-Бонферрони: выше мощность, меньше ложноотрицательных результатов
Неважна независимость
Применять, если важно не получить ни одного ложноположительного результата
Помним, что потеряем много истинноположительных
Готовы к “мусорным” данным в результате
Порог на FDR зависит от амбиций исследователя ## Дома
Повторяем ANOVA