размер головного мозга (количество пикселей на изображении ЯМР сканера)
Уровень интеллекта измеряли с помощью IQ тестов
Пример: Willerman, L., Schultz, R., Rutledge, J. N., and Bigler, E. (1991), “In Vivo Brain Size and Intelligence”, Intelligence, 15, p.223–228.
Данные: “The Data and Story Library”
Фото: Scan_03_11 by bucaorg (Paul Burnett) on Flickr
Вспомним, на чем мы остановились
brain_model <-lm(PIQ ~ MRINACount, data = brain)summary(brain_model)
Call:
lm(formula = PIQ ~ MRINACount, data = brain)
Residuals:
Min 1Q Median 3Q Max
-39.582 -17.953 -1.601 17.027 42.262
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.744e+00 4.239e+01 0.041 0.9674
MRINACount 1.202e-04 4.651e-05 2.586 0.0137 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 20.99 on 38 degrees of freedom
Multiple R-squared: 0.1496, Adjusted R-squared: 0.1272
F-statistic: 6.686 on 1 and 38 DF, p-value: 0.01367
Уравнение и график зависимости
\[PIQ_i = 1.744 + 0.0001202 \cdot MRINACount_i\]
Тестирование гипотез о линейных моделях
Способы проверки значимости модели и ее коэффициентов
Два равноправных способа
Значима ли модель целиком?
F критерий
Значима ли связь между предиктором и откликом?
t-критерий
F-критерий
Тестирование гипотез с помощью t-критерия
Тестирование гипотез с помощью t-критерия
Гипотезы
Зависимость есть, если угловой коэффициент \(\beta_k \ne 0\)
Нулевая гипотеза \(H_0: \beta_k = 0\)
Тестирование гипотез с помощью t-критерия
Гипотезы
Зависимость есть, если угловой коэффициент \(\beta_k \ne 0\)
Для простой линейной регрессии \(df_{r} = 1\) и \(df_{e} = n - 2\)
У F-распределения два параметра: \(df_{r}\) и \(df_{e}\)
Логика F-теста аналогична t-критерию: Определяем вероятность того, что при условии справедливости \(H_0\) при повторных выборках появится значение F больше или равное F, полученному в нашем эксперименте.
F-тест будет односторонним, т.к. соотношение дисперсий может быть только положительным.
Таблица результатов дисперсионного анализа
Источник изменчивости
df
SS
MS
F
Регрессия
\(df _r = 1\)
\(\color{blue}{SS _r} = \sum{(\hat y _i - \bar y)^2}\)
Применяется если необходимо сравнить две модели с разным количеством параметров
\[ R^2_{adj} = 1- (1-R^2)\frac{n-1}{n-p}\]
\(p\) - количество параметров в модели
Вводится штраф за каждый новый параметр
Еще раз смотрим на результаты регрессионного анализа зависимости IQ от размеров мозга
Call:
lm(formula = PIQ ~ MRINACount, data = brain)
Residuals:
Min 1Q Median 3Q Max
-39.582 -17.953 -1.601 17.027 42.262
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.744e+00 4.239e+01 0.041 0.9674
MRINACount 1.202e-04 4.651e-05 2.586 0.0137 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 20.99 on 38 degrees of freedom
Multiple R-squared: 0.1496, Adjusted R-squared: 0.1272
F-statistic: 6.686 on 1 and 38 DF, p-value: 0.01367
Модель зависимости IQ от размеров мозга на МРТ объясняет всего лишь 15 % общей изменчивости IQ в этих данных.
Ценность такой модели сомнительна.
Как записываются результаты регрессионного анализа в тексте статьи?
Мы показали, что связь между результатами теста на IQ и размером головного мозга на МРТ описывается моделью вида IQ = 1.74 + 0.00012 MRINACount ( \(F_{1,38}\) = 6.686, p = 0.014, \(R^2\) = 0.15)
Пишем статью?
Задание 1 & 2
Выполните задания 1 и 2 в одном из этих файлов:
07_task_assumptions_catsM.R
07_task_assumptions_GAG.R
Зачем нужна диагностика линейных моделей
Если стохастическая модель адекватна, то что мы можем сказать про остатки?
–
Остатки — это просто шум. Обычно считается, что \(\varepsilon_i \in N(0, \sigma)\).
В остатках не должно быть никаких закономерностей (паттернов).
Зачем нужна диагностика модели? Разве тестов было недостаточно?
Пусть у нас есть некоторая модель, которая показывает зависимость \(V_1 = f(V_2, V_3, V_4, V_5)\)
Code
dat <-read.table('data/orly_owl_Lin_4p_5_flat.txt')fit <-lm(V1 ~ V2 + V3 + V4 + V5, data = dat)summary(fit)
Call:
lm(formula = V1 ~ V2 + V3 + V4 + V5, data = dat)
Residuals:
Min 1Q Median 3Q Max
-2.0652 -0.9878 0.1419 0.7958 1.9560
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.001194 0.021170 0.056 0.955
V2 0.986328 0.128630 7.668 2.56e-14 ***
V3 0.972295 0.127506 7.625 3.54e-14 ***
V4 0.861429 0.120431 7.153 1.14e-12 ***
V5 0.927474 0.084432 10.985 < 2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1.001 on 2293 degrees of freedom
Multiple R-squared: 0.05, Adjusted R-squared: 0.04834
F-statistic: 30.17 on 4 and 2293 DF, p-value: < 2.2e-16
Все значимо!
Пишем статью?
Остатки модели
Постройте график зависимости остатков от предсказанных значений при помощи этого кода
Матрица \(\color{purple}{\mathbf{H}}\) — называется “хэт”-матрица (hat-matrix) или проекционная матрица, т.к. она позволяет получить предсказанные значения из наблюдаемых.
Тогда остатки можно получить как \(\color{green}{\mathbf{e}} = \mathbf{y} - \color{purple}{\mathbf{H}}\mathbf{y} = (\mathbf{I} - \color{purple}{\mathbf{H}})\mathbf{y}\).
Диагональные элементы проекционной матрицы \(\color{purple}{h_{ii}}\) — это мера воздействия точек на ход линии регрессии.
Влиятельные наблюдения
Влиятельные наблюдения (influential points)
Влиятельные наблюдения — это наблюдения, которые вносят слишком большой вклад в оценку параметров (коэффициентов) модели.
Из кн. Quinn, Keough, 2002
Учет каких из этих точек повлияет на ход регрессии и почему?
Точка 1 почти не повлияет, т.к. у нее маленький остаток, хоть и экстремальное значение \(X\)
Точка 2 почти не повлияет, т.к. ее \(X\) близок к среднему, хоть и большой остаток
Точка 3 повлияет сильно, т.к. у нее не только большой остаток, но и экстремальное значение \(X\)
Воздействие точек (leverage)
Воздействие точек \(\color{purple}{h_{ii}}\) (leverage) показывает силу влияния значений \(x_i\) на ход линии регрессии, то есть на \(\color{blue}{\hat{y_i}}\)
Из кн. Quinn, Keough, 2002
Weighing Machine by neys fadzil on Flickr
Точки, располагающиеся дальше от \(\bar{x}\), оказывают более сильное влияние на \(\color{blue}{\hat{y_i}}\)
\(\color{purple}{h_{ii}}\) варьирует в промежутке от \(1/n\) до 1
Если \(\color{purple}{h_{ii}} > 2(p/n)\), то надо внимательно посмотреть на данное значение (\(p\) — число параметров модели, \(n\) — объем выборки)
Расстояние Кука (Cook’s distance)
описывает, как повлияет на модель удаление данного наблюдения
Есть одно влиятельное наблюдение, которое нужно проверить, но сила его влияния невелика (расстояние Кука \(< 1\), и только одно наблюдение больше \(4/(n-p) = 0.11\))
График остатков от предсказанных значений
Большую часть того, что нужно знать про остатки вы увидите на этом графике. А сейчас давайте научимся читать такой график.
Применить обобщенную линейную модель с другой функцией связи (GLM);
Построить аддитивную модель (GAM), если достаточно наблюдений по \(x\);
Построить нелинейную модель, если известна форма зависимости.
Примеры линеаризующих преобразований
Логарифмирование
Возведение в степень, и т.д.
Не стоит трансформировать отклик!
Осторожно! Вы рискуете изучить не то, что хотели:
1.При логарифмировании отклика вы будете изучать поведение мат.ожидания логарифма \(E(log(y_i)) = b_0 + b_1x_{1i} + ... + e_i\).
2.Трансформация отклика не только линеаризует зависимость, но и затронет величину остатков \(e\).
Вместо трансформации отклика лучше использовать обобщенную линейную модель с подходящей функцией связи, например:
\(log(E(y_i)) = b_0 + b_1x_{1i}+ ... + e_i\)
2. Независимость
Каждое значение \(y_i\) должно быть независимо от любого другого \(y_j\)
Это нужно контролировать на этапе планирования сбора материала
Наиболее частые источники зависимостей:
псевдоповторности (повторно измеренные объекты)
неучтенные переменные
временные автокорреляции (если данные - временной ряд)
пространственные автокорреляции (если пробы взяты в разных местах)
и т.п.
Диагностика нарушений независимости
Взаимозависимости можно заметить на графиках остатков
остатки vs. предсказанные значения
остатки vs. переменные в модели
остатки vs. переменные не в модели
Нарушение независимости: Неучтенная переменная
Слева: Если в модели не учтена переменная \(X2\), внешне все нормально, но величина остатков зависит от \(X2\)
Справа: Если \(X2\) учесть, то зависимость остатков от \(X2\) исчезает
Нарушение независимости: Автокорреляция
В данном случае, наблюдения — это временной ряд или ряд наблюдений в пространстве.
На графиках остатков четко видно, что остатки не являются независимыми. Наблюдения, расположенные на определенном расстоянии друг от друга, имеют остатки похожей величины.
Чем опасна автокорреляция (и любая другая зависимость наблюдений друг от друга)
Чем опасна автокорреляция (и любая другая зависимость наблюдений друг от друга)
Построим 1000 моделей на случайных выборках по 10 последовательных наблюдений
Для простого “шума”, когда нет автокорреляций и нет связи между \(y\) и \(x\) (справедлива \(H_0\)) частота ошибок составляет
[1] 0.048
Для автокоррелированных данных, при отсутствии связи между \(y\) и \(x\) (справедлива \(H_0\)) частота ошибок составляет
[1] 0.233
Повышается вероятность ошибок I рода.
Проверка на автокорреляцию
Проверка на автокорреляцию нужна, если данные — это временной ряд, или если известны координаты или время сбора проб. Способы проверки временной автокорреляции (годятся, если наблюдения в ряду расположены через равные интервалы):
График автокорреляционной функции остатков (ACF-plot) покажет корреляции с разными лагами.
Критерий Дарбина-Уотсона (значимость автокорреляции 1-го порядка).
Для проверки пространственных автокорреляций: вариограммы (большая и сложная тема!)
Что делать, если у вас нарушено условие независимости значений?
Выбор зависит от обстоятельств. Вот несколько возможных вариантов.
псевдоповторности
избавляемся от псевдоповторностей, вычислив среднее
подбираем смешанную модель (модель со случайным фактором)
неучтенные переменные
включаем в модель (если возможно)
временные автокорреляции
моделируем автокорреляцию
подбираем модель со случайным фактором
пространственные автокорреляции
моделируем пространственную автокорреляцию
делим на пространственные блоки и подбираем модель со случайным фактором (= random effects model, mixed model)
Проверка условия независимости
Графики зависимости остатков от предикторов в модели
Графики зависимости остатков от предикторов не в модели
В данном случае их нет
3. Нормальное распределение
3. Нормальное распределение \(y\) (для каждого уровня значений \(x\))
Это условие невозможно проверить “в лоб”, т.к. обычно каждому \(x\) соответствует лишь небольшое число \(y\)
Проверка нормальности распределения остатков
Если \(y\) это нормально распределенная случайная величина
\[y_i \sim N(\mu_{y_i}, \sigma)\]
и мы моделируем ее как
\[y_i = b_0 + b_1x_{1i} + \cdots + e_i\]
то остатки от этой модели — тоже нормально распределенная случайная величина
\[e_i \sim N(0, \sigma)\]
Т.е. выполнение этого условия можно оценить по поведению случайной части модели.
Проверка нормальности распределения остатков
Есть формальные тесты, но:
у формальных тестов тоже есть свои условия применимости
при больших выборках формальные тесты покажут, что значимы даже небольшие отклонения от нормального распределения
тесты, которые используются в линейной регрессии, устойчивы к небольшим отклонениям от нормального распределения
Лучший способ проверки — квантильный график остатков.
Квантильный график остатков
По оси Х — квантили теоретического распределения, по оси Y — квантили остатков модели. Если наблюдаемое распределение соответствует теоретическому, то точки должны лечь вдоль прямой по диагонали графика.
Обычные остатки должны подчиняться нормальному распределению \(e \sim N(0, \sigma)\)
Cтьюдентизированные остатки — t-распределению
Code
library(car)qqPlot(brain_model, id =FALSE) # из пакета car
Что делать, если остатки распределены не нормально?
Зависит от причины
Нелинейная связь?
Построить аддитивную модель, GAM (если достаточно наблюдений по \(x\))
Построить нелинейную модель (если известна форма зависимости)
Неучтенные переменные?
добавляем в модель
Зависимая переменная распределена по-другому?
трансформируем данные (неудобно)
подбираем модель с другим распределением остатков (обобщенную линейную модель)
mod1 <-lm(y1 ~ x1, data = dat1)# Данные для графиков остатковmod1_diag <-fortify(mod1)# 1) График расстояния Кукаggplot(mod1_diag, aes(x =1:nrow(mod1_diag), y = .cooksd)) +geom_bar(stat ="identity")# 2) График остатков от предсказанных значенийgg_resid <-ggplot(data = mod1_diag, aes(x = .fitted, y = .stdresid)) +geom_point() +geom_hline(yintercept =0)gg_resid# 3) Графики остатков от предикторов в модели и не в моделиgg_resid +aes(x = x1)# 4) Квантильный график остатковqqPlot(mod1, id =FALSE)
Гетерогенность дисперсий, остатки не подчиняются нормальному распределению
Решение, блок 2
Code
mod2 <-lm(y2 ~ x2, data = dat2)# Данные для графиков остатковmod2_diag <-fortify(mod2)# 1) График расстояния Кукаggplot(mod2_diag, aes(x =1:nrow(mod2_diag), y = .cooksd)) +geom_bar(stat ="identity")# 2) График остатков от предсказанных значенийgg_resid <-ggplot(data = mod2_diag, aes(x = .fitted, y = .stdresid)) +geom_point() +geom_hline(yintercept =0)gg_resid# 3) Графики остатков от предикторов в модели и не в моделиgg_resid +aes(x = x2)# 4) Квантильный график остатковqqPlot(mod2, id =FALSE)
mod3 <-lm(y3 ~ x3, data = dat3)# Данные для графиков остатковmod3_diag <-fortify(mod3)# 1) График расстояния Кукаggplot(mod3_diag, aes(x =1:nrow(mod3_diag), y = .cooksd)) +geom_bar(stat ="identity")# 2) График остатков от предсказанных значенийgg_resid <-ggplot(data = mod3_diag, aes(x = .fitted, y = .stdresid)) +geom_point() +geom_hline(yintercept =0)gg_resid# 3) Графики остатков от предикторов в модели и не в моделиgg_resid +aes(x = x3)# 4) Квантильный график остатковqqPlot(mod3, id =FALSE)
Задание для самостоятельной работы
Выполните последнее задание в одном из этих файлов: - 07_task_assumptions_catsM.R - 07_task_assumptions_GAG.R
Take-home messages
Гипотезы о наличии зависимости можно тестировать при помощи t- или F-теста.
Качество подгонки модели можно оценить при помощи коэффициента детерминации \(R^2\).
У линейных моделей есть условия применимости, поэтому не спешите описывать результаты — сначала проверьте.
Если условия применимости нарушены, то результатам тестов для этой модели нельзя верить (получаются заниженные доверительные вероятности, возрастает вероятность ошибок I рода).
Анализ остатков дает разностороннюю информацию о валидности моделей.
Что почитать
Гланц, С., 1998. Медико-биологическая статистика. М., Практика
Кабаков Р.И. R в действии. Анализ и визуализация данных на языке R. М.: ДМК Пресс, 2014
Diez, D.M., Barr, C.D. and Çetinkaya-Rundel, M., 2015. OpenIntro Statistics. OpenIntro.
Zuur, A., Ieno, E.N. and Smith, G.M., 2007. Analyzing ecological data. Springer Science & Business Media.
Quinn G.P., Keough M.J. 2002. Experimental design and data analysis for biologists
Logan M. 2010. Biostatistical Design and Analysis Using R. A Practical Guide