Цель работы: выполнить анализ статистических характеристик данных с использованием языка R и встроенного набора данных iris.
1. Подготовка окружения
# Загрузка библиотек
library(dplyr)
Присоединяю пакет: 'dplyr'
Следующие объекты скрыты от 'package:stats':
filter, lag
Следующие объекты скрыты от 'package:base':
intersect, setdiff, setequal, union
library(ggplot2)
library(moments)
Warning: пакет 'moments' был собран под R версии 4.5.2
# Подключение набора данных
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).
- Результаты представьте в виде таблицы.
# Ваш код здесь
# Загружаем данные
data(iris)
# Выбираем только числовые колонки
numeric_cols <- iris[, 1:4]
# Вычисляем статистики
stats <- sapply(numeric_cols, function(x) {
c(
mean = mean(x),
median = median(x),
sd = sd(x),
IQR = IQR(x)
)
})
# Транспонируем для удобства
stats <- t(stats)
stats
mean median sd IQR
Sepal.Length 5.843333 5.80 0.8280661 1.3
Sepal.Width 3.057333 3.00 0.4358663 0.5
Petal.Length 3.758000 4.35 1.7652982 3.5
Petal.Width 1.199333 1.30 0.7622377 1.5
3. Задание B — Анализ по группам
Для каждого вида (Species) вычислите среднюю длину и ширину лепестков (Petal.Length, Petal.Width).
Сравните значения между тремя видами и сделайте краткий вывод.
# Ваш код здесь
library(dplyr)
iris %>%
group_by(Species) %>%
summarise(
mean_Petal.Length = mean(Petal.Length),
mean_Petal.Width = mean(Petal.Width)
)
# A tibble: 3 × 3
Species mean_Petal.Length mean_Petal.Width
<fct> <dbl> <dbl>
1 setosa 1.46 0.246
2 versicolor 4.26 1.33
3 virginica 5.55 2.03
Вывод:
(кратко сравните значения между видами)
У Iris setosa лепестки самые короткие и узкие.
У Iris versicolor лепестки заметно длиннее и шире.
У Iris virginica — самые крупные лепестки среди всех видов.
4. Задание C — Визуализация
- Постройте boxplot для
Petal.Length по видам (Species).
- Добавьте подписи и цвета.
# Ваш код здесь
# Используем базовую графику
boxplot(Petal.Length ~ Species,
data = iris,
col = c("lightblue", "lightgreen", "lightpink"),
main = "Распределение длины лепестков по видам",
xlab = "Вид ириса",
ylab = "Длина лепестков (Petal.Length)")
5. Задание D — Распределение и форма
- Для признака
Sepal.Length постройте гистограмму.
- Вычислите асимметрию и эксцесс (
skewness(), kurtosis()).
- Интерпретируйте результаты — является ли распределение близким к нормальному?
# Ваш код здесь
# Базовая гистограмма
hist(iris$Sepal.Length,
main = "Гистограмма длины чашелистиков (Sepal.Length)",
xlab = "Sepal.Length",
ylab = "Частота",
col = "lightgreen",
border = "white")
# Вычисляем показатели
skewness_value <- skewness(iris$Sepal.Length)
kurtosis_value <- kurtosis(iris$Sepal.Length)
# Выводим результаты
skewness_value
Интерпретация:
(укажите, есть ли перекос и насколько распределение «острое» или «плоское»)
Легкая положительная асимметрия — распределение немного смещено вправо (в сторону больших значений).
Эксцесс Меньше 3 - распределение немного плоское по сравнению с нормальным (менее «острое»).
6. Контрольные вопросы
- Чем отличается среднее от медианы с точки зрения устойчивости к выбросам?
- Что показывает стандартное отклонение?
- Как вычисляется межквартильный размах и что он отражает?
- Что значит положительная асимметрия?
- Как интерпретировать эксцесс меньше 3?
7. Дополнительно (по желанию)
- Рассчитайте все показатели (mean, median, sd, IQR, skewness, kurtosis) для каждой группы
Species.
- Визуализируйте результаты с помощью
ggplot2 (например, bar chart по видам).