Добавил:
По своей натуре перфекционист. Поэтому люблю все аккуратно оформлять и упорядочивать, складывать по полочкам. Вот, не пропадать же добру, нажитому за четыре кропотливых семестра. Тут я выложил все мои ответы, курсовые, отчеты и некоторые ДЗ. Они могут вам помочь для получения зачета или сдачи экзамена. Если чего-то не нашли в папочках, то попытайте удачу в разделе НЕОТСОРТИРОВАННОЕ на моей страничке, там все 4 семестра разложены по папкам. ГРУППА КТ-43-15. Годы обучения 2015-2019. Коллекция будет пополняться. Что ж, удачки :З Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

R Language (Сковорцов) / Анализ данных на языке R

.pdf
Скачиваний:
349
Добавлен:
15.09.2017
Размер:
451.1 Кб
Скачать

library("ggplot2")

mydata <- as.data.frame(HairEyeColor)

obj <- ggplot(data = , aes(x = , y = Freq)) + geom_bar(stat="identity", position = ) + scale_fill_manual(values=c("Brown", "Blue", "Darkgrey", "Darkgreen"))

Задание 5.3. Воспользуемся данными diamonds из библиотеки ggplot2. При помощи критерия Хи - квадрат проверьте гипотезу о взаимосвязи качества огранки бриллианта (сut) и его цвета (color). В переменную MainStat сохраните значение статистики критерия Хи - квадрат. Обратите внимание, MainStat должен быть вектором из одного элемента, а не списком (листом).

Задание 5.4. При помощи точного критерия Фишера проверьте гипотезу о взаимосвязи типа коробки передач (am) и типа двигателя (vs) в данных mtcars. Результат выполнения критерия сохраните в переменную.Получившийся p - уровень значимости сохраните в переменную FisherTest.

6. Сравнение двух групп

Перейдем к более сложным тестам. Начнем с того, что воспользуемся встроенным набором данных.

?iris

df <- iris

str(df)

При просмотре структуры можно заметить, что количество категорий - три. Избавимся от одной из них.

df1 <- subset(df, Species != "setosa") str(df1)

table(df1$Species)

Далее посмотрим как распределены наши данные. Для примера возьмем длины чашелистика и сравним их по оставшимся двум типам цветка. Сначала построим простую, доступную из базового пакета гистограмму.

hist(df1$Sepal.Length)

Как видно из построенной гистограммы, данные распределяются относительно симметрично, но при этом нет разбиения по типу цветка. Воспользуемся пакетом ggplot2, чтобы построить более интересный график. Команда facet_grid () позволяет разбить наблюдения на группы. Можно заметить, что в качестве аргумента используется довольно странная конструкция “Species ~ .” Давайте

разберем эту конструкцию. Знак тильды указывает на разбиение по группам, слева от тильды мы указываем что разбиваем, а справа как. Точка означает, что каких-то определенных границ разбиения нет, то есть мы используем обе категории.

ggplot(df1, aes(x =Sepal.Length ))+ geom_histogram(fill = "white", col = "black",

binwidth = 0.4)+ facet_grid(Species ~ .)

Далее построим еще несколько графиков. Первым из них будет диаграмма плотности. А вторым диаграмма размаха. Из диаграммы размаха можно выяснить, что в наших данных есть выброс некоторых данных.

ggplot(df1, aes(Sepal.Length, fill = Species ))+ geom_density(alpha = 0.5)

ggplot(df1, aes(Species, Sepal.Length))+ geom_boxplot()

Так как были замечены выбросы в данных, стоит проверить их на однородность и нормальность распределения. Для проверки нормальности распределения воспользуемся критерием Шапиро-Уилка.

shapiro.test(df1$Sepal.Length)

shapiro.test(df1$Sepal.Length[df1$Species == "versicolor"]) shapiro.test(df1$Sepal.Length[df1$Species == "virginica"])

by(iris$Sepal.Length, INDICES = iris$Species, shapiro.test)

Для проверки однородности данных воспользуемся критерием Бартлетта.

bartlett.test(Sepal.Length ~ Species, df1)

После проверки нормальности распределения и однородности данных, можно перейти к построению t-критерия Стьюдента. Чаще всего он применяется для сравнения средних значений двух выборок.

t.test(Sepal.Length ~ Species, df1)

test1 <- t.test(Sepal.Length ~ Species, df1)

Как и в предыдущих статистических тестах результатом t-критерия Стьюдента является список.

str(test1) test1$p.value

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

t.test(df1$Petal.Length, df1$Petal.Width, paired = T)

Подытожим пройденное:

t-Критерий Стьюдента для независимых выборок

t.test(Var1 ~ Var2, data) # если первая переменная количественная, а вторая фактор

t.test(data$Var1, data$Var2) # если обе переменные количественные

t-Критерий Стьюдента для зависимых выборок t.test(data$Var1, data$Var2, paired = T)

Проверка на нормальность распределения

shapiro.test(Var1) # проверка на нормальность распределения переменной Var1

# но не удобно когда есть группирующая факторная переменная

Поможет функция by(), которая применяет различные функции на каждом уровне фактора.

by(iris$Sepal.Length, INDICES = iris$Species, shapiro.test) # проверка на нормальность переменной

# Sepal.Length в трех разных группах в соответствии с переменной Species

Проверка на гомогенность дисперсий

bartlett.test(mpg ~ am, mtcars) #Критерий Бартлетта

Иногда возникает необходимость выполнить непараметрический аналог t-критерия Стьюдента. Такая потребность может возникнуть, когда не выполняется одно из требований к t.test или не так много данных, или не очень хорошее распределение. Воспользуемся тестом Уилкоксона, который также известен как тест Манна-Уитни.

?wilcox.test

test2 <- wilcox.test(Petal.Length ~ Species, df1) pv <- test2$p.value

Соседние файлы в папке R Language (Сковорцов)