Изобретем велосипед снова или построим график комбинаций бинарных переменных

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Про пакет ComplexUpset в R

Что делаем

По пакету ggplot2 для R написано множество хороших книг, статей - он настолько хорош, что использование пакетов, основанных на других принципах, почти всегда менее эффективно и похоже на попытку изобрести велосипед заново. Но иногда может получиться что-то интересное, но узкоспециализированное - примером этого является пакет ComplexUpset.

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

Используемая база данных - CollegeDistance из пакета AER. Преобразуем ее

library(ComplexUpset)
library(AER)
library(tidyverse)
data("CollegeDistance")
glimpse(CollegeDistance)
CollegeDistance <- as.data.frame(CollegeDistance)
tab_2 <- colnames(CollegeDistance[,c(4:7)])
CollegeDistance[,c(4:7)] <- CollegeDistance[,c(4:7)] == "yes"
head(CollegeDistance)

В итоге мы получим 4 бинарные переменные: fcollege и mcollege обозначают, закончили ли мать/отец студента колледж, home - живет ли семья студента в отдельном доме, urban - живет ли семья студента в городе.

Применяем главную функцию upset (первая переменная - имя датафрейма, вторая переменная - вектор имен бинарных переменных)

upset(CollegeDistance, tab_2)

Левая гистограмма - это количество респондентов, у которых присутствует определенный признак.

Основная таблица внизу визуализирует комбинации признаков. Так, видно, что больше всего количество студентов, которые живут в собственном доме, но не в городе, причем мать и отец не заканчивали колледж - 2188. Людей с противоположным набором - 9.

Самое главное - что это не все, можно добавлять еще графики

upset(CollegeDistance, tab_2, annotations = list('Distribution of Score'=(
  ggplot(mapping=aes(y=score))
  + geom_violin(alpha=0.5, na.rm=TRUE))))

Функция поддерживает синтаксис ggplot2, и получилось добавить на график скрипичные диаграммы распределения показателя "score" для каждой из выделенной группы.

Еще один приятный бонус - функция, которая автоматически проводит непараметрический тест Крускала-Уоллиса на равенство медиан по всем подвыборкам, образованным комбинацией бинарных переменных.

upset_test(CollegeDistance, tab_2)

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

Кроме того, у пакета есть шикарная виньетка (https://cran.r-project.org/web/packages/ComplexUpset/vignettes/Examples_R.html), в которой показано, как работать с различными настройками графика.

Источник: https://habr.com/ru/post/599693/


Интересные статьи

Интересные статьи

Иногда возникает необходимость предоставить пользователю возможность выбирать, какую метрику отображать на графике для детального анализа.В Power BI такая функция может быть быстро и просто реализован...
Осенью в одном из самых больших павильонов ВДНХ в Москве разразится настоящая кибербитва. Она будет длиться два дня, и если победят атакующие, то целый город F погрузится в хаос. Свои системы на прочн...
TinyPhoto – это миниатюрный электронный фотоальбом с встраиваемой графикой, собранный с использованием микроконтроллера ATiny85 и OLED-дисплея 128х64px. Такой дуэт может обеспечить не менее 20 часов...
Допустим, я хочу создавать качественные десктопные приложения. Я также хочу сделать это на JVM. Не надейтесь — мы еще не достигли цели. Но у меня есть план. Почему именно JVM? Это...
Как обновить ядро 1С-Битрикс без единой секунды простоя и с гарантией работоспособности платформы? Если вы не можете закрыть сайт на техобслуживание, и не хотите экстренно разворачивать сайт из бэкапа...