Ответы, отчеты, курсовые, лекции 1-3 курс (1, 2, 3, 4, 5 семестр) ЧГУ КТ-43-15 / 3 семестр / R Language лабы (Сковорцов) / Анализ данных на языке R
.pdfwilcox.test(df1$Petal.Length, df1$Petal.Width, paired = T)
paired_wtest <- wilcox.test(df1$Petal.Length, df1$Petal.Width, paired = T)
paired_wtest$p.value
Задание 6.1. Воспользуемся еще одним встроенным набором данных в R - ToothGrowth. Данные позволяют исследовать рост зубов у морских свинок в зависимости от дозировки витамина C и типа потребляемых продуктов.
Сравните среднее значение длины зубов свинок, которые потребляли апельсиновый сок (OJ) с дозировкой 0.5 миллиграмм, со средним значением длины зубов свинок, которые потребляли аскорбиновую кислоту (VC) с дозировкой 2 миллиграмма.
Значение t - критерия сохраните в переменную t_stat.
Задание 6.2. В этом задании нужно проверить гипотезу о равенстве средних двух выборок. Загрузите один из доступных наборов данных в папке PW_6 по ссылке: https://goo.gl/VSIZ9c. Сначала с помощью теста Бартлетта проверьте гомогенность дисперсий двух выборок. В случае, если дисперсии значимо не отличаются (с уровнем 0.05), примените тест Стьюдента, иначе - непараметрический тест (Манна-Уитни).
Считать данные можно при помощи read.table().
Обратите внимание, что по умолчанию в t.test стоит var.equal = FALSE, так как мы будем применять его только в случае гомогенности (однородности) дисперсий, измените значение этого параметра на var.equal = TRUE. Сохраните в переменную main_stat получившийся p-value.
7. Применение дисперсионного анализа
Все используемые файлы доступны по ссылке: https://goo.gl/VSIZ9c.
Ранее мы уже использовали функции при агрегировании данных и использовании статистических тестов. Пришла пора познакомиться с ними более подробно. Знак “~” указывает на разбиение по группам, слева от тильды мы указываем что разбиваем, а справа как. Знак “+” говорит, что мы разбиваем на группы по нескольким факторам. Знак “:” означает, что разбиение на группы по одному фактору зависит от значения другого фактора.
Зависимая_переменная ~ независимая_переменная # однофакторная формула
Зависимая_переменная ~ независимая_переменная1 + независимая_переменная2 # двухфакторная
Зависимая_переменная ~ независимая_переменная1:независимая_переменная2 # двухфакторное взаимодействие
Зависимая_переменная ~ независимая_переменная1 + независимая_переменная2 + независимая_переменная1:независимая_переменная2 # главные эффекты и их взаимодействие
Зависимая_переменная ~ независимая_переменная1 * независимая_переменная2 # главные эффекты и их взаимодействие
Зависимая_переменная ~ независимая_переменная1 + независимая_переменная2 + независимая_переменная3 + независимая_переменная1:независимая_переменная2
Зависимая_переменная ~ (независимая_переменная1 + независимая_переменная2 + независимая_переменная3)^2 # главные эффекты и все их парные сочетания взаимодействия
Зависимая_переменная ~ независимая_переменная1 + Error(объект_повторного_измерения/независимая_переменн ая1) # повторяемые измерения
Перейдем к тому, как применяется дисперсионный анализ в R. Воспользуемся файлом shops.csv.
mydata <- read.csv('shops.csv')
Одним из способов применения дисперсионного анализа является функция aov(). Но ее результат, в отличии от статистических тестов, применяемых ранее, не позволяет оценить различие сравниваемых групп, поэтому необходимо к результату дисперсионного анализа применить функцию summary ().
fit <- aov(price ~ origin, data=mydata) summary(fit)
fit1 <- aov(price ~ origin + store, data=mydata)
summary(fit1)
Далее перейдем к анализу взаимодействия. Для начала визуализируем данные той модели, которую построили ранее.
pd = position_dodge(0.1) |
|
ggplot(mydata, aes(x = store, y = price, color |
= |
origin, group = origin)) + |
|
stat_summary(fun.data = mean_cl_boot, geom = |
|
'errorbar', width = 0.2, lwd = 0.8, position = |
pd)+ |
stat_summary(fun.data = mean_cl_boot, geom = |
'line', |
size = 1.5, position = pd) + |
|
stat_summary(fun.data = mean_cl_boot, geom = |
|
'point', size = 5, position = pd, pch=15) + |
|
theme_bw() |
|
Аналогичные с графиком результаты можно получить при помощи формул.
fit3 <- aov(price ~ origin + store + origin:store, data=mydata)
summary(fit3)
fit4 <- aov(price ~ origin * store, data=mydata) summary(fit4)
Выше мы провели диссперсионный анализ с использованием фактора, в котором всего два уровня. Такие же результаты с двухуровневым фактором можно было получить при помоши t-критерия Стьюдента. Что делать, если у нас много групп? Если попытаться провести дисперсионный анализ, то будет непонятно какие различия к какой группе относятся. Естественно, можно