[МУЗЫКА] [ЗВУК]
[ЗВУК] Тема
сегодняшней практики — сравнение групп.
Мы посмотрим, как сравнивать среднее с константой, как сравнить среднее двух
групп и как сравнить дисперсии двух групп из двух выборок.
Делать мы все это будем с помощью Jupyter, с помощью R.
И первое,
что необходимо сделать — это как всегда открыть пустой документ и считать данные.
В качестве исходных данных у нас будут данные из практики с регрессией.
И считываем их
с помощью read.csv, как всегда.
[ЗВУК] [ЗВУК]
Не забываем поставить разделитель между
столбцами и между дробной частью и целой.
[ЗВУК] Также поставим,
что у нас здесь есть заголовок в наших данных.
[ЗВУК] Посмотрим
наши данные с помощью команды опять же summary.
Напомним, что у нас там вообще было, что есть.
Вот такой вот большой набор данных, здесь у нас есть клики,
звонки, переходы на сайт, средняя позиция, дни недели и так далее.
Есть и социальный аккаунт.
Но нас здесь будут интересовать только лишь клики.
То есть мы посмотрим, чему равны клики, допустим,
во вторник и в среду, то есть во второй день и в третий день.
И попробуем сравнить их средние, то есть чему равны,
то есть проверим гипотезу о том, что, допустим,
их средние равны некоторой константе, и потом сравним выборки между собой.
Но первое, что нам необходимо сделать — это вообще выделить их, то есть
выделить сначала клики только второго дня, то есть вторника и только третьего дня.
Для этого мы воспользуемся, как всегда, нашими фильтрами.
Создадим переменную dataSecond,
которая будет отвечать за второй день.
[ЗВУК] И
считаем у нее только те строки,
где опять же день недели — это второй.
Для этого опять же пишем data
DayOfWeek = 2.
[ЗВУК] И здесь не будем
брать всю целиком таблицу — возьмем только лишь клики, то есть только первый столбец.
[ЗВУК] Теперь
сделаем то же самое с вторым,
то есть третьим днем — со вторым набором данных.
Назовем переменную DataTherd.
[ЗВУК] Все
пишем то же самое, только здесь теперь вместо DayOfWeek 2 ставим
3.
И так же считываем только первый столбец,
только-только клики нас в рамках текущего занятия интересуют.
Давайте посмотрим на данные, что у нас там получилось, например,
во вторник какие там средние и так далее.
Скорее всего, они примерно такие же, как и в общем.
Мы видим, что у нас вот так выглядит,
что медиана = 6, а среднее — 10.
Давайте теперь проверим о том, что у нас, допустим, среднее = 10.
Чтобы проверить эту гипотезу,
можно воспользоваться двумя тестами: это Вилкоксона и T-тест.
Как мы помним, T-тест, он требует нормальности.
Но, скорее всего, если нормальности ждать не стоит, давайте построим гистограмму,
посмотрим — может, у нас тут и будет.
Для этого опять же пользуемся командой
hist dataSecond
breaks Freedman-Diaconis, то есть разбиение Фридмана-Диакониса должно быть.
И посмотрим, что у нас получается.
Вот такая вот гистограмма.
Как видим, здесь очень далеко до нормальности, однако мы
все равно воспользуемся T-тестом, чтобы проверить, что он вообще работает.
Итак, что мы сделаем?
Мы сейчас проверим с помощью критерия Вилкоксона и T-теста,
то есть Стьюдента, гипотезу о том, что среднее количество кликов во вторник = 10.
Начнем с критерия Вилкоксона, потому что он непараметрический, и, скорее всего,
он покажет более правильный результат, а потом проверим на T-тест,
хотя от теста чего-то ждать, я думаю, не стоит.
Для этого пишем wilcox, дальше пишем test,
как всегда, потому что это тест, критерий, наш набор данных,
а именно dataSecond,
то есть проверяем, допустим, только вторник.
И дальше мы должны записать то, вообще чему у нас предполагается среднее,
то есть пишем mu = 10.
Запускаем.
Видим уже знакомое нам окно, а именно в том,
что нам напоминают сначала, что мы делали, то есть Wilcoxon
signed rank test with coninuity correction — это вот то, что мы сейчас сделали.
Потом он напоминает набор данных, показывает значения статистики и p-value.
И также говорит о том, какая альтернативная гипотеза.
Альтернативная гипотеза — что наш сдвиг не равен 10.
Здесь мы видим что?
Здесь видим опять же значение статистики,
оно нам ни о чем не говорит — 13336 мне ни о чем не говорит.
Ну, много.
p-value получилось очень маленькое, порядка 1 / 1000, чуть побольше.
Гипотеза отвергается, то есть на самом деле гипотеза не равна,
среднее не равно 10.
Теперь проверим все то же самое с помощью Стьюдента.
Посмотрим, что будет.
Интересно всегда проверить, что будет, если что-то, что не должно работать,
заставить работать.
Для этого мы напишем опять же T-тест.
В этом плане T-тест, конечно, удобнее — он короче,
чем Вилкоксон-тест в плане писать.
dataSecond, опять же указываем среднее
наше ожидаемое и смотрим, что получится.
Видим, что информации здесь гораздо больше.
И главное, что мы здесь видим — о том, что p-value = 0.41.
Это говорит о том, что гипотеза не отвергается,
то есть T-тест довольно уверенно говорит нам о том, что да, среднее = 10.
Хотя до этого Вилкоксон сказал, что нет, не равно.
Таким образом, у нас противоречие между двумя тестами.
Кому из них доверять?
Конечно, доверять надо Вилкоксону в данном случае, потому что данные опять же
ненормальные и, вообще использование здесь T-теста как бы не очень правильное.
Поэтому вот такая картина может возникнуть,
когда вы применяете не тот критерий, когда у вас не те условия.
Поэтому всегда важно знать,
чтобы ваш критерий был подходящий для текущей ситуации.
Поэтому в текущей ситуации подходит Вилкоксон, поэтому ему верим.
Теперь сравним среднее между двумя выборками,
то есть между кликами во вторник и в среду.
Для этого пишем все то же самое, то есть, допустим, сначала с помощью критерия
Вилкоксона, пишем так же wilcox.test, пишем данные
dataSecond, то есть данные за вторник.
И рядом просто пишем данные за среду — dataThird.
Смотрим, что получилось.
Гипотеза — опять же смотрим на p-value, — гипотеза снова не отвергается.
То есть клики в среду в среднем равны кликам во вторник.
Давайте построим гистограмму и посмотрим на гистограмме, так ли это.
Просто визуально оценим, как распределены клики по средам.
Для этого так же пишем hist dataThird.
[ЗВУК] Не забываем указать Фридмана-Диакониса.
Почему бы его не сделать по умолчанию?
[ЗВУК] Что можно сказать?
Что, действительно, данные несколько похожи, очень ненормальные и как-то
они даже несколько на экспоненциальной либо на [НЕРАЗБОРЧИВО] напоминают нам.
Дальше что мы сделаем?
Давайте проверим его с помощью T-теста.
Что же скажет он?
Опять же тот же самый синтаксис, только здесь пишем не wilcox.test,
а t.test(dataSecond).
[ЗВУК] И
он тоже — в этот раз он сработал верно.
То есть видим, что p-value получилось 0.26 — это говорит о том,
что гипотеза не отвергается, что действительно они равны между собой.
Также он нам любезно выдал и написал, чему равны вообще средние x и y.
Видим, что 10.6 и 11.9 — действительно, довольно близки друг к другу.
Обычно этого недостаточно, и давайте проверим, что у нас и дисперсии равны.
Для этого воспользуемся критерием Муда.
Для этого запишем mood.test и дальше все то же самое, а именно dataSecond,
dataThird.
И видим, что он нам говорит, критерий Муда — он нам говорит о том,
что гипотеза тоже не отвергается, то есть их дисперсии тоже, скорее всего, равны.
Таким образом, у нас получилось, что у наших двух выборок из среднего количества
кликов во вторник и по средам клики — их средние равны,
то есть гипотезы не отвергаются, и дисперсии тоже не равны.
То есть, скорее всего, у нас все основания предполагать,
что данные выборки из какого-то одного распределения.
А в следующий раз Ольга вам расскажет, как это все делать в SPSS.