Введение

В этом документе представлен разведочный анализ набора данных 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")

Диаграммы размаха (Boxplots)

Диаграммы размаха покажут распределение каждого количественного признака в зависимости от вида ириса (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("Ширина лепестка по видам")