Как выполнить t-тест для парных выборок в R


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

Например, предположим, что мы хотим знать, значительно ли влияет определенная учебная программа на успеваемость студента на конкретном экзамене. Чтобы проверить это, у нас есть 20 учеников в классе, которые проходят предварительный тест. Затем каждый из студентов участвует в учебной программе каждый день в течение двух недель. Затем учащиеся пересдают тест аналогичной сложности.

Чтобы сравнить разницу между средними баллами по первому и второму тесту, мы используем парный t-критерий, потому что для каждого учащегося его балл за первый тест можно сравнить с баллом за второй тест.

Как провести парный t-тест

Для проведения парного t-теста мы можем использовать следующий подход:

Шаг 1: Сформулируйте нулевую и альтернативную гипотезы.

Н 0 : мк д = 0

H a : μ d ≠ 0 (двусторонний)
H a : µ d > 0 (односторонний)
H a : µ d < 0 (односторонний)

где μ d — средняя разница.

Шаг 2: Найдите статистику теста и соответствующее значение p.

Пусть a = балл учащегося за первый тест, а b = балл учащегося за второй тест. Чтобы проверить нулевую гипотезу о том, что истинная средняя разница между результатами теста равна нулю:

  • Рассчитайте разницу между каждой парой оценок (d i = b i – a i )
  • Вычислить среднюю разницу (d)
  • Рассчитать стандартное отклонение разностей s d
  • Рассчитайте t-статистику, которая равна T = d / (s d / √n)
  • Найдите соответствующее p-значение для t-статистики с n-1 степенями свободы.

Шаг 3: Отклонить или не отклонить нулевую гипотезу в зависимости от уровня значимости.

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

Как провести парный t-тест в R

Чтобы провести парный t-тест в R, мы можем использовать встроенную функцию t.test() со следующим синтаксисом:

t.test (x, y, парный = ИСТИНА, альтернативный = «двухсторонний»)

  • x,y: два числовых вектора, которые мы хотим сравнить
  • парный: логическое значение, указывающее, что мы хотим вычислить парный t-тест
  • альтернатива: альтернативная гипотеза. Это может быть установлено на «двусторонний» (по умолчанию), «больше» или «меньше».

В следующем примере показано, как провести парный t-тест, чтобы выяснить, есть ли существенная разница в средних баллах между предварительным тестом и пост-тестом для 20 учащихся.

Создайте данные

Сначала мы создадим набор данных:

#create the dataset
data <- data.frame(score = c(85 ,85, 78, 78, 92, 94, 91, 85, 72, 97,
 84, 95, 99, 80, 90, 88, 95, 90, 96, 89,
 84, 88, 88, 90, 92, 93, 91, 85, 80, 93,
 97, 100, 93, 91, 90, 87, 94, 83, 92, 95),
 group = c(rep('pre', 20), rep('post', 20)))

#view the dataset
data

# score group
#1 85 pre
#2 85 pre
#3 78 pre
#4 78 pre
#5 92 pre
#6 94 pre
#7 91 pre
#8 85 pre
#9 72 pre
#10 97 pre
#11 84 pre
#12 95 pre
#13 99 pre
#14 80 pre
#15 90 pre
#16 88 pre
#17 95 pre
#18 90 pre
#19 96 pre
#20 89 pre
#21 84 post
#22 88 post
#23 88 post
#24 90 post
#25 92 post
#26 93 post
#27 91 post
#28 85 post
#29 80 post
#30 93 post
#31 97 post
#32 100 post
#33 93 post
#34 91 post
#35 90 post
#36 87 post
#37 94 post
#38 83 post
#39 92 post
#40 95 post

Визуализируйте различия

Далее мы рассмотрим сводную статистику двух групп с помощью функций group_by() иsumm() из библиотеки dplyr :

#load *dplyr* library
library(dplyr)

#find sample size, mean, and standard deviation for each group
data %>%
 group_by(group) %>%
 summarise (
 count = n(),
 mean = mean(score),
 sd = sd(score)
 )

# A tibble: 2 x 4
# group count mean sd
# 
#1 post 20 90.3 4.88
#2 pre 20 88.2 7.24

Мы также можем создавать диаграммы с помощью функции boxplot() в R, чтобы просмотреть распределение оценок для групп до и после:

boxplot(score~group,
 data=data,
 main="Test Scores by Group",
 xlab="Group",
 ylab="Score",
 col="steelblue",
 border="black"
) 
Блочные диаграммы в R

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

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

Проведите парный t-тест

Прежде чем проводить парный t-критерий, мы должны проверить, что распределение различий нормально (или приблизительно нормально) распределено. Для этого мы можем создать новый вектор, определяемый как разница между оценками до и после, и выполнить тест Шапиро-Уилка на нормальность этого вектора значений:

#define new vector for difference between post and pre scores
differences <- with(data, score[group == "post"] - score[group == "pre"])

#perform shapiro-wilk test for normality on this vector of values
shapiro.test(differences)

# Shapiro-Wilk normality test
#
#data: differences
#W = 0.92307, p-value = 0.1135
#

Значение p теста составляет 0,1135, что больше, чем альфа = 0,05. Таким образом, мы не можем отвергнуть нулевую гипотезу о том, что наши данные нормально распределены. Это означает, что теперь мы можем приступить к проведению парного t-теста.

Мы можем использовать следующий код для проведения парного t-теста:

t.test (score ~ group, data = data, paired = TRUE)

# Paired t-test
#
#data: score by group
#t = 1.588, df = 19, p-value = 0.1288
#alternative hypothesis: true difference in means is not equal to 0
#95 percent confidence interval:
# -0.6837307 4.9837307
#sample estimates:
#mean of the differences 
# 2.15

Из вывода мы видим, что:

  • Тестовая статистика t равна 1,588 .
  • Значение p для этой тестовой статистики с 19 степенями свободы(df) равно 0,1288 .
  • 95% доверительный интервал для средней разницы составляет (-0,6837, 4,9837) .
  • Средняя разница между баллами для группы до и после лечения составляет 2,15 .

Таким образом, поскольку наше p-значение меньше нашего уровня значимости 0,05, мы не сможем отвергнуть нулевую гипотезу о том, что две группы имеют статистически значимые средние значения.

Другими словами, у нас нет достаточных доказательств, чтобы сказать, что средние баллы между группами до и после лечения статистически значимо различаются. Это означает, что учебная программа не оказала существенного влияния на результаты тестов.

Кроме того, наш доверительный интервал 95% говорит о том, что мы «уверены на 95%» в том, что истинная средняя разница между двумя группами находится между -0,6837 и 4,9837 .

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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.