Загрузите данные по пассажирам «Титаника» в R.
titan <- read.csv("https://raw.githubusercontent.com/allatambov/Py-programming-3/master/28-05/Titanic.csv")
# уберем строки с пропущенным портом
titan <- titan[titan$Embarked != "",]
Постройте гистограммы для стоимости билета (переменная Fare
) по группам в зависимости от того, в каком порту пассажиры взошли на борт «Титаника» (переменная Embarked
). Подберите подходящий шаг (при необходимости). Приведите код R. Можно ли считать, что распределение Fare
по группам является нормальным?
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.5.2
ggplot(data = titan, aes(x = Fare)) + geom_histogram(binwidth = 50) + facet_wrap(~Embarked)
Нет, нельзя. Во всех группах распределение несимметричное, очень скошенное.
Проверьте формально (с помощью критерия), является ли распределение Fare
по группам нормальным. Приведите код R и ваши выводы.
# сохраняем в различные датасеты
titC <- titan[titan$Embarked == 'C',]
titS <- titan[titan$Embarked == 'S',]
titQ <- titan[titan$Embarked == 'Q',]
# проверяем с помощью критерия Шапиро-Уилка
shapiro.test(titC$Fare)
##
## Shapiro-Wilk normality test
##
## data: titC$Fare
## W = 0.61764, p-value < 2.2e-16
shapiro.test(titS$Fare)
##
## Shapiro-Wilk normality test
##
## data: titS$Fare
## W = 0.58251, p-value < 2.2e-16
shapiro.test(titQ$Fare)
##
## Shapiro-Wilk normality test
##
## data: titQ$Fare
## W = 0.43638, p-value = 1.151e-15
Во всех трех случаях гипотеза о нормальности отвергается (p-value близко к нулю).
Постройте ящики с усами для стоимости билета (переменная Fare
) по группам в зависимости от того, в каком порту пассажиры взошли на борт «Титаника» (переменная Embarked
). Приведите код R. В какой группе стоимость билета, в среднем, выше?
ggplot(data = titan, aes(y = Fare)) + geom_boxplot() + facet_wrap(~Embarked)
В первой группе, порт C. Очень много выбросов, если бы стояла задача удалить нетипичные наблюдения, мы бы обязательно это сделали.
В соответствии с результатами, полученными в заданиях выше, выберите подходящий критерий для сравнения стоимости билетов у пассажиров, взошедших на борт «Титаника» в разных портах. Приведите код R. Сделайте выводы.
Так как распределение показателя в группах не является нормальным, используем критерий Краскела-Уоллиса:
kruskal.test(titan$Fare ~ titan$Embarked)
##
## Kruskal-Wallis rank sum test
##
## data: titan$Fare by titan$Embarked
## Kruskal-Wallis chi-squared = 74.404, df = 2, p-value < 2.2e-16
Значение статистики критерия, которое имеет распределение хи-квадрат, равно 74.404 (к слову, никогда не может быть отрицательным). Распределение хи-квадрат, которое имеет эта статистика, имеет две степени свободы (число групп минус 1). P-value примерно равно нулю, а значит, на любом уровне значимости том, что выборки взяты из одного распределения.