Цель работы: выполнить анализ статистических характеристик данных с использованием языка R и встроенного набора данных iris.
1. Подготовка окружения
# Загрузка библиотек
library (dplyr)
Присоединяю пакет: 'dplyr'
Следующие объекты скрыты от 'package:stats':
filter, lag
Следующие объекты скрыты от 'package:base':
intersect, setdiff, setequal, union
library (ggplot2)
library (moments)
# Подключение набора данных
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
2. Задание A — Базовые статистики
Для каждого из числовых признаков (Sepal.Length, Sepal.Width, Petal.Length, Petal.Width) вычислите:
среднее (mean),
медиану (median),
стандартное отклонение (sd),
межквартильный размах (IQR).
Результаты представьте в виде таблицы.
stats <- iris %>%
select (where (is.numeric)) %>%
summarise (across (everything (), list (
mean = mean,
median = median,
sd = sd,
IQR = IQR
)))
print (stats)
Sepal.Length_mean Sepal.Length_median Sepal.Length_sd Sepal.Length_IQR
1 5.843333 5.8 0.8280661 1.3
Sepal.Width_mean Sepal.Width_median Sepal.Width_sd Sepal.Width_IQR
1 3.057333 3 0.4358663 0.5
Petal.Length_mean Petal.Length_median Petal.Length_sd Petal.Length_IQR
1 3.758 4.35 1.765298 3.5
Petal.Width_mean Petal.Width_median Petal.Width_sd Petal.Width_IQR
1 1.199333 1.3 0.7622377 1.5
3. Задание B — Анализ по группам
Для каждого вида (Species) вычислите среднюю длину и ширину лепестков (Petal.Length, Petal.Width).
Сравните значения между тремя видами и сделайте краткий вывод.
species_means <- iris %>%
group_by (Species) %>%
summarise (
Petal.Length_mean = mean (Petal.Length),
Petal.Width_mean = mean (Petal.Width)
)
print (species_means)
# A tibble: 3 × 3
Species Petal.Length_mean Petal.Width_mean
<fct> <dbl> <dbl>
1 setosa 1.46 0.246
2 versicolor 4.26 1.33
3 virginica 5.55 2.03
Вывод:
virginica больше всех
4. Задание C — Визуализация
Постройте boxplot для Petal.Length по видам (Species).
Добавьте подписи и цвета.
ggplot (iris, aes (x = Species, y = Petal.Length, fill = Species)) +
geom_boxplot () +
labs (title = "Boxplot длины лепестков по видам" , y = "Petal.Length" , x = "Вид" )
5. Задание D — Распределение и форма
Для признака Sepal.Length постройте гистограмму.
Вычислите асимметрию и эксцесс (skewness(), kurtosis()).
Интерпретируйте результаты — является ли распределение близким к нормальному?
hist (iris$ Sepal.Length,
main = "Гистограмма Sepal.Length" ,
xlab = "Sepal.Length" ,
col = "lightgreen" , border = "white" )
sl_skew <- skewness (iris$ Sepal.Length)
sl_kurt <- kurtosis (iris$ Sepal.Length)
cat ("Асимметрия (skewness):" , sl_skew, " \n " )
Асимметрия (skewness): 0.3117531
cat ("Эксцесс (kurtosis):" , sl_kurt, " \n " )
Эксцесс (kurtosis): 2.426432
Интерпретация:
(Распределение признака близко к нормальному, есть хвост вправо и более плоское чем нормальное распределение)
6. Контрольные вопросы
Чем отличается среднее от медианы с точки зрения устойчивости к выбросам?
Что показывает стандартное отклонение?
Как вычисляется межквартильный размах и что он отражает?
Что значит положительная асимметрия?
Как интерпретировать эксцесс меньше 3?