T-тест у програмуванні на R: один зразок та парний приклад

⚡ Розумний підсумок

T-тест у R порівнює середні значення за допомогою функції t.test(), охоплюючи одну вибірку з фіксованою цільовою групою, двома незалежними групами та парними повторними вимірюваннями. У цьому покроковому посібнику виконується кожен варіант, правильно зчитується p-значення та перевіряються основні припущення.

  • 📐 Основна статистика: T-значення ділить спостережувану середню різницю на її стандартну похибку, тому більші величини суперечать нульовій гіпотезі.
  • 🧪 Однопробний тест: t.test(x, mu = 10) перевіряє один вектор на відповідність теоретичному значенню, такому як специфікація рецепту.
  • 👥 Двовибірковий тест: t.test(x, y) порівнює дві незалежні групи та за замовчуванням використовує поправку Велча для нерівної дисперсії.
  • 🔗 Парний тест: Додавання парного значення = TRUE перевіряє середнє значення внутрішньосуб'єктних відмінностей та видаляє спільну варіацію.
  • Перевірки припущень: Використовуйте shapiro.test() для нормальності та var.test() для рівної дисперсії, перш ніж повідомляти будь-яке p-значення.
  • 📊 Правило прийняття рішень: Значення p нижче 0.05 відхиляє нульову гіпотезу, але ніколи не доводить істинність альтернативної гіпотези.

T-тест в R Один парний зразок

Що таке статистичний висновок?

Статистичний висновок – це мистецтво формування висновків про розподіл даних. Фахівець з обробки даних часто стикається з питаннями, на які можна відповісти лише науково. Тому статистичний висновок – це стратегія перевірки істинності гіпотези, тобто її підтвердження даними.

Поширеною стратегією оцінки гіпотези є t-тест, який показує, чи рівні два середні значення. Він також відомий як Студентський тест. T-тест можна обчислити для:

  1. Один вектор проти фіксованого значення (одновибірковий t-тест)
  2. Два вектори з двох окремих груп (незалежний двовибірковий t-тест)
  3. Два вектори, виміряні на тих самих суб'єктах (парний t-критерій)

Кожен t-тест припускає, що дані вибірково відібрані випадковим чином, і що значення (або, для парного тесту, різниці) походять з приблизно нормально розподіленої генеральної сукупності. Незалежний варіант з двома вибірками додатково припускає, що дві групи незалежні одна від одної, а класичний варіант припускає, що їхні дисперсії рівні.

Що таке T-тест у програмуванні R?

Основна ідея Т-тесту полягає у використанні статистики для оцінки двох протилежних гіпотез:

  • H0нульова гіпотеза, що середнє значення генеральної сукупності дорівнює тестованому значенню
  • H1альтернативна гіпотеза, що середнє значення генеральної сукупності відрізняється від цього значення

t-критерій розроблений для малих розмірів вибірок, де нормальне наближення є ненадійним. Він вимагає, щоб дані мали приблизно нормальний розподіл.

Синтаксис T-тесту в R

Основний синтаксис t.test() у R:

t.test(x, y = NULL,
       mu = 0, var.equal = FALSE)
arguments:
- x : A vector to compute the one-sample t-test
- y: A second vector to compute the two sample t-test
- mu: Mean of the population under the null hypothesis
- var.equal: Specify whether the variances of the two vectors are equal. By default, set to `FALSE`
- paired: Set to `TRUE` when the two vectors are repeated measures on the same subjects

Перш ніж щось запускати, зіставте макет даних із правильним варіантом тесту.

Типи T-тестів у R

Вибір неправильного варіанту є найпоширенішою помилкою t-тесту, тому почніть із зіставлення макета даних із правильним викликом.

тип Використовуйте його, коли Виклик R
Один зразок Одна група порівняно з відомим цільовим значенням t.test(x, mu = значення)
Незалежна двовибіркова (Велч) Дві окремі групи, дисперсії можливо нерівні t.test(x, y)
Незалежні дві вибірки (об'єднані) Дві окремі групи з однаковою дисперсією t.test(x, y, змінна.дорівнює = TRUE)
У парі Ті самі суб'єкти вимірювалися двічі t.test(x, y, парні = TRUE)
Одностороння Тебе цікавить лише різниця в одному напрямку t.test(x, mu = значення, альтернатива = «більше»)

Після закінчення трьох груп t-тест більше не підходить. Перейдіть до Тест ANOVA, що утримує загальний коефіцієнт помилок на рівні 5 відсотків, замість того, щоб завищувати його при повторних попарних порівняннях.

Один зразок Т-тесту в R

Т-критерій однієї вибірки, або критерій Стьюдента, порівнює середнє значення вектора з теоретичним середнім, Один зразок Т-тесту в R. Формула, яка використовується для обчислення t-критерію:

Один зразок Т-тесту в R

Тут,

  • Один зразок Т-тесту в R відноситься до середнього
  • Один зразок Т-тесту в R до теоретичного середнього
  • s — стандартне відхилення
  • n кількість спостережень.

Щоб оцінити статистичну значущість t-критерію, потрібно обчислити р-значення, р-значення коливається від 0 до 1 і інтерпретується таким чином:

  • Значення p нижче 0.05 означає, що можна відхилити нульову гіпотезу. Зауважте, що відхилення H0 не те саме, що доведення істинності H1, це лише означає, що дані малоймовірні за умови H0.
  • Значення p вище 0.05 вказує на те, що у вас недостатньо доказів для відхилення нульової гіпотези.

Ви можете побудувати p-значення, дивлячись на відповідне абсолютне значення t-критерію в розподілі Стьюдента зі ступенями свободи, що дорівнює Один зразок Т-тесту в R

Наприклад, маючи 5 спостережень, ви порівнюєте своє t-значення з розподілом Стьюдента з 4 ступенями свободи при рівні довіри 95%. Щоб відхилити нульову гіпотезу в двосторонньому тесті, абсолютне t-значення має перевищувати 2.776.

Порівняйте таблицю нижче:

Один зразок Т-тесту в R

Один приклад T-тесту в R

Припустімо, ви компанія, що виробляє печиво. Кожне печиво має містити 10 грамів цукру. Печиво виробляється машиною, яка додає цукор у миску перед тим, як все змішати. Ви вважаєте, що машина не додає 10 грамів цукру на кожне печиво. Якщо ваше припущення вірне, машину потрібно полагодити. Ви зберегли рівень цукру тридцяти печива.

Примітка:: Ви можете створити рандомізований вектор за допомогою функції rnorm(). Ця функція генерує нормально розподілені значення. Основний синтаксис:

rnorm(n, mean, sd)
arguments
- n: Number of observations to generate
- mean: The mean of the distribution. Optional
- sd: The standard deviation of the distribution. Optional

Ви можете створити розподіл із 30 спостережень із середнім значенням 9.99 і стандартним відхиленням 0.04.

set.seed(123)
sugar_cookie <- rnorm(30, mean = 9.99, sd = 0.04)
head(sugar_cookie)

вихід:

## [1]  9.967581  9.980793 10.052348  9.992820  9.995172 10.058603

Щоб перевірити, чи рівень цукру відрізняється від рецептурного, можна використати t-тест для одного зразка. Ви можете провести перевірку гіпотези:

  • H0: Середній рівень цукру дорівнює 10
  • H1: Середній рівень цукру відрізняється від 10

Ви використовуєте рівень значущості 0.05.

# H0 : mu = 10
t.test(sugar_cookie, mu = 10)

Ось висновок:

Один приклад T-тесту в R

Значення p одновибіркового t-критерію становить 0.1079, що перевищує поріг 0.05. 95-відсотковий довірчий інтервал для середнього значення становить від 9.973 до 10.002 грама та містить цільове значення 10. Тому не можна відхилити H0: немає достатніх доказів того, що машина відхиляється від рецепту.

Незалежний двовибірковий t-тест у R

Незалежний двовибірковий t-критерій є найчастіше використовуваним варіантом, і він застосовується щоразу, коли два набори вимірювань надходять від різних суб'єктів: два цехи, два верстати, два лікувальні гілки.

Припустимо, що на фабриці працюють дві виробничі лінії, і ви хочете знати, чи заповнюють вони банки до однакової ваги.

set.seed(123)
line_a <- rnorm(25, mean = 500, sd = 8)
line_b <- rnorm(25, mean = 505, sd = 8)

# Welch test, the safe default
t.test(line_a, line_b)

# Pooled test, only when the variances are equal
t.test(line_a, line_b, var.equal = TRUE)

Прочитайте результат у чотири кроки.

  1. t — це стандартизований розмір розриву між двома середніми значеннями. Його знак відображає лише порядок, у якому ви передавали вектори.
  2. df — це ступені свободи. Велч отримує дробове значення; об'єднаний тест дає ціле число, що дорівнює n1 + n2 – 2.
  3. р-значення – це ймовірність побачити такий великий розрив, якби справжні середні значення були ідентичними.
  4. Довірчий інтервал обмежує справжню різницю. Коли вона містить нуль, різниця на цьому рівні не є суттєвою.

Якщо ваші дані знаходяться в одному фреймі даних з одним стовпцем значень та одним стовпцем коефіцієнтів, використовуйте замість цього інтерфейс формул, який легше читати та дозволяє уникнути розділення даних вручну:

t.test(weight ~ line, data = jars)

Яку версію використовувати. Залиште var.equal зі значенням за замовчуванням FALSE, якщо ви не перевірили та не підтвердили рівні дисперсії. Корекція Велча майже нічого не коштує, коли дисперсії збігаються, і захищає вас, коли вони не збігаються.

Парний T-тест у R

Парний t-критерій, який також називають t-критерієм залежної вибірки, застосовується, коли одну й ту саму групу вимірюють двічі. Типові застосування:

  • Тестування A / B: Порівняйте два варіанти
  • Дослідження випадок-контрольдо та після лікування тих самих суб'єктів

Приклад парного T-тесту в R

Компанії, що виробляє напої, цікаво знати ефективність програми знижок на продажі. Компанія вирішила стежити за щоденними розпродажами в одному зі своїх магазинів, де просувається програма. Наприкінці програми компанія хоче знати, чи є статистична різниця між середніми продажами магазину до та після програми.

  • компанія tracщодня відстежували продажі до початку програми. Це наш перший вектор.
  • Програма просувається протягом тижня, а продажі фіксуються щодня. Це наш другий вектор.
  • Ви виконаєте t-тест, щоб оцінити ефективність програми. Це називається парним t-тестом, оскільки значення обох векторів походять з одного розподілу (тобто з одного магазину).

Перевірка гіпотези полягає в:

  • H0: немає різниці в середньому
  • H1: Два засоби різні

Пам'ятайте, що класичний t-тест припускає невідому, але однакову дисперсію в обох групах. Реальні дані рідко точно задовольняють це, а ігнорування різниці може спотворити результат.

Рішенням є t-критерій Велча, який послаблює припущення про рівну дисперсію. R застосовує його за замовчуванням, оскільки var.equal має значення FALSE, якщо не вказано інше. У цьому наборі даних обидва вектори були згенеровані з однаковим стандартним відхиленням, тому ви можете сміливо встановити var.equal = TRUE.

Ви створюєте два випадкових вектора з розподілу Гауса з вищим середнім для продажів після програми.

set.seed(123)
# sales before the program
sales_before <- rnorm(7, mean = 50000, sd = 50)
# sales after the program.This has higher mean
sales_after <- rnorm(7, mean = 50075, sd = 50)
# draw the distribution
t.test(sales_before, sales_after,var.equal = TRUE)

Приклад парного T-тесту в R

Значення p становить 0.04606, що трохи нижче порогу 0.05, тому ви відхиляєте H0 і робите висновок, що два середні значення суттєво відрізняються. Програма знижок, схоже, збільшила продажі.

⚠️ Важливо: вищезазначений виклик порівнює два вектори як незалежний зразки. Оскільки обидві серії є вимірюваннями в одному цеху, статистично коректний виклик додає парний = TRUE:

t.test(sales_before, sales_after, paired = TRUE)

Парна форма перевіряє середнє значення денних різниць замість різниці двох середніх значень. Вона усуває варіацію на рівні цеху, спільну для обох векторів, і тому має більшу статистичну потужність.

Як перевірити припущення T-тесту в R

Значення p t-критерію має сенс лише тоді, коли його припущення виконуються. Кожне з них можна перевірити безпосередньо.

1. Нормальність. Одновибіркові та двовибіркові тести припускають, що значення приблизно нормальні; парний тест припускає, що Відмінності є. Перегляньте графік QQ та підтвердьте за допомогою тесту Шапіро-Уілка:

qqnorm(sugar_cookie); qqline(sugar_cookie)
shapiro.test(sugar_cookie)

# for a paired design, test the differences
shapiro.test(sales_after - sales_before)

Значення p Шапіро-Вілка вище 0.05 означає, що нормальність не можна відкинути. При більш ніж приблизно 30 спостереженнях на групу центральна гранична теорема все одно робить t-критерій стійким до помірної асиметрії.

2. Рівна дисперсія. Цього потребує лише об'єднаний двовибірковий тест. Перевірте це за допомогою F-тесту:

var.test(line_a, line_b)

Значення p вище 0.05 підтверджує рівні дисперсії, що виправдовує var.equal = TRUE.

3. Незалежність. Це випливає з дизайну дослідження і не може бути перевірено постфактум. Якщо один і той самий суб'єкт робить внесок в обидва вектори, незалежний тест – це просто неправильний інструмент, і вам потрібно paired = TRUE.

Коли припущення не виправдовується. Для явно ненормальних даних з малими вибірками використовуйте альтернативи на основі рангів: wilcox.test(x, y) замінює двовибірковий t-тест, а wilcox.test(x, y, paired = TRUE) замінює парну версію. Жоден з них не вимагає нормальності, хоча обидва мають невелику потужність, коли дані насправді нормальні.

T-тест у R: ключові висновки та довідник з тестів

  • Статистичний висновок — це мистецтво створення висновків щодо розподілу даних.
  • Т-тест належить до сімейства інференціальних статистичних даних. Його зазвичай використовують, щоб з’ясувати, чи є статистична різниця між середніми значеннями двох груп.
  • Одновибірковий t-критерій, або критерій Стьюдента, порівнює середнє значення вектора з теоретичним середнім значенням.
  • Парний t-критерій, або t-критерій залежної вибірки, застосовується, коли одну й ту саму групу вимірюють двічі.

У таблиці нижче підсумовано кожен з вищезазначених тестів:

Перевірити Гіпотеза для перевірки р-значення Code Необов'язковий аргумент
одновибірковий t-тест Середнє значення вектора відрізняється від теоретичного середнього 0.05
t.test(x, mu = mean)
t-критерій парної вибірки Середнє значення A відрізняється від середнього значення B для тих самих суб'єктів 0.05
t.test(A, B, paired = TRUE)
var.equal = TRUE

Якщо ви готові припустити рівні дисперсії в незалежному тесті з двома вибірками, встановіть var.equal = TRUE. Залиште значення за замовчуванням FALSE, щоб виконати безпечнішу корекцію Велча.

Поширені запитання

Парний тест аналізує відмінності між суб'єктами, коли ті самі суб'єкти вимірюються двічі. Незалежний тест порівнює дві окремі групи. Використання незалежного тесту на парних даних відкидає інформацію та зменшує статистичну потужність.

Використовуйте метод Велча щоразу, коли ви не підтвердили рівність дисперсій, тому R застосовує його за замовчуванням. Він майже не витрачає енергію, коли дисперсії збігаються, і захищає відсоток помилок, коли вони не збігаються.

Для малих вибірок перейдіть до рангового тесту Вілкоксона або знакового рангового тесту за допомогою wilcox.test(). Для більших вибірок центральна гранична теорема забезпечує надійність t-критерію, незважаючи на помірні відхилення від нормальності.

Команди використовують парні t-тести для порівняння двох моделей з ідентичними складками перехресної перевірки та для оцінки реальності результату A/B-експерименту. Парний дизайн усуває варіації від складки до складки з порівняння.

Так. Помічники ШІ можуть пояснювати ступені свободи, перекладати довірчі інтервали простою мовою та попереджати, коли було обрано неправильний варіант. Підтверджуйте кожне значення власними результатами shapiro.test() та var.test().

Підсумуйте цей пост за допомогою: