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

На этой странице представлены два исправленных и подробных упражнения с кодом Python по исследовательскому анализу данных.

исследовательский анализ данных

Исследовательский анализ данных

Упражнение 1

Рассмотрим случайную выборку финишировавших на марафоне в Нью-Йорке в 2002 году. Этот набор данных находится в пакете UsingR. Загрузите библиотеку, затем загрузите набор данных nym.2002.

библиотека(дплыр)
данные(имя.2002, пакет ="ИспользованиеR")

Используйте диаграммы и гистограммы, чтобы сравнить время финиша мужчин и женщин. Какое из резюме лучше всего описывает разницу?

данные(имя.2002, пакет ="ИспользованиеR")
мужчина <- ним.2002 %>% фильтр(Пол == 'Мужской')
женский <- ним.2002 %>% фильтр(Пол == 'Женский')
мойпар(1,2)
история(женский$время, хлим= против(100,600))
история(мужчина$время, хлим= против(100,600))

Исправлены упражнения исследовательского анализа данных исследовательского анализа данных

Обе гистограммы имеют одинаковое распределение (смещено вправо). Но центр гистограммы кажется другим. Мы можем проверить это, рассчитав абсолютную разницу между средним значением и медианой.

пресс(иметь в виду(мужчина$время) - иметь в виду(женский$время))
## [1] 23.11574
пресс(медиана(мужчина$время) - медиана(женский$время))
## [1] 21.70833

Между мужчинами и женщинами разница составляет около 21-23 минут. Самцы и самки имеют сходное распределение с перекосом вправо, причем первые 20 минут смещены влево.

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

шпилька(мужчина$возраст, мужчина$время, рука = 'мужчина')

Исправлены упражнения исследовательского анализа данных исследовательского анализа данных

рог(мужчина$возраст, мужчина$время)
## [1] 0.2432273

Какова корреляция Пирсона между возрастом и временем выполнения для женщин?

шпилька(женский$возраст женский$время, рука = 'женский')

Исправлены упражнения исследовательского анализа данных исследовательского анализа данных

рог(женский$возраст женский$время)
## [1] 0.2443156

Если мы интерпретируем эти корреляции, не визуализируя данные, мы придем к выводу, что чем старше мы становимся, тем медленнее мы бежим марафоны, независимо от пола. Изучите схемы рассеивание и часовые диаграммы, стратифицированные по возрастным группам (20-24, 25-30 и т. д.). После просмотра данных, что вывод самое разумное?

groups_m <- расколоть(мужчина$время, пол(мужчина$возраст/5)*5) 1ТП4Т 10-14, 15-19 и др.
группы_f <- расколоть(женский$время, пол(женский$возраст/5)*5) 1ТП4Т 10-14, 15-19 и др.
мойпар(1,2)
коробочный сюжет(групп_м)
коробочный сюжет(группы_f)

Исправлены упражнения исследовательского анализа данных исследовательского анализа данных

Это сложный вопрос, потому что вам предлагается разбить данные на группы. Наслоение может быть достигнуто с помощью функции разделения. Чтобы каждая группа имела диапазон 5 (например, 25-30 лет), все возрастные числа необходимо будет округлить в большую или меньшую сторону, чтобы полученные числа делились на 5. Я округлил числа в меньшую сторону, используя функцию пола. .

Таким образом, 40 представляет возрастной диапазон от 40 до 44 лет. Вы также можете использовать функцию потолка для расслоения данных, которые затем будут округлены. Итак, 45 представляет возрастную группу 41-45 лет. В приведенном ниже примере возраст 42 года классифицируется с использованием функций пола и потолка.

пол(42/5)*5 
## [1] 40
потолок(42/5)*5
## [1] 45

Время финиша стабильно примерно до 40 лет, затем мы становимся медленнее.

Упражнение 2

Давайте загрузим данные:

данные(Вес цыпленка)
мойпар()
шпилька(Вес цыпленка$Время, вес цыпленка$масса, столбец=ЦыпленокВес$Диета)

Исправлены упражнения исследовательского анализа данных исследовательского анализа данных

цыпленок = изменить форму(Вес цыпленка, идвар=против("Цыпленок","Диета"), переменная времени ="Время",
                направление="широкий")
цыпленок = на.опустить(цыпленок)

