HW8 // Описательные статистики. Корреляционный анализ

Данные

Сегодня поработаем с данными об успеваемости учеников младших классов. Датасет содержит следующие переменные:

  • gender — пол ученика
  • race/ethnicity — этническая принадлежность ученика
  • parental level of education — уровень образования родителей
  • lunch — рацион ученика в школе
  • test preparation course — завершил ли ученик курс подготовки к тестированию
  • math score — балл по математике
  • reading score — балл по чтению
  • writing score — балл по правописанию

Основные задания

#1

Загрузите данные. Проверьте их структуру. При необходимости скорректируйте типы и названия переменных.

Описание формата инпута.

#2

Исследуйте данные.

  1. Проверьте, есть ли в данных пропущенные значения.
  2. Посмотрите, сбалансирована ли выборка по полу.
  3. Посмотрите, сбалансирована ли выборка по рациону.
  4. Посмотрите, сбалансирована ли выборка по прохождению подготовительного теста.

Описание формата инпута.

Подсказки
  • Проверить наличие пропущенных значений можно с помощью функций apply(), is.na() и sum().
  • Проверить сбалансированность выборки по категориальным переменным можно построив таблицу частот с помощью функции table().

#3

Постройте разведочные визуализации для переменных math score, reading score и writing score.

  1. Визуализируйте распределения этих переменных.
  2. Добавьте на график с распределениям разбиение по прохождению курса подготовки к тестированию (test preparation course).

Описание формата инпута.

Подсказки
  • Для визуализации распределения в пункте a достаточно построить гистограммы по указанным переменным.
  • Чтобы упростить выполнение пункта b, стоит расположить гистограммы на одном графике.
  • Чтобы разбить добавить разбиение распределений по переменной, необходимо фасетировать график по этой переменной.

#4

  1. Рассчитайте описательные статистики по переменным math score, reading score, writing score.
  2. Добавьте к расчету описательных статистик разбиение по переменной test preparation course.

Описание формата инпута.

Подсказки
  • Рассчитать описательные статистики можно с помощью функции summarise() или использовать функцию describe() из пакета psych.
  • Добавить к подсчету описательных статистик разбиение по какой-либо переменной можно с помощью функции group_by() или с помощью аргумента .by функции summarise(), однако можно использовать и функцию describeBy() из пакета psych.

#5

Постройте корреляционную матрицу по переменным math score, reading score, writing score.

Описание формата инпута.

#6

Экспортируйте получившуюся в предыдущем задании матрицу как таблицу, оформленную по стандартам APA.

Описание формата инпута.

Подсказки

Для экcпорта красивых форматированных таблиц написан пакет apaTables. В ней есть функция apa.cor.table(), которая позволяет форматировать и экспортировать корреляционную матрицу.

#7

Визуализируйте корреляционную матрицу, получившуюся в задании 5.

Описание формата инпута.

Подсказки
  • Корреляционную матрицу легко визуализировать с помощью функции ggcorrplot() из пакета ggcorrplot.
  • Так как ggcorrplot является расширением ggplot2, то экспортировать графика можно с помощью функции ggsave().

#8

В корреляционной матрице мы наблюдаем крайне высокую корреляцию между баллами по чтению и правописанию, что вполне логично. Давайте удостоверимся в том, что корреляция статистически значима.

Протестируйте гипотезу о статистической значимости коэффициента корреляции между баллами по чтению и правописанию.

Описание формата инпута.

#9

Оформите результаты корреляционного анализа в формате APA.

Описание формата инпута.

Подсказки

Чтобы форматировать результаты корреляционного анализа в APA-формате, написан пакет report, в котором живет функция report(). В неё необходимо передать объект с результатам корреляционного анализа.

#10

В данном случае мы столкнулись с очень высокой корреляцией, однако, увы, это не всегда так. Рассчитайте объем выборки, требуемый для достижения достаточной статистической мощности, если мы ожидаем в исследовании корреляцию порядка 0.2.

Описание формата инпута.

Подсказки

Рассчетом объема выборки занимается пакет pwr, в котором есть функция pwr.r.test().

Дополнительные задания

#1

Выше мы проверяли достаточно очевидные гипотезы. Однако данные позволяют протестировать и более веселые.

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

Описание формата инпута.

Подсказки

Для того, чтобы проверить гипотезу о связи между двумя категориальными переменными, необходимо использовать критерий независимости Пирсона \(\chi^2\). Реализовать этот статистический тест можно с помощью функции chisq.test().

#2

Рассчитайте корреляцию между переменными из предыдущего задания.

Описание формата инпута.

Подсказки

Привести статистику \(\chi^2\) к значению корреляции можно по формуле \(\varphi = \sqrt{\frac{\chi^2}{N}}\). Полученное значение будет \(\phi\)-коэффициентом, который является коэффициентом корреляции для категориальных переменных.

#3

Визуализируйте результат, получившися в первом дополнительном задании.

Описание формата инпута.

Подсказки

Для визуализации связи между двумя категориальными переменными используется тип графика mosaic plot. Построить его можно с помощью функции geom_mosaic(). Для этого необходимо установить и полдключить пакет ggmosaic.

#4

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

Протестируйте гипотезу об отсутствии связи между переменными math score и test preparation course.

Описание формата инпута.

#5

Визуализируйте результат, получившися в предыдущем задании.

Описание формата инпута.