Построение двумерной диаграммы рассеяния двух нормальных случайных величин с гистограммами каждой компоненты
Рассмотрим стандартный пример пакета построения двумерной диаграммы рассеяния двух нормальных случайных величин с гистограммами каждой компоненты. Двухмерный, или сокращенно, 2М визуальный анализ, — это визуальный анализ данных на плоскости. В двухмерном визуальном анализе используются разнообразные гистограммы, диаграммы рассеяния, вероятностные графики, линейные графики, диаграммы диапазонов, размахов, круговые диаграммы, столбчатые диаграммы, последовательные графики (графики последовательных значений) и т. д., позволяющие увидеть специфику данных.
Термин гистограмма ввел Карл Пирсон в 1895 году. Гистограммы позволяют увидеть, как распределены значения переменных по интервалам группировки, то есть как часто переменные принимают значения из различных интервалов. Особенно полезен этот график для большого числа наблюдений, например, больше 100. Гистограмма наглядно показывает, какие значения или диапазоны значений исследуемой переменной являются наиболее частыми, насколько сильно они различаются между собой, как сконцентрировано большинство наблюдений вокруг среднего, является распределение симметричным или нет, имеет ли оно одну моду или несколько мод, то есть является мультимодальным.
С помощью гистограмм можно проверить наличие у распределения тяжелых хвостов, что важно для актуарных расчетов. Гистограммы дают возможность визуально оценить сходство наблюдаемых распределений с теоретическими или ожидаемыми распределениями. Гистограмма, или распределение частот значений переменной по интервалам, представляет интерес по следующим причинам:
- по форме распределения можно охарактеризовать природу исследуемой переменной (например, наличие двух мод — наиболее высоких столбцов гистограммы, или, как говорят, бимодальность распределения может означать, что выборка неоднородна и состоит из наблюдений, принадлежащих двум различным генеральным совокупностям);
- многие статистики критериев основаны на определенных предположениях о виде распределения, например, на предположении нормальности; гистограммы помогают визуально проверить выполнение этих предположений.
Часто первый шаг визуального анализа нового множества данных состоит в построении гистограмм для всех переменных. В нашем примере мы займемся построения двумерной диаграммы рассеяния двух нормальных случайных величин с гистограммами каждой компоненты. Скрипт ниже:
# Рассмотрим стандартный пример пакета построения двумерной
# диаграммы рассеяния двух нормальных случайных величин с
# гистограммами каждой компоненты. Более подробное описание
# некоторых рассмотренных в примере функций (plot(),hist() и др.) есть ниже
# Сохраняем графические параметры по умолчанию,
# чтобы потом вернуться к ним
# задаем стандартную нормальную величину x, сразу обрезая границы
set.seed(5454)
N = 3000
x <- pmin(3, pmax(-3, stats::rnorm(N)))
# аналогично определяем y
y <- pmin(3, pmax(-3, stats::rnorm(N)))
# строим гистограммы обеих переменных, пока не выводя график,
# а просто сохраняя данные в соответствующие переменные
xhist <- hist(x, breaks = seq(-3,3,0.5), plot = FALSE)
yhist <- hist(y, breaks = seq(-3,3,0.5), plot = FALSE)
# определяем максимальную высоту обеих гистограмм
top <- max(c(xhist$counts, yhist$counts))
# задаем границы диаграммы рассеяния по обеим осям
xrange <- c(-3, 3)
yrange <- c(-3, 3)
# определяем структуру и расположение графических окон
nf <- layout(matrix(c(2,0,1,3),2,2,byrow = TRUE), c(3,1), c(1,3), TRUE)
# выводим окна
layout.show(nf)
# задаем поля первого окна (снизу, по часовой стрелке)
par(mar = c(3,3,1,1))
# строим диаграмму рассеяния двух переменных x и y
plot(x, y, xlim = xrange, ylim = yrange, xlab = "", ylab = "")
# определяем поля второго окна
par(mar = c(0,3,1,1))
# строим гистограмму переменной x
barplot(xhist$counts, axes = FALSE, ylim = c(0, top), space = 0)
# определяем третьего окна
par(mar = c(3,0,1,1))
# строим гистограмму переменной y
barplot(yhist$counts, axes = FALSE, xlim = c(0, top), space = 0, horiz = TRUE)
# возвращаемся к сохраненным по умолчанию параметрам
par(def.par)