Сосредоточьтесь на весе цыплят на 4-й день (проверьте названия столбцов цыплят и запишите номера). Насколько увеличится средний вес цыпленка на 4-й день, если мы добавим выброс в 3000 граммов? В частности, какова средняя масса цыпленка на 4-й день, включая цыпленка-выброса, деленная на среднюю массу цыпленка на 4-й день без учета выброса. Подсказка: используйте c, чтобы добавить число к вектору.

цыпленок_w4 <- цыпленок [,'вес.4']
chick_w4_add <- добавить(цыпленок_w4, 3000)
# или используйте функцию c
# chick_w4_add <- c(chick_w4, 3000) 
chick_w4_add 
##  [1]   59   58   55   56   48   59   57   59   52   63   56   53   62
## [14]   61   55   54   62   64   61   58   62   57   58   58   59   59
## [27]   62   65   63   63   64   61   56   61   61   66   66   63   69
## [40]   61   62   66   62   64   67 3000
иметь в виду(chick_w4_add) - иметь в виду(цыпленок_w4) # Разница между выбросом и без него
## [1] 63.90966
иметь в виду(chick_w4_add)/иметь в виду(цыпленок_w4) # Соотношение между с выбросом и без него
## [1] 2.062407

В первой части мы видели, насколько чувствительно среднее значение к выбросам. Теперь давайте посмотрим, что происходит, когда мы используем медиану вместо среднего. Рассчитайте то же отношение, но теперь используя медиану вместо среднего. В частности, какова средняя масса цыпленка на 4-й день, включая цыпленка-выброса, деленная на медиану веса цыпленка на 4-й день без учета выброса.

медиана(chick_w4_add) - медиана(цыпленок_w4) # разница
## [1] 0
медиана(chick_w4_add)/медиана(цыпленок_w4) соотношение #
## [1] 1

Теперь попробуйте то же самое с примером стандартного отклонения (функция sd в R). Добавьте цыпленка весом 3000 г к весу цыплят дня 4. Насколько изменится стандартное отклонение? Чему равно стандартное отклонение с цыпленком-выбросом, деленное на стандартное отклонение без цыпленка-выброса?

сд(chick_w4_add) - сд(цыпленок_w4) # разница
## [1] 429.1973
сд(chick_w4_add)/ сд(цыпленок_w4) соотношение #
## [1] 101.2859

Сравните приведенный выше результат со средним абсолютным отклонением R, рассчитанным с помощью функции mad. Обратите внимание, что на безумие не влияет добавление одного выброса. Функция mad в R включает коэффициент масштабирования 1,4826, поэтому mad и sd очень похожи для выборки из нормального распределения. Чему равно значение MAD с выпадающим цыпленком, деленное на MAD без выпадающего цыпленка?

без ума(chick_w4_add) - без ума(цыпленок_w4) # разница
## [1] 0
без ума(chick_w4_add)/ без ума(цыпленок_w4) соотношение #
## [1] 1

Наш последний вопрос касается того, как на корреляцию Пирсона влияет выброс из корреляции Спирмена. Корреляция Пирсона между x и y задается в R как cor(x,y). Корреляция Спирмена задается как cor(x,y,method="spearman").

Нанесите на график вес цыплят на 4-й и 21-й день Мы можем видеть, что существует общая тенденция: цыплята с более низким весом на 4-й день снова имеют низкий вес на 21-й день, и то же самое происходит с цыплятами с более низким весом, выращенным.

Рассчитайте корреляцию Пирсона веса цыплят на 4-й и 21-й день. Теперь рассчитайте, насколько изменится корреляция Пирсона, если мы добавим цыпленка, который весит 3000 на 4-й день и 3000 на 21-й день. Снова разделите корреляцию Пирсона на выброс цыпленка. на рассчитанной корреляции Пирсона без выбросов.

chick_w21 <- цыпленок [, 'вес.21']
chick_w21
##  [1] 205 215 202 157 223 157 305  98 124 175 205  96 266 142 157 117
## [17] 331 167 175  74 265 251 192 233 309 150 256 305 147 341 373 220
## [33] 178 290 272 321 204 281 200 196 238 205 322 237 264
шпилька(цыпленок_w4, цыпленок_w21)

Исправлены упражнения исследовательского анализа данных исследовательского анализа данных

рог(цыпленок_w4, цыпленок_w21) Корреляция # до
## [1] 0.4159499
chick_w21_add <- добавить(chick_w21, 3000)
рог(chick_w4_add, chick_w21_add) Корреляция # после выброса
## [1] 0.9861002
рог(chick_w4_add, chick_w21_add)/рог(цыпленок_w4, цыпленок_w21) Соотношение # после и до
## [1] 2.370719

Запишите вес цыпленка на 4-й день диеты 1 как вектор x. Запишите вес цыплят на 4-й день диеты 4 как вектор y. Выполните t-тест, сравнивая x и y (в R функция t.test(x,y) выполнит тест). Затем выполните тест Уилкоксона для x и y (в R функция wilcox.test(x,y) выполнит тест). Появится предупреждение о том, что точное значение p не может быть рассчитано с помощью ссылок, поэтому используется приближение, которое подходит для наших целей.

 

Выполните t-критерий x и y после добавления одного 200-граммового цыпленка к x (цыплятам в рационе 1). Каково p-значение этого теста? P-значение теста доступно с помощью следующего кода: t.test(x,y)$p.value

Икс <- цыпленок %>% фильтр(Диета == 1) 
Икс <- Икс[,'вес.4']

там <- цыпленок %>% фильтр(Диета == 4) 
там <- у [,'вес.4']
т.тест(х, у)$р.значение # Результат t.test без выбросов
1ТП4Т1ТП4Т [1] 7.320259э-06
Уилкокс.тест(х, у)$р.значение Результат Уилкокса # без выбросов
## Предупреждение в wilcox.test.default(x, y): невозможно вычислить точное значение p ## со связями
## [1] 0.0002011939
x_добавить <- против(Икс,200) Добавлен выброс #
т.тест(х_добавить, у)$р.значение # t-критерий после выброса
## [1] 0.9380347

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

Уилкокс.тест(х_добавить, у)$р.значение # даже с выбросом, p-значение не нарушается
## Предупреждение в wilcox.test.default(x_add, y): невозможно вычислить точное значение p-## со связями
## [1] 0.0009840921

Теперь мы изучим возможный недостаток статистики теста Уилкоксона-Манна-Уитни. Использование следующего кода для создания трех блочных диаграмм, показывающих истинный вес рациона 1 и 4, а затем две модифицированные версии: одну с дополнительной разницей в 10 граммов и одну с дополнительной разницей в 100 граммов. Используйте значения x и y, как определено выше, а НЕ те, к которым добавлен выброс.

библиотека(рафалиб)
мойпар(1,3)
коробочный сюжет(х, у)
коробочный сюжет(х, у+10)
коробочный сюжет(х, у+100)

Исправлены упражнения исследовательского анализа данных исследовательского анализа данных

В чем разница в статистике t-теста (полученной с помощью t.test(x,y)$statistic) между добавлением 10 и добавлением 100 ко всем значениям в группе y? Возьмите статистику t-теста с x и y + 10 и вычтите статистику t-теста с x и y +100. Значение должно быть положительным.

т.тест(х, у+10)$статистика - т.тест(х, у+100)$статистика 
## т ## 67.75097

Изучите статистику теста Уилкоксона для x и y+10 и для x и y+100. Поскольку Уилкоксон работает с рангами, как только две группы демонстрируют полное разделение, то есть все точки в группе y больше, чем все точки в группе x, статистика не изменится, независимо от величины разницы. Точно так же значение р имеет минимальное значение, независимо от расстояния между группами.

Это означает, что критерий Уилкоксона в некоторых контекстах можно считать менее мощным, чем t-критерий. На самом деле, для небольших выборок значение p не может быть очень маленьким, даже когда разница очень велика. Каково значение p, если мы сравним c(1,2,3) с c(4,5,6) с помощью теста Уилкоксона?

Уилкокс.тест(х, у+10)$р.значение
## Предупреждение в wilcox.test.default(x, y + 10): невозможно вычислить точное значение p- ## со связями
1ТП4Т1ТП4Т [1] 5.032073э-05
Уилкокс.тест(х, у+100)$р.значение
## Предупреждение в wilcox.test.default(x, y + 100): невозможно вычислить точное значение p- ## со связями
1ТП4Т1ТП4Т [1] 5.032073э-05
Уилкокс.тест(против(1,2,3),против(4,5,6))$р.значение # Ответ
## [1] 0.1

Каково значение p, если мы сравним c(1,2,3) с c(400 500 600) с помощью теста Уилкоксона?

Уилкокс.тест(против(1,2,3),против(400,500,600))$р.значение
## [1] 0.1
Делиться
ru_RURU
%d такие блоггеры, как: