Мы рассмотрим

  • Базовые идеи корреляционного анализа
  • Проблему двух статистических подходов: “Тестирование гипотез vs. построение моделей”
  • Разнообразие статистических моделей
  • Основы регрессионного анализа

Вы сможете

  • Оценить взаимосвязь между измеренными величинами
  • Объяснить что такое линейная модель
  • Формализовать запись модели в виде уравнения
  • Подобрать модель линейной регрессии
  • Протестировать гипотезы о наличии зависимости при помощи t-критерия или F-критерия
  • Оценить предсказательную силу модели

Пример: Соотношения веса тела и веса сердца у кошек

Связан ли вес целого и вес части

Было исследовано 97 котов

У каждого индивида измеряли:

  • вес тела (кг),
  • вес сердца (г),

Пример взят из работы: R. A. Fisher (1947) The analysis of covariance method for the relation between a part and the whole, Biometrics 3, 65–68. Данные представлены в пакете boot

Знакомство с данными

Посмотрим на датасет

library(readxl)
cat <- read_excel("data/catsM.xlsx")
head(cat)
## # A tibble: 6 x 3
##   Sex     Bwt   Hwt
##   <chr> <dbl> <dbl>
## 1 M       2     6.5
## 2 M       2     6.5
## 3 M       2.1  10.1
## 4 M       2.2   7.2
## 5 M       2.2   7.6
## 6 M       2.2   7.9

Есть ли пропущенные значения?

sum(!complete.cases(cat))
## [1] 0

Нет пропусков

##Каков объем выборки

nrow(cat) 
## [1] 97

##Есть ли отскакивающие значения? {.smaller}

library(ggplot2)
gg_dot <- ggplot(cat, aes(y = 1:nrow(cat))) + geom_point()
gg_dot + aes(x = Bwt)

gg_dot + aes(x = Hwt)

Корреляционный анализ

Цель практически любого исследования - поиск взаимосвязи величин и создание базы для предсказания неизвестного на основе имеющихся данных

Вспомним: Сила и направление связи между величинами

Коэффициенты корреляции и условия их применимости

Коэффициент Функция Особенности применения
Коэф. Пирсона cor(x,y,method="pearson") Оценивает связь двух нормально распределенных величин. Выявляет только линейную составляющую взаимосвязи.
Ранговые коэффициенты (коэф. Спирмена, Кендалла) cor(x,y,method="spirman")
cor(x,y,method="kendall")
Не зависят от формы распределения. Могут оценивать связь для любых монотонных зависимостей.

Оценка значимости коэффициентов корреляции

  • Коэффициент корреляции - это статистика, значение которой описывает степень взаимосвязи двух сопряженных переменных. Следовательно применима логика статистического критерия.
  • Нулевая гипотеза \(H_0: r=0\)
  • Бывают двусторонние \(H_a: r\ne 0\) и односторонние критерии \(H_a: r>0\) или \(H_a: r<0\)
  • Ошибка коэффициента Пирсона: \(SE_r=\sqrt{\frac{1-r^2}{n-2}}\)
  • Стандартизованная величина \(t=\frac{r}{SE_r}\) подчиняется распределению Стьюдента с параметром \(df = n-2\)
  • Для ранговых коэффициентов существует проблема “совпадающих рангов” (tied ranks), что приводит к приблизительной оценке \(r\) и приблизительной оценке уровня значимости.

##Оценка значимости корреляции Для оценки статистической значимости коэффициентов корреляции можно использовать функцию cor.test()

Задание

  • Определите силу и направление связи между исследованными признаками
  • Постройте точечную диаграмму, отражающую взаимосвязь между весом тела и весом сердца
  • Оцените значимость значения коэффициента корреляции Пирсона между этими двумя переменными

Hint Для построения точечной диаграммы вам понадобится geom_point()

Решение

cor.test(cat$Bwt, cat$Hwt)
## 
##  Pearson's product-moment correlation
## 
## data:  cat$Bwt and cat$Hwt
## t = 10, df = 100, p-value <2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.705 0.857
## sample estimates:
##   cor 
## 0.793

Решение

pl_cat <- ggplot(cat, 
               aes(x = Bwt, y = Hwt)) + 
  geom_point() + 
  xlab("Вес кота") + 
  ylab("Вес сердца")
pl_cat

##Задание: проанализируйте данные и оцените корреляцию между признаками

Зависимость между диаметром клеток инфузорий и концентрацией клеток в культуре

данные представлены в пакете ISwR

infus <- read_excel("data/hellung.xls")

Опишите связь между концентрацией клеток и их диаметром

Ковариация

В некоторых методах статистики (многомерные методы) вместо корреляции применяется ковариация (согласованное отклонение):

\[ cov(X, Y) = \frac{1}{n - 1}\sum{(x_i - \bar{x})(y_i - \bar{y})} \] В отлиие от корреляции - это не стандартизованная величина, варьирующая в неограниченных пределах

Два подхода к исследованию:
Тестирование гипотезы
VS
Построение модели

  • Проведя корреляционный анализ, мы лишь ответили на вопрос “Существует ли статистически значимая связь между величинами?”

  • Сможем ли мы, используя это знание, предсказть значения одной величины, исходя из знаний другой?

Тестирование гипотезы VS построение модели

  • Простейший пример
  • Между путем, пройденным автомобилем, и временем, проведенным в движении, несомненно есть связь. Хватает ли нам этого знания?
  • Для расчета величины пути в зависимости от времени необходимо построить модель: \(S=Vt\), где \(S\) - зависимая величина, \(t\) - независимая переменная, \(V\) - параметр модели.
  • Зная параметр модели (скорость) и значение независимой переменной (время), мы можем рассчитать (cмоделировать) величину пройденного пути

Какие бывают модели?

Линейные и нелинейные модели


Линейные модели \[y = b_0 + b_1x\]
\[y = b_0 + b_1x_1 + b_2x_2\] Нелинейные модели \[y = b_0 + b_1^x\]
\[y = b_0^{b_1x_1+b_2x_2}\]

Простые и многокомпонентные (множественные) модели

  • Простая модель \[y = b_0 + b_1x\]

  • Множественная модель \[y = b_0 + b_1x_1 + b_2x_2 + b_3x_3 + ... + b_nx_n\]

Детерминистские и стохастические модели

Модель: \(у_i = 2 + 5x_i\)
Два параметра: угловой коэффициент (slope) \(b_1=5\); свободный член (intercept) \(b_0=2\)
Чему равен \(y\) при \(x=10\)?

Модель: \(у_i = 2 + 5x_i + \epsilon_i\)
Появляется дополнительный член \(\epsilon_i\) Он вводит в модель влияние неучтенных моделью факторов. Обычно считают, что \(\epsilon \in N(0, \sigma^2)\)

Модели с дискретными предикторами

Модель для данного примера имеет такой вид


\(response = 4.6 + 5.3I_{Level2} + 9.9 I_{Level3} + \epsilon_i\)

\(I_{i}\) - dummy variable

Случайная и фиксированая часть модели

В стохастические модели выделяется две части:

Фиксированная часть: \(у_i = 2 + 5x_i\)
Случайная часть: \(\epsilon_i\)

Бывают модели, в которых случайная часть выглядит существенно сложнее (модели со смешаными эффектами). В таких моделях необходимо смоделировать еще и поведение случайной части.

Модель для зависимости массы сердца от веса тела

Какая из линий “лучше” описывает облако точек?

Найти оптимальную модель позволяет регрессионный анализ

“Essentially, all models are wrong,
but some are useful”
(Georg E. P. Box)

Происхождение термина “регрессия”

Френсис Галтон (Francis Galton)

“the Stature of the adult offspring … [is] … more mediocre than the stature of their Parents” (цит. по Legendre & Legendre, 1998)

Рост регрессирует (возвращается) к популяционной средней
Угловой коэффициент в зависимости роста потомков от роста родителей- коэффциент регресси

Подбор линии регрессии проводится с помощью двух методов

  • С помощью метода наименьших квадратов (Ordinary Least Squares) - используется для простых линейных моделей
  • Через подбор функции максимального правдоподобия (Maximum Likelihood) - используется для подгонки сложных линейных и нелинейных моделей.

Кратко о методе макcимального правдоподобия

Кратко о методе макcимального правдоподобия

Симулированный пример с использованием geom_violin()

Метод наименьших квадратов

(из кн. Quinn, Keough, 2002, стр. 85)

Остатки (Residuals):
\[e_i = y_i - \hat{y_i}\]

Линия регрессии (подобранная модель) - это та линия, у которой \(\sum{e_i}^2\) минимальна.

Подбор модели методом наменьших квадратов с помощью функци lm()

fit <- lm(formula, data)

Модель записывается в виде формулы

Модель Формула
Простая линейная регрессия
\(\hat{y_i}=b_0 + b_1x_i\)
Y ~ X
Y ~ 1 + X
Y ~ X + 1
Простая линейная регрессия
(без \(b_0\), “no intercept”)
\(\hat{y_i}=b_1x_i\)
Y ~ -1 + X
Y ~ X - 1
Уменьшенная простая линейная регрессия
\(\hat{y_i}=b_0\)
Y ~ 1
Y ~ 1 - X
Множественная линейная регрессия
\(\hat{y_i}=b_0 + b_1x_i +b_2x_2\)
Y ~ X1 + X2

Подбор модели методом наменьших квадратов с помощью функци lm()

fit <- lm(formula, data)

Элементы формул для записи множественных моделей

Элемент формулы Значение
: Взаимодействие предикторов
Y ~ X1 + X2 + X1:X2
* Обозначает полную схему взаимодействий
Y ~ X1 * X2 * X3
аналогично
Y ~ X1 + X2 + X3+ X1:X2 + X1:X3 + X2:X3 + X1:X2:X3
. Y ~ .
В правой части формулы записываются все переменные из датафрейма, кроме Y

Подберем модель, наилучшим образом описывающую зависимость массы сердца от веса тела

cat_model <- lm(Hwt ~ Bwt, data = cat)
cat_model
## 
## Call:
## lm(formula = Hwt ~ Bwt, data = cat)
## 
## Coefficients:
## (Intercept)          Bwt  
##       -1.18         4.31

Как трактовать значения параметров регрессионной модели?

Как трактовать значения параметров регрессионной модели?

  • Угловой коэффициент (slope) показывает на сколько единиц изменяется предсказанное значение \(\hat{y}\) при изменении на одну единицу значения предиктора (\(x\))
  • Свободный член (intercept) - величина во многих случаях не имеющая “смысла”, просто поправочный коэффициент, без которого нельзя вычислить \(\hat{y}\). NB! В некоторых линейных моделях он имеет смысл, например, значения \(\hat{y}\) при \(x = 0\).
  • Остатки (residuals) - характеризуют влияние неучтенных моделью факторов.

Вопросы:

  1. Чему равны угловой коэффициент и свободный член полученной модели cat_model?
  2. Какое значение веса сердца предсказывает модель для кота весом 2.5 кг
  3. Чему равно значение остатка от модели для кота с порядковым номером 10?

Ответы

coefficients(cat_model) [1]
## (Intercept) 
##       -1.18
coefficients(cat_model) [2]
##  Bwt 
## 4.31

Ответы

as.numeric(coefficients(cat_model) [1] + coefficients(cat_model) [2] * 2.5)
## [1] 9.6

Ответы

cat$Hwt[10] - fitted(cat_model)[10]
##  10 
## 1.3
residuals(cat_model)[10]
##  10 
## 1.3

Углубляемся в анализ модели: функция summary()

summary(cat_model)
## 
## Call:
## lm(formula = Hwt ~ Bwt, data = cat)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -3.773 -1.048 -0.298  0.984  4.865 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   -1.184      0.998   -1.19     0.24    
## Bwt            4.313      0.340   12.69   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.56 on 95 degrees of freedom
## Multiple R-squared:  0.629,  Adjusted R-squared:  0.625 
## F-statistic:  161 on 1 and 95 DF,  p-value: <2e-16

Что означают следующие величины?

Estimate
Std. Error
t value
Pr(>|t|)

Оценки параметров регрессионной модели

Параметр Оценка Стандартная ошибка
\(\beta_1\)
Slope
\(b _1 = \frac {\sum _{i=1}^{n} {[(x _i - \bar {x})(y _i - \bar {y})]}}{\sum _{i=1}^{n} {(x _i - \bar x)^2}}\)
или проще
\(b_0 = r\frac{sd_y}{sd_x}\)
\(SE _{b _1} = \sqrt{\frac{MS _e}{\sum _{i=1}^{n} {(x _i - \bar {x})^2}}}\)
\(\beta_0\)
Intercept
\(b_0 = \bar y - b_1 \bar{x}\) \(SE _{b _0} = \sqrt{MS _e [\frac{1}{n} + \frac{\bar x}{\sum _{i=1}^{n} {(x _i - \bar x)^2}}]}\)
\(\epsilon _i\) \(e_i = y_i - \hat {y_i}\) \(\approx \sqrt{MS_e}\)

Для чего нужны стандартные ошибки?

  • Они нужны, поскольку мы оцениваем параметры по выборке
  • Они позволяют построить доверительные интервалы для параметров
  • Их используют в статистических тестах

Графическое представление результатов

pl_cat + geom_smooth(method="lm") 




Доверительная зона регрессии с 95% вероятностью накроет истинную регрессионную прямую в генеральной совокупности при повторных выборках.
Возникает из-за неопределенности оценок коэффициентов модели, вследствие выборочного характера оценок.

Симулированный пример

Линии регрессии, полученные для 100 выборок (по 20 объектов в каждой), взятых из одной и той же генеральной совокупности

Доверительные интервалы для коэффициентов уравнения регрессии

coef(cat_model)
## (Intercept)         Bwt 
##       -1.18        4.31
confint(cat_model)
##             2.5 % 97.5 %
## (Intercept) -3.17  0.798
## Bwt          3.64  4.987

Для разных \(\alpha\) можно построить разные доверительные интервалы

Важно!

Если коэффициенты уравнения регрессии - лишь приблизительные оценки параметров, то предсказать значения зависимой переменной можно только с нeкоторой вероятностью.

Какое значение веса сердца можно ожидать у кота с весом 2.5 кг?

newdata <- data.frame(Bwt = 2.5)

Predicted <- predict(cat_model, newdata, interval = "prediction", level = 0.95, 
    se = TRUE)$fit
Predicted
##   fit  lwr  upr
## 1 9.6 6.48 12.7
  • С вероятностью 95% интервал от 6.479 до 12.716 будет содержать среднее значение веса сердца кота весом 2.5 кг

Отражаем на графике область значений, в которую попадут 95% предсказанных величин IQ

Подготавливаем данные

cat_predicted <- predict(cat_model, interval="prediction")
cat_predicted <- data.frame(cat, cat_predicted)
head(cat_predicted)
##   Sex Bwt  Hwt  fit  lwr  upr
## 1   M 2.0  6.5 7.44 4.28 10.6
## 2   M 2.0  6.5 7.44 4.28 10.6
## 3   M 2.1 10.1 7.87 4.72 11.0
## 4   M 2.2  7.2 8.30 5.16 11.4
## 5   M 2.2  7.6 8.30 5.16 11.4
## 6   M 2.2  7.9 8.30 5.16 11.4

Отражаем на графике область значений, в которую попадут 95% предсказанных величин

Важно!

Модель “работает” только в том диапазоне значений независимой переменной (\(x\)), для которой она построена (интерполяция). Экстраполяцию надо применять с большой осторожностью.

Итак, что означают следующие величины?

  • Estimate
  • Оценки праметров регрессионной модели
  • Std. Error
  • Стандартная ошибка для оценок
  • Осталось решить, что такое t value, Pr(>|t|)

Тестирование гипотез с помощью линейных моделей

Два равноправных способа

  • Проверка значимости оценок коэффициента \(b_1\) (t-критерий).
  • Оценка соотношения описанной и остаточной дисперсии (F-критерий).

Тестирование гипотез с помощью t-критерия

Зависимость есть, если \(\beta_1 \ne 0\)

Нулевая гипотеза \(H_0: \beta = 0\)

Тестируем гипотезу

\[t=\frac{b_1-0}{SE_{b_1}}\]

Число степеней свободы: \(df=n-2\)
>- Итак,
>- t value - Значение t-критерия
>- Pr(>|t|) - Уровень значимости

Зависит ли вес сердца от веса тела ?

\[Hwt = -1.18 + 4.31 Bwt\]

summary(cat_model)
## 
## Call:
## lm(formula = Hwt ~ Bwt, data = cat)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -3.773 -1.048 -0.298  0.984  4.865 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   -1.184      0.998   -1.19     0.24    
## Bwt            4.313      0.340   12.69   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.56 on 95 degrees of freedom
## Multiple R-squared:  0.629,  Adjusted R-squared:  0.625 
## F-statistic:  161 on 1 and 95 DF,  p-value: <2e-16

Тестирование гипотез с помощью F-критерия

Объясненная дисперсия Остаточная дисперсия Полная дисперсия
\(SS_{Regression}=\sum{(\hat{y}-\bar{y})^2}\) \(SS_{Residual}=\sum{(\hat{y}-y_i)^2}\) \(SS_{Total}=\sum{(\bar{y}-y_i)^2}\)
\(df_{Regression} = 1\) \(df_{Residual} = n-2\) \(df_{Total} = n-1\)
\(MS_{Regression} =\frac{SS_{Regression}}{df}\) \(MS_{Residual} =\frac{SS_{Residual}}{df_{Residual}}\) \(MS_{Total} =\frac{SS_{Total}}{df_{Total}}\)

F критерий

Если зависимости нет, то \(MS _{Regression} = MS_{Residual}\)

\[ F= \frac{MS _{Regression}}{MS_{Residual}}\]

Логика та же, что и с t-критерием

Форма F-распределения зависит от двух параметров: \(df_{Regression} = 1\) и \(df_{Residual} = n-2\)

Оценка качества подгонки модели с помощью коэффициента детерминации

В чем различие между этми двумя моделями?

Оценка качества подгонки модели с помощью коэффициента детерминации

Коэффициент детерминации описывает какую долю дисперсии зависимой переменной объясняет модель

  • \[R^2 = \frac{SS_{Regression}}{SS_{Total}}\]
  • \[0< R^2 < 1\]
  • В случае с простой линейной моделью \[R^2 = r^2\]

Еще раз смотрим на результаты регрессионного анализа зависимости веса сердца от веса тела

summary(cat_model)
## 
## Call:
## lm(formula = Hwt ~ Bwt, data = cat)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -3.773 -1.048 -0.298  0.984  4.865 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   -1.184      0.998   -1.19     0.24    
## Bwt            4.313      0.340   12.69   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.56 on 95 degrees of freedom
## Multiple R-squared:  0.629,  Adjusted R-squared:  0.625 
## F-statistic:  161 on 1 and 95 DF,  p-value: <2e-16

Adjusted R-squared - скорректированный коэффициет детерминации

Применяется если необходимо сравнить две модели с разным количеством параметров

\[ R^2_{adj} = 1- (1-R^2)\frac{n-1}{n-k}\]

\(k\) - количество параметров в модели

Вводится штраф за каждый новый параметр

Как записываются результаты регрессионного анлиза в тексте статьи?

Мы показали, что связь между весом сердца и весом тела котов описывается моделью вида
Hwt = -1.18 + 4.31 Bwt (\(F_{1,95}\) = 161, p < 0.001, \(R^2\) = 0.63)

Summary

  • Модель простой линейной регрессии \(y _i = \beta _0 + \beta _1 x _i + \epsilon _i\)
  • Параметры модели оцениваются на основе выборки
  • В оценке коэффициентов регрессии и предсказанных значений существует неопределенность: необходимо вычислять доверительный интервал.
  • Доверительные интервалы можно расчитать, зная стандартные ошибки.
  • Гипотезы о наличии зависимости можно тестировать при помощи t- или F-теста. \((H _0: \beta _1 = 0\))
  • Качество подгонки модели можно оценить при помощи коэффициента детерминации \((R^2)\)

Что почитать