40
Тема 6 Сергей Мастицкий БГУ, Минск, май 2014

Реализация классических статистических тестов в системе R

Embed Size (px)

DESCRIPTION

Приведены пример выполнения ряда классических статистических тестов в среде статистических вычислений R (тесты Стьюдента, Фишера, хи-квадрат и др.)

Citation preview

Page 1: Реализация классических статистических тестов в системе R

Тема 6

Сергей Мастицкий БГУ, Минск, май 2014

Page 2: Реализация классических статистических тестов в системе R

6.1. t-тест для одной выборки

Page 3: Реализация классических статистических тестов в системе R

H0: выборка происходит из нормально

распределенной генеральной совокупности

со средним значением µ0 :

00 : H

Author: Sergey Mastitsky

Page 4: Реализация классических статистических тестов в системе R

xS

xt 0

• Если t попадает за пределы области принятия, H0 отклоняется

• Тождественно: рассчитывается вероятность получить наблюдаемое (или

более высокое) значение t при верной H0. При P < 0.05, H0 отклоняется

Author: Sergey Mastitsky

Page 5: Реализация классических статистических тестов в системе R

# Дневное потребление энергии (kJ/day) у 11 женщин:

> d.intake <- c(5260, 5470, 5640,

6180, 6390, 6515,

6805, 7515, 7515,

8230, 8770)

> mean(d.intake)

[1] 6753.6

> sd(d.intake)

[1] 1142.1

Author: Sergey Mastitsky

Page 6: Реализация классических статистических тестов в системе R

> t.test(d.intake, mu = 7725)

Author: Sergey Mastitsky

Page 7: Реализация классических статистических тестов в системе R

6.2. t-тест для двух выборок

Page 8: Реализация классических статистических тестов в системе R

H0: обе выборки происходят из одной и

той же генеральной совокупности:

210 : H

Author: Sergey Mastitsky

Page 9: Реализация классических статистических тестов в системе R

Если t оказывается за пределами области принятия, H0

отклоняется

Тождественно: рассчитывается вероятность получить

наблюдаемое (или более высокое) значение t при

верной H0. При P < 0.05, H0 отклоняется

2121

21

,21xxxx

xx

SSSгдеS

xxt

Только если дисперсии не различаются. Иначе используется тест Уэлча

Author: Sergey Mastitsky

Page 10: Реализация классических статистических тестов в системе R

# Наборы данных из книги Peter Dalgaard (2008):

> library(ISwR)

# Дневной расход энергии у женщин с

избыточным и недостаточным весом: > data(energy)

> attach(energy)

> energy

Author: Sergey Mastitsky

Page 11: Реализация классических статистических тестов в системе R

> t.test(expend ~ stature)

Author: Sergey Mastitsky

Page 12: Реализация классических статистических тестов в системе R

> t.test(expend ~ stature,

var.equal = TRUE)

Author: Sergey Mastitsky

Page 13: Реализация классических статистических тестов в системе R

5.3. Сравнение двух дисперсий

Подробнее см.:

http://r-analytics.blogspot.de/2012/03/f.html

Page 14: Реализация классических статистических тестов в системе R

При сравнении двух средних R автоматически

выполняет тест Уэлча. Мы можем легко

проверить необходимо ли это, сравнив групповые дисперсии:

> var.test(expend ~ stature)

Author: Sergey Mastitsky

Page 15: Реализация классических статистических тестов в системе R

Чувствителен к отклонениям от

нормального распределения

Неприменим к зависимым выборкам

Author: Sergey Mastitsky

Page 16: Реализация классических статистических тестов в системе R

6.4. Формальные методы проверки нормальности

распределения

Подробнее см.: http://r-analytics.blogspot.de/2012/06/blog-post_14.html

Page 17: Реализация классических статистических тестов в системе R

> e.lean <- energy$expend[

energy$stature == "lean"]

> e.obese <- energy$expend[

energy$stature == "obese"]

> qqnorm(e.lean); qqline(e.lean)

> qqnorm(e.obese); qqline(e.obese)

Author: Sergey Mastitsky

Page 18: Реализация классических статистических тестов в системе R

-1.5 0.0 1.0

67

89

10

Lean

Theoretical Quantiles

Sa

mp

le Q

ua

ntile

s

-1.5 -0.5 0.5 1.59

10

11

12

Obese

Theoretical Quantiles

Sa

mp

le Q

ua

ntile

s

Author: Sergey Mastitsky

Page 19: Реализация классических статистических тестов в системе R

> shapiro.test(e.lean)

> shapiro.test(e.obese)

Распределение нормальное

Распределение ненормальное (?)

Author: Sergey Mastitsky

Page 20: Реализация классических статистических тестов в системе R

6.5. Тест Уилкоксона

Подробнее см.: http://r-analytics.blogspot.de/2012/05/blog-post_20.html

Page 21: Реализация классических статистических тестов в системе R

t-тест довольно устойчив к небольшим

отклонениям от условия нормальности

Однако часто при работе с биологическими

данными отклонения будут слишком большими

=> следует использовать непараметрический

аналог, ранговый критерий Уилкоксона

Author: Sergey Mastitsky

Page 22: Реализация классических статистических тестов в системе R

# Суточное потребление энергии у женщин: > wilcox.test(d.intake, mu = 7725)

Author: Sergey Mastitsky

Page 23: Реализация классических статистических тестов в системе R

# Сравнение расхода энергии у женщин с избыточным и недостаточным весом:

> wilcox.test(expend ~ stature)

Author: Sergey Mastitsky

Page 24: Реализация классических статистических тестов в системе R

При числе наблюдений <6 тест просто по

определению не может быть значимым на

уровне 5%

Тест также чувствителен к наличию значений

с одинаковыми рангами – в этих случаях

точные значения P вычислить невозможно (но

это не является проблемой при больших

выборках)

Author: Sergey Mastitsky

Page 25: Реализация классических статистических тестов в системе R

6.6. Сравнение зависимых выборок

Подробнее см.: http://r-analytics.blogspot.de/2012/03/t.html http://r-analytics.blogspot.de/2012/05/blog-post_20.html

Page 26: Реализация классических статистических тестов в системе R

Наблюдения выполняются

на одних и тех же

экспериментальных

единицах

Рассчитываются

индивидуальные разницы,

которые потом

усредняются и

сравниваются с ожидаемой

средней разницей До После

Author: Sergey Mastitsky

Page 27: Реализация классических статистических тестов в системе R

> library(ISwR)

# Потребление энергии у женщин в пред- и пост-менструальный период

> data(intake)

> intake

pre post

1 5260 3910

2 5470 4220

3 5640 3885

... Author: Sergey Mastitsky

Page 28: Реализация классических статистических тестов в системе R

> attach(intake)

> post - pre

[1] -1350 -1250 -1755 -1020 -745

[6] -1835 -1540 -1540 -725 -1330

[11] -1435

> mean(post-pre)

[1] -1320.455

Author: Sergey Mastitsky

Page 29: Реализация классических статистических тестов в системе R

# Проверка гипотезы о том, в среднем индивидуальные разницы равны нулю:

> t.test(pre, post, paired = T)

Author: Sergey Mastitsky

Page 30: Реализация классических статистических тестов в системе R

> wilcox.test(pre, post, paired = T)

Author: Sergey Mastitsky

Page 31: Реализация классических статистических тестов в системе R

6.7. Сравнение пропорций

См. также: http://r-analytics.blogspot.de/2012/08/blog-post.html

Page 32: Реализация классических статистических тестов в системе R

Предположим, мы исследовали 2 популяции некоторого вида моллюсков

В популяции 1, 24 из 158 (15.2%) моллюсков оказались заражены паразитами

В популяции 2, зараженными были 15 из 165 (9.1%) моллюсков

Насколько существенны различия между этими двумя популяциями по уровню зараженности?

Author: Sergey Mastitsky

Page 33: Реализация классических статистических тестов в системе R

# Данные должны быть представлены в виде двух векторов

# Один вектор содержит число “успешных

испытаний”: > infected <- c(24, 15)

# Второй – общее число “испытаний” : > examined <- c(158, 165)

Author: Sergey Mastitsky

Page 34: Реализация классических статистических тестов в системе R

> prop.test(infected, examined)

Author: Sergey Mastitsky

Page 35: Реализация классических статистических тестов в системе R

Две (или более) пропорции можно также сравнить при помощи критерия хи-квадрат: chisq.test()

Данные должны быть представлены в виде

таблицы сопряженности 2x2

E

EO 22 )(

Author: Sergey Mastitsky

Page 36: Реализация классических статистических тестов в системе R

> inf.data <- matrix(

c(infected, examined-infected),

nrow = 2,

dimnames = list(c("Pop1", "Pop2"), c("Infected", "Noninfected")))

> inf.data

Infected Noninfected

Pop1 24 134

Pop2 15 150

Author: Sergey Mastitsky

Page 37: Реализация классических статистических тестов в системе R

> chisq.test(inf.data)

Author: Sergey Mastitsky

Page 38: Реализация классических статистических тестов в системе R

Когда ожидаемые частоты ≤5, критерий хи-квадрат неприменим

В таких случаях следует использовать точный критерий Фишера

Предположим, что данные по моллюскам выглядели так:

> infected <- c(1, 9)

> examined <- c(9, 14)

Author: Sergey Mastitsky

Page 39: Реализация классических статистических тестов в системе R

> inf.data <- matrix(

c(infected, examined-infected),

nrow = 2,

dimnames = list(c("Pop1", "Pop2"), c("Infected", "Noninfected"))) > chisq.test(inf.data)$expected

Author: Sergey Mastitsky

Page 40: Реализация классических статистических тестов в системе R

> fisher.test(inf.data)

# Сравним с P-значением теста хи-квадрат:

> chisq.test(inf.data)$p.value

[1] 0.0376

)1/(

)1/(

22

11

pp

ppratioodds

Author: Sergey Mastitsky