Ядерная оценка плотности на большом объёме данных
Приведённый код строит базовую ядерную оценку плотности (KDE) для percentage_over_limit по всем нарушениям. На первый взгляд настройки кажутся разумными: данных много, поэтому ширина бина выбрана узкой — всего один процент. Кроме того, к графику добавлена полосовая диаграмма (rug plot) с пониженным значением прозрачности alpha = 0.7.
Запустив этот код, вы сразу увидите, что график получился неудачным. Оценка плотности напоминает ёжика, а полосовая диаграмма из-за огромного перекрытия точек превращается в сплошную чёрную полосу.
Исправьте это: увеличьте ширину бина до 2.5 и уменьшите alpha полосовой диаграммы до 0.05, чтобы лучше отразить степень перекрытия точек. Не забудьте обновить подзаголовок, чтобы он отражал новую ширину ядра!
Это упражнение является частью курса
Лучшие практики визуализации в R
Инструкции к упражнению
- Измените стандартное отклонение ядра на
2.5 - Задайте
alphaполосовой диаграммы равным0.05 - Измените
subtitleна"Gaussian kernel SD = 2.5", чтобы отразить новую ширину ядра.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
ggplot(md_speeding, aes(x = percentage_over_limit)) +
# Increase bin width to 2.5
geom_density(fill = 'steelblue', bw = 1, alpha = 0.7) +
# lower rugplot alpha to 0.05
geom_rug(alpha = 0.5) +
labs(
title = 'Distribution of % over speed limit',
# modify subtitle to reflect change in kernel width
subtitle = "Gaussian kernel SD = 1"
)