В этом документе представлен разведочный анализ набора данных
iris
с использованием языка R. Мы исследуем структуру
данных, сводную статистику и визуализируем распределение признаков.
Сначала загрузим встроенный набор данных iris
и
посмотрим на его структуру и первые несколько строк.
# Загрузка набора данных iris (он встроенный)
data(iris)
# Вывод первых нескольких строк
head(iris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
Далее, получим сводную статистику для каждого признака, чтобы понять их основные характеристики (среднее, медиана, квартили и т.д.).
# Получение сводной статистики
summary(iris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
## 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
## Median :5.800 Median :3.000 Median :4.350 Median :1.300
## Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
## 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
## Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
## Species
## setosa :50
## versicolor:50
## virginica :50
##
##
##
Проверим структуру данных, чтобы узнать типы переменных и количество наблюдений.
# Проверка структуры данных
str(iris)
## 'data.frame': 150 obs. of 5 variables:
## $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
## $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
## $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
## $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
## $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
Для визуального анализа распределения признаков и взаимосвязей между ними, мы создадим парную диаграмму и диаграммы размаха.
Парная диаграмма покажет попарные отношения между количественными признаками, а также распределение каждого признака по диагонали.
# Загрузка ggplot2 для визуализации
library(ggplot2)
# Парная диаграмма
pairs(iris[, 1:4], col = iris$Species, main = "Парная диаграмма данных Iris")
Диаграммы размаха покажут распределение каждого количественного
признака в зависимости от вида ириса (Species
).
# Диаграммы размаха с использованием ggplot2
ggplot(iris, aes(x = Species, y = Sepal.Length, fill = Species)) +
geom_boxplot() +
ggtitle("Длина чашелистика по видам")
ggplot(iris, aes(x = Species, y = Sepal.Width, fill = Species)) +
geom_boxplot() +
ggtitle("Ширина чашелистика по видам")
ggplot(iris, aes(x = Species, y = Petal.Length, fill = Species)) +
geom_boxplot() +
ggtitle("Длина лепестка по видам")
ggplot(iris, aes(x = Species, y = Petal.Width, fill = Species)) +
geom_boxplot() +
ggtitle("Ширина лепестка по видам")