Линейные модели…
Кафедра Зоологии беспозвоночных, СПбГУ
population. Это вектор, характеризующий размеры особей в некоторой гипотетической популяции.Изучая интересующую нас систему, мы не знаем значений параметров распределения, которое описывает поведение вероятности в генральной совокупности (population).
Мы проводим оценку (estimate) этих параметров, используя выборку (sample).
Выборка имеет ограниченный объем(N, или n).
Выборка попадает в анализ в виде вектора значений \(\{x_1, x_2, x_3, \dots , x_n\}\)
Выборка может быть описана с помощью “5 number statistic”:
Другой способ описания выборки
Если \(x_i \in N(\mu, \sigma)\), то
\[ \bar{x} \xrightarrow[n\to\infty]{} \mu \]
\[ sd \xrightarrow[n\to\infty]{} \sigma \]
Центральная предельная теорема (ЦПТ) говорит, что если мы возьмем достаточно большую выборку из генеральной совокупности, то среднее значение будет нормально распределено с параметрами \(\mu_{\bar x}\) и \(\sigma _{\bar{x}}\):
\[\bar X \sim N (\mu_{\bar x}, \sigma_{\bar x})\]
При чем \(\sigma_{\bar x} = \frac{\sigma}{\sqrt{n}}\).
Важно: это будет так при больших объемах выборки ( \(n > 30\), или даже \(n > 100\)), даже если \(x\) в генеральной совокупности не подчиняется нормальному распределению.
Давайте проверим на опыте, так ли это.
Представим, что данные об алмазах из датасета diamonds (пакет gplot2) — это генеральная совокупность.
Перед вами распределение цены алмазов. Давайте будем брать из этого распределения выборки и оценивать по ним среднее значение.
Diamond Age by Steve Jurvetson on Flickr
Средние в выборках отличаются от среднего в генеральной совокупности.
Если взять много выборок определенного размера, можно построить распределение выборочных средних.
Как изменится форма распределения выборочных средних при изменении объема выборки?
\[\bar X \sim N (\mu_{\bar x}, \sigma_{\bar x})\]
\(\mu_{\bar x} = \mu\) — среднее значение выборочных средних стремится к среднему в генеральной совокупности.
\(\sigma_{\bar x} = \sigma / \sqrt{n}\) — стандартное отклонение в \(\sqrt{n}\) раз меньше стандартного отклонения в генеральной совокупности.
\(\sigma_{\bar x}\) называют стандартной ошибкой среднего и обозначают \(SE _{\bar{x}}\).
\[\bar X \sim N (\mu, \sigma / \sqrt{n})\]
Пользуясь ее выводами, мы сможем:
Было
\[\bar X \sim N(\mu, \sigma/ \sqrt{n})\]
После стандартизации:
\[\frac{\bar X - \mu}{\sigma / \sqrt{n}} \sim N(0, 1)\]
Стандартизованное распределение выборочных средних — это стандартное нормальное распределение.
— это интервал, в который попадает заданный процент выборочных средних.
В 95% доверительный интервал попадает выборочное среднее в 95% повторных выборок.
Как найти этот интервал?
\[\bar {x} \pm z_{\alpha} \cdot \sigma / \sqrt{n}\]
Чтобы найти границы 95% доверительного интервала, нужно найти квантили стандартного нормального распределения, которые соответствуют вероятностям 0.025 и 0.975
\(z_{0.05} = 1.96\)
95% выборочных средних в повторных выборках будут лежать в пределах \(\pm 1.96\) стандартных ошибок вокруг среднего значения.
1.Должна быть известна \(\sigma\) в генеральной совокупности.
2.Должны выполняться условия, при которых справедлива ЦПТ:
Наблюдения в выборке должны быть независимы друг от друга.
Большой объем выборки или нормальное распределение \(x\)
Если \(\sigma\) в генеральной совокупности не известна, ее можно оценить по выборочному стандартному отклонению \(sd\).
\[\sigma / \sqrt{n} \approx sd/\sqrt{n}\]
После стандартизации:
\[\frac{\bar X - \mu}{SE_{\bar x}} = \frac{\bar X - \mu}{sd / \sqrt{n}} \sim t_{df = n - 1}\]
стандартизованное распределение выборочных средних подчиняется \(t\)-распределению с числом степеней свободы \(df = n - 1\)
William Sealy Gosset
Обязательно используется, если:
\[\bar {x} \pm t_{\alpha, df} \cdot sd / \sqrt{n}\]
\(df = n - 1\)
Условия применимости
Выполняются условия, при которых справедлива ЦПТ:
Для примера возьмем данные из объекта population. Здесь известно, что \(\mu = 170\).
Симулируем взятие многих выборок из этой генеральной совокупности.
Среднее в генеральной совокупности — это фиксированная величина (она либо попала в интервал, либо нет.
Доверительный интервал — случайная величина.
В повторных выборках одинакового объема \(\approx 95\%\) всех доверительных интервалов “накроют” истинное среднее значение.
library(ggplot2)
data("diamonds")
# цена бриллиантов хорошего качества огранки
good <- diamonds$price[diamonds$cut == "Good"]
.mean <- mean(good) # выборочное среднее
.n <- length(good) # объем выборки
SE <- sd(good)/ sqrt(.n) # стандартная ошибка
t_crit <- qt(p = 0.975, df = .n - 1) # критич. зн. t для данного n и p = 0.95
err <- t_crit * SE # величина размаха доверительного интервала
err[1] 103
[1] 3826
[1] 4032
Можем записать среднюю цену бриллиантов хорошей огранки и ее доверительный интервал: \(3928.9 \pm 103 (\pm SE \cdot t_{\alpha, df})\)
Посчитайте среднюю цену и доверительный интервал для бриллиантов с такими свойствами (одновременно):
cut) идеальное (Ideal)clarity) наивысшая (IF)Постройте график средней цены с доверительными интервалами для бриллиантов разного качества огранки и прозрачности.
Вычислим границы доверительного интервала
ideal <- diamonds$price[diamonds$cut == 'Ideal' & diamonds$clarity == 'IF']
.mean <- mean(ideal) # выборочное среднее
.n <- length(ideal) # объем выборки, если нет NA
SE <- sd(ideal)/ sqrt(.n) # стандартная ошибка
t_crit <- qt(p = 0.975, df = .n - 1) # критич. зн. t для данного n и p = 0.95
err <- t_crit * SE # величина размаха доверительного интервала
err[1] 187.1
[1] 2086
[1] 2460
Теперь можно построить график средней цены с доверительными интервалами для бриллиантов разного качества огранки и прозрачности. Для этого нужно к предыдущему графику добавить информацию о прозрачности.
Теперь можно построить график средней цены с доверительными интервалами для бриллиантов разного качества огранки и прозрачности. Для этого нужно к предыдущему графику добавить информацию о прозрачности и смещении точек.
Что странного в этой картинке?
Осторожно! Группы могут быть неоднородны: в каждой группе варьирует размер алмазов.
dplyrНа примере доверительных интервалов:
library(dplyr)
smr_diamonds <- diamonds %>% # данные
group_by(cut, clarity) %>% # группируем
summarize(
.mean = mean(price), # выборочное среднее
.n = n(), # объем выборки
SE = sd(price) / sqrt(.n), # стандартная ошибка
t_crit = qt(p = 0.975, df = .n - 1), # критич. зн. t
err = t_crit * SE, # величина величина размаха доверительного интервалаа доверительного интервала
lower = .mean - err, # нижняя граница доверительного интервала
upper = .mean + err # верхняя граница доверительного интервала
)
head(smr_diamonds)# A tibble: 6 × 9
# Groups: cut [1]
cut clarity .mean .n SE t_crit err lower upper
<ord> <ord> <dbl> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
1 Fair I1 3704. 210 214. 1.97 422. 3282. 4125.
2 Fair SI2 5174. 466 182. 1.97 358. 4816. 5531.
3 Fair SI1 4208. 408 162. 1.97 319. 3889. 4527.
4 Fair VS2 4175. 261 219. 1.97 431. 3744. 4605.
5 Fair VS1 4165. 170 276. 1.97 546. 3619. 4711.
6 Fair VVS2 3350. 69 364. 2.00 727. 2623. 4077.
Различия между выборками не всегда видны невооружённым глазом.
tres caracoles by Alberto Villen on Freeimages.com
Это первый шаг
tres caracoles by Alberto Villen on Freeimages.com
Нулевая гипотеза \(H_0\) чаще всего формулируется как отсутствие различий между сравниваемыми объектами. Например: Улитки из обеих популяций одинакового размера
Альтернативная гипотеза \(H_A\) формулируется как присутствие различий, она обратна нулевой гипотезе, т.е. включает все остальные случаи. Например: Улитки из обеих популяций разного размера.
Вне зависимости от нас, реальность может находиться в одном из двух состояний:
После статистического теста мы принимаем решение о том, принять или отвергнуть \(H_0\). Но это решение не обязательно окажется верным. Возможно четыре исхода:
В мире где улитки одинаковы
( \(H_0\) верна) мы можем:
- принять \(H_0\) (верное решение),
- отвергнуть \(H_0\) (ошибка).
В мире где улитки различаются
( \(H_A\) верна), мы можем:
- принять \(H_0\) (ошибка),
- либо отвергнуть \(H_0\) (верное решение).
Ошибка I рода: нашли то, чего нет
Ошибка II рода: не нашли то, что было
| \(H_0\) верна | \(H_0\) неверна | |
|---|---|---|
| Отклонить H0 | Ошибка I рода с вероятностью α Ложно-положительный результат |
Верно |
| Сохранить H0 | Верно | Ошибка II рода с вероятностью β Ложно-отрицательный результат |
Пока мы будем говорить о том, как контролируют уровень Ошибок I рода. Про Ошибки II рода и Power analysis читайте дополнительную литературу.
Гипотезы выражаются математически в виде тестовых статистик. На этом этапе мы делаем определенные допущения.
Дальше мы должны ответить на вопрос:
Насколько вероятно получить такое или более экстремальное эмпирическое значение, если верна нулевая гипотеза \(H_0\)?
Увы, мы не сможем узнать, какая гипотеза верна, но поймем, насколько с ней согласуются исходные данные.
Разберемся с одновыборочным \(t\)-тестом на вымышленном примере.
Представьте, что в одной статье сказано, что средняя плодовитость черепах определенного вида — 8 яиц в кладке.
В вашей выборке из \(35\) черепах — \(\bar x = 9\), \(sd = 2\).
Отличается ли приведенное в статье значение от того, что наблюдается в изученной популяции. Можно ли считать, что авторы статьи изучали что-то иное (другой вид, или популяцию из иных условий).
Gopher Tortoise by Judy Gallagher on Flickr
\(\mu_0\) — это какое-то конкретное значение. В нашей задаче это — 8 яиц в кладке.
\[t = \cfrac{\bar x - \mu}{ sd / \sqrt{n} }\]
Если выполняется ЦПТ, то одновыборочная \(t\)-статистика подчиняется \(t\)-распределению с числом степеней свободы \(df = n - 1\).
Условия применимости:
Проверьте условия применимости t-теста. Вычислите t и p.
Нет оснований для сомнения, что наша выборка взята из генеральной совокупности с распределением, которое отличается от нормального.
\[t = \cfrac{\bar x - \mu}{ sd / \sqrt{n} }\] Средняя плодовитость в выборке из 35 черепах \(\bar x = 9\), стандартное отклонение \(s = 2\). В статье указана плодовитость \(8\).
\[t = \cfrac{9 - 8}{ 2 / \sqrt{35} } = 2.96\]
При \(H_0\) значение \(t\) будет близко к нулю.
Насколько необычны значения t меньше или больше \(\pm 2.96\)?
Уровень значимости — это вероятность получить значение \(t\) меньше или больше данного, если бы \(H_0\) была справедлива.
Критический уровень значимости \(\alpha\) — это порог для принятия решений.
Обычно используют \(\alpha = 0.05\).
\(\alpha\) - это допустимая вероятность Ошибки I рода (найти отличия там, где их нет).
Если \(p \le \alpha\) — отвергаем \(H_0\) и принимаем \(H_A\).
Если \(p > \alpha\) — сохраняем \(H_0\), не можем ее отвергнуть.
Мы получили \(p < \alpha\), поэтому отвергаем \(H_0\) и принимаем \(H_A\).
Указанная в статье плодовитость статистически значимо отличается от плодовитости в изученной нами популяции. Мы изучали что-то иное (другую генеральную совокупность)!
At! Лучше не использовать популярное словосочетание “достоверно отличается”.
Достоверные события — это события, вероятность которых равна 1.
Правда ли, что \(p\) — вероятность того, что верна сама \(H_0\)?
Правда ли, что \(p\) — это вероятность получить такое значение статистики при справедливой \(H_0\)?
Правда ли, что если \(p > 0.05\), то различий между группами на самом деле нет?
p-value — это всего лишь вероятность того, что в мире, где справедлива \(H_0\), при повторных выборках из той же генеральной совокупности значение выбранной статистики (например t) будет больше или равно наблюдаемого в нашей выборке.
\(H_0: \mu_1 - \mu_2 = 0\) — средние значения не различаются в двух группах
\(H_A: \mu_1 - \mu_2 \ne 0\) — средние значения различаются
Т.е. нас интересует разность выборочных средних.
Ее ожидаемое значение при \(H_0\) будет 0.
t-тест в общем виде выглядит так
\[t=\frac{\text{Наблюдаемая величина - Ожидаемое значение}}{\text{Стандартная ошибка}}\]
Двухвыборочный t-тест используется для проверки значимости различий между средними
\[t\;= \;\frac{\bar{x}_1 - \bar{x}_2}{SE_{\bar{x}_1 - \bar{x}_2}}\]
\(SE_{\bar{x}_1 - \bar{x}_2}\) — стандартная ошибка разности двух средних, может рассчитываться по-разному
Student 1908
Если группы независимы и дисперсии в них равны, то по центральной предельной теореме
\[SE_{\bar{x}_1 - \bar{x}_2} = \sqrt{ \frac{\sigma^2}{n_{1}} + \frac{\sigma^2}{n_{2}}} \approx \sqrt{ \frac{sd^2}{n_{1}} + \frac{sd^2}{n_{2}}}\]
\(s^2 = \cfrac{(n_1 - 1)sd^2_1 + (n_2 - 1)sd^2_2}{n_1 + n_2 - 2}\) — это обобщенная дисперсия по двум выборкам.
Результирующая \(t\)-статистика
\[t\;= \;\frac{\bar{x}_1 - \bar{x}_2}{\sqrt{SE_1^2 + SE_2^2}}\]
подчиняется \(t\)-распределению с \(df = n_1 + n_2 - 2\).
Осторожно, равенство дисперсий в группах — это часто нереалистичное предположение!
Если группы независимы и дисперсии в них неизвестны, то получается
\[SE_{\bar{x}_1 - \bar{x}_2} = \sqrt{ \frac{\sigma^2_{1}}{n_{1}} + \frac{\sigma^2_{2}}{n_{2}}} \approx \sqrt{ \frac{sd^2_{1}}{n_{1}} + \frac{sd^2_{2}}{n_{2}}}\]
Проблема в том, что эта величина лишь приблизительно следует t-распределению, если считать его степени свободы как обычно для двух групп \(df = n_1 + n_2 - 2\).
Можно рассчитать по уравнению Уэлча-Саттеруэйта. Это решит проблему.
\[df_{ Welch-Satterthwaite} \approx \cfrac {\bigg(\cfrac{sd^2_{1}}{n_{1}} + \cfrac{sd^2_{2}}{n_{2}}\bigg)^2} {\cfrac{1}{n_{1} - 1}\bigg(\cfrac {sd_{1}^2} {n_{1}}\bigg)^2 + \cfrac{1}{n_{2} - 1}\bigg(\cfrac {sd_{2}^2} {n_{2}}\bigg)^2}\]
t-тестом Уэлча можно пользоваться, даже если дисперсии равны (это более общее решение).
Он немного консервативнее, чем тест Стьюдента.
Почти такие же, как условия справедливости ЦПТ
Синдром Кушинга — это нарушения уровня артериального давления, вызванные гиперсекрецией кортизола надпочечниками.
В датасете Cushings (пакет MASS) записаны данные о секреции двух метаболитов при разных типах синдрома (данные из кн. Aitchison, Dunsmore, 1975).
Tetrahydrocortisone — секреция тетрагидрокортизона с мочой (мг/сут.)Pregnanetriol — секреция прегнантриола с мочой (мг/сут.)Type — тип синдрома:
a — аденомаb — двусторонняя гиперплазияc — карциномаu — не известноДавайте сравним секрецию тетрагидрокортизона при аденоме и двусторонней гиперплазии надпочечников. Различается ли она?
Все ли правильно открылось?
Tetrahydrocortisone Pregnanetriol Type
a1 3.1 11.70 a
a2 3.0 1.30 a
a3 1.9 0.10 a
a4 3.8 0.04 a
a5 4.1 1.10 a
a6 1.9 0.40 a
'data.frame': 27 obs. of 3 variables:
$ Tetrahydrocortisone: num 3.1 3 1.9 3.8 4.1 1.9 8.3 3.8 3.9 7.8 ...
$ Pregnanetriol : num 11.7 1.3 0.1 0.04 1.1 0.4 1 0.2 0.6 1.2 ...
$ Type : Factor w/ 4 levels "a","b","c","u": 1 1 1 1 1 1 2 2 2 2 ...
Есть ли пропущенные значения?
Каковы объемы выборки в каждой группе?
Обратите внимание, объемы выборок маленькие.
1.Наблюдения независимы друг от друга?
2.Выборки независимы друг от друга?
3.Объем выборки достаточно велик или величины нормально распределены?
Нужно проверить форму распределения в обеих группах.
Удовлетворительно. При таких малых объемах выборки сложно ожидать лучшего.
Сравним секрецию тетрагидрокортизона при помощи двухвыборочного t-теста.
t.test(x = значения_в_гр.1,
y = значения_в_гр.2)
Welch Two Sample t-test
data: Cushings$Tetrahydrocortisone[Cushings$Type == "a"] and Cushings$Tetrahydrocortisone[Cushings$Type == "b"]
t = -4.1, df = 11, p-value = 0.002
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-7.988 -2.438
sample estimates:
mean of x mean of y
2.967 8.180
Welch Two Sample t-test
data: Cushings$Tetrahydrocortisone[Cushings$Type == "a"] and Cushings$Tetrahydrocortisone[Cushings$Type == "b"]
t = -4.1, df = 11, p-value = 0.002
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-7.988 -2.438
sample estimates:
mean of x mean of y
2.967 8.180
Можно указать в скобках не сравнение с \(\alpha\), а само значение \(p\):
( \(t_{10.69} = -4.15\), \(p = 0.0017\)).
Только не надо безумствовать и указывать слишком много знаков…
Перепишите вызов функции t.test с использованием другого шаблона вызова (с использованием формулы).
t.test(formula = что_зависит ~ группы, data = данные)
Второй вариант синтаксиса можно использовать только, если у вас есть только две группы. Если групп больше, то можно отфильтровать нужные с помощью логического вектора.
t.test(formula = что_зависит ~ группы, data = данные,
subset = логический_вектор)
t.test(formula = что_зависит ~ группы, data = данные)
Второй вариант синтаксиса можно использовать только, если у вас есть только две группы. Если групп больше, то можно отфильтровать нужные с помощью логического вектора.
t.test(formula = что_зависит ~ группы, data = данные,
subset = логический_вектор)
Результаты точно такие же, естественно.
Посмотрите структуру результатов (tt) при помощи функции str() и извлеките из них:
Как называются отдельные элементы результатов можно узнать посмотрев их структуру при помощи функции str()
List of 10
$ statistic : Named num -4.15
..- attr(*, "names")= chr "t"
$ parameter : Named num 10.7
..- attr(*, "names")= chr "df"
$ p.value : num 0.00172
$ conf.int : num [1:2] -7.99 -2.44
..- attr(*, "conf.level")= num 0.95
$ estimate : Named num [1:2] 2.97 8.18
..- attr(*, "names")= chr [1:2] "mean of x" "mean of y"
$ null.value : Named num 0
..- attr(*, "names")= chr "difference in means"
$ stderr : num 1.26
$ alternative: chr "two.sided"
$ method : chr "Welch Two Sample t-test"
$ data.name : chr "Cushings$Tetrahydrocortisone[Cushings$Type == \"a\"] and Cushings$Tetrahydrocortisone[Cushings$Type == \"b\"]"
- attr(*, "class")= chr "htest"
a <- Cushings$Tetrahydrocortisone[Cushings$Type == 'a']
b <- Cushings$Tetrahydrocortisone[Cushings$Type == 'b']
mean_a <- mean(a)
sd_a <- sd(a)
n_a <- length(a)
se_a <- sd_a/sqrt(n_a)
mean_b <- mean(b)
sd_b <- sd(b)
n_b <- length(b)
se_b <- sd_b/sqrt(n_b)
t_emp <- abs(mean_a - mean_b)/sqrt(se_a^2 + se_b^2)all_data <- sample(c(a, b))
a_perm <- all_data[1:n_a]
b_perm <- all_data[(n_a + 1):length(all_data)]
mean_a <- mean(a_perm)
sd_a <- sd(a_perm)
n_a <- length(a_perm)
se_a <- sd_a/sqrt(n_a)
mean_b <- mean(b_perm)
sd_b <- sd(b_perm)
n_b <- length(b_perm)
se_b <- sd_b/sqrt(n_b)
t_perm <- abs(mean_a - mean_b)/sqrt(se_a^2 + se_b^2)t_perm_vector <- rep(NA, 1000)
for(i in 1:999){
all_data <- sample(c(a, b))
a_perm <- all_data[1:n_a]
b_perm <- all_data[(n_a +1):length(all_data)]
mean_a <- mean(a_perm)
sd_a <- sd(a_perm)
n_a <- length(a_perm)
se_a <- sd_a/sqrt(n_a)
mean_b <- mean(b_perm)
sd_b <- sd(b_perm)
n_b <- length(b_perm)
se_b <- sd_b/sqrt(n_b)
t_perm <- abs(mean_a - mean_b)/sqrt(se_a^2 + se_b^2)
t_perm_vector[i] <- t_perm
}
t_perm_vector[1000] <- t_empКак часто мы встречаем значение t-статистики как для изначальных выборок или больше?
А есть какая-то статистика, которая показывает вероятность встретить такое или более экстремальное значение t?…
[1] 0.001
Welch Two Sample t-test
data: Cushings$Tetrahydrocortisone[Cushings$Type == "a"] and Cushings$Tetrahydrocortisone[Cushings$Type == "b"]
t = -4.1, df = 11, p-value = 0.002
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-7.988 -2.438
sample estimates:
mean of x mean of y
2.967 8.180
Файл aml.csv содержит данные о влиянии регулярной химиотерапии на продолжительность ремиссии.
Прочитаем эти данные
time group
1 9 1
2 13 1
3 13 1
4 18 1
5 23 1
6 28 1
time представлена продолжительность ремиссии в днях.group указывает, к какой экспериментальной группе принадлежал пациент. В группе 1 проводилась регулярная химиотерапия, в группе 2 - нет.Ваша задача сравнить эти группы с помощью t-теста.
'data.frame': 23 obs. of 2 variables:
$ time : int 9 13 13 18 23 28 31 34 45 48 ...
$ group: int 1 1 1 1 1 1 1 1 1 1 ...
time group
0 0
therapy control
11 12
[1] 11 1
[1] 12 11
Есть отскакивающее значение в группе therapy, в этой группе оно 11 по порядку (видно на qqPlot()).
[1] 9 13 13 18 23 28 31 34 45 48 161
[1] 161
Пусть в этом случае это вполне реальное наблюдение, но это значение придется исключить, т.к. t-тест не устойчив к выбросам.
Или то же самое:
Welch Two Sample t-test
data: rem$time[rem$group == "therapy"][-11] and rem$time[rem$group == "control"]
t = 0.83, df = 20, p-value = 0.4
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-7.486 17.386
sample estimates:
mean of x mean of y
26.20 21.25
В датасете sleep содержатся данные об увеличении продолжительности сна по сравнению с контролем после применения двух снотворных препаратов (Cushny, Peebles, 1905, Student, 1908)
Одинаково ли два снотворных влияют на увеличение продолжительности сна?
Нужно проверить форму распределения в обеих группах.
Хорошо. Можно аппроксимировать нормальным распределением
Сравним увеличение продолжительности сна при помощи парного t-теста.
Paired t-test
data: sleep$extra[sleep$group == 1] and sleep$extra[sleep$group == 2]
t = -4.1, df = 9, p-value = 0.003
alternative hypothesis: true mean difference is not equal to 0
95 percent confidence interval:
-2.4599 -0.7001
sample estimates:
mean difference
-1.58
Paired t-test
data: sleep$extra[sleep$group == 1] and sleep$extra[sleep$group == 2]
t = -4.1, df = 9, p-value = 0.003
alternative hypothesis: true mean difference is not equal to 0
95 percent confidence interval:
-2.4599 -0.7001
sample estimates:
mean difference
-1.58
Кстати, если бы мы не учли зависимость между группами, мы пришли бы к неверному выводу. В этом можно убедиться, выполнив этот код: