Анализ морфометрических параметров яичной скорлупы представляет значительный интерес в контексте экологических исследований, мониторинга состояния популяций птиц и оценки влияния антропогенных факторов. Толщина скорлупы традиционно рассматривается как один из ключевых показателей, отражающих физиологическое состояние птиц, качество питания и воздействие стрессовых факторов окружающей среды.
В последние десятилетия особое внимание уделяется разработке и применению интегральных индексов, таких как индекс Ратклиффа, который позволяет учитывать не только абсолютные значения толщины, но и характер ее распределения по поверхности яйца. Сочетание традиционных морфометрических подходов с современными статистическими методами открывает новые возможности для более точной оценки состояния репродуктивной системы птиц.
Цель - установить наличие и характер взаимосвязи между средней толщиной скорлупы и индексом Ратклиффа, а также определить оптимальное количество измерений, необходимое для получения статистически надежных результатов.
Задачи:
Провести корреляционный анализ между средней толщиной скорлупы и значением индекса Ратклиффа
Оценить достаточность текущего объема измерений (8-20 на образец)
Определить минимально необходимое количество измерений для достижения стабильных результатов
Индекс Ратклиффа представляет собой нормализованный показатель, учитывающий не только среднюю толщину скорлупы, но и характер ее распределения. Теоретически предполагается существование взаимосвязи между этими параметрами, однако характер и сила этой связи могут варьировать в зависимости от видовой принадлежности птиц, условий среды и других факторов.
Корреляционный анализ позволяет количественно оценить степень взаимосвязи между двумя переменными и проверить статистическую значимость обнаруженных закономерностей.
# Вычисляем коэффициент корреляции Пирсона
cor_test <- cor.test(data_corr$`Ср. арифм толщина`,
data_corr$`Индекс Ратклиффа`,
method = "pearson")
# Создаем таблицу с результатами
cor_results <- data.frame(
Показатель = c("Коэффициент корреляции (r)", "95% доверительный интервал",
"t-статистика", "Степени свободы", "p-value"),
Значение = c(
round(cor_test$estimate, 4),
paste(round(cor_test$conf.int[1], 4), "-", round(cor_test$conf.int[2], 4)),
round(cor_test$statistic, 4),
cor_test$parameter,
ifelse(cor_test$p.value < 0.001, "< 0.001", round(cor_test$p.value, 4))
)
)По результатам корреляционного анализа между средней толщиной яичной скорлупы и индексом Ратклиффа была выявлена статистически значимая взаимосвязь. Полученное значение коэффициента корреляции Пирсона (0.9086) свидетельствует о наличии линейной зависимости, что подтверждает предположение о связи индекса Ратклиффа с морфометрическими характеристиками скорлупы.
Наличие статистически значимой корреляции указывает на то, что индекс Ратклиффа может рассматриваться как информативный показатель, отражающий особенности распределения толщины скорлупы и связанный с ее средним значением.
ggplot(data_corr, aes(
x = `Ср. арифм толщина`,
y = `Индекс Ратклиффа`,
color = factor(Зона,
levels = c(1, 2),
labels = c("Импактная зона", "Фоновая зона"))
)) +
geom_point(size = 3, alpha = 0.7) +
geom_smooth(method = "lm", se = TRUE, color = "darkred") +
labs(title = "Корреляция между толщиной скорлупы и индексом Ратклиффа",
x = "Средняя толщина скорлупы (мкм)",
y = "Индекс Ратклиффа",
color = "Зона отбора") +
theme_minimal() +
theme(legend.position = "bottom") +
annotate(
"text",
x = max(data_corr$`Ср. арифм толщина`) * 0.7,
y = max(data_corr$`Индекс Ратклиффа`) * 0.9,
label = paste(
"r =", round(cor_test$estimate, 3),
"\np", ifelse(cor_test$p.value < 0.001, "< 0.001",
paste("=", round(cor_test$p.value, 4)))
),
size = 5
)Графическая визуализация зависимости между средней толщиной скорлупы и индексом Ратклиффа подтверждает результаты корреляционного анализа. Наличие выраженного линейного тренда указывает на согласованность морфометрических показателей, что свидетельствует о взаимосвязанном характере изменения средней толщины скорлупы и индекса.
# Корреляция отдельно для каждой зоны
cor_by_zone <- data_corr %>%
mutate(
Зона_тип = ifelse(Зона == 1, "Импактная зона", "Фоновая зона")
) %>%
group_by(Зона_тип) %>%
summarise(
Корреляция = cor(`Ср. арифм толщина`, `Индекс Ратклиффа`, method = "pearson"),
n = n(),
p_value = cor.test(`Ср. арифм толщина`, `Индекс Ратклиффа`)$p.value
) %>%
mutate(
p_value_format = ifelse(p_value < 0.001, "< 0.001", round(p_value, 4)),
Значимость = ifelse(p_value < 0.05, "Да", "Нет")
)zone_plots <- list()
for (zone in c(1, 2)) {
zone_data <- data_corr %>% filter(Зона == zone)
zone_name <- ifelse(zone == 1, "Импактная зона", "Фоновая зона")
zone_cor <- cor.test(
zone_data$`Ср. арифм толщина`,
zone_data$`Индекс Ратклиффа`
)
zone_plots[[zone]] <- ggplot(
zone_data,
aes(x = `Ср. арифм толщина`, y = `Индекс Ратклиффа`)
) +
geom_point(
color = ifelse(zone == 1, "red", "blue"),
size = 3,
alpha = 0.7
) +
geom_smooth(
method = "lm",
se = TRUE,
color = ifelse(zone == 1, "darkred", "darkblue")
) +
labs(
title = zone_name,
subtitle = paste(
"r =", round(zone_cor$estimate, 3),
", p =", ifelse(zone_cor$p.value < 0.001, "< 0.001",
round(zone_cor$p.value, 4))
),
x = "Средняя толщина (мкм)",
y = "Индекс Ратклиффа"
) +
theme_minimal() +
theme(
plot.title = element_text(hjust = 0.5),
plot.subtitle = element_text(hjust = 0.5)
)
}
gridExtra::grid.arrange(zone_plots[[1]], zone_plots[[2]], ncol = 2)Графическое сравнение взаимосвязи между средней толщиной яичной скорлупы и индексом Ратклиффа в импактной и фоновой зонах выявило различия в силе и характере корреляции. В импактной зоне наблюдается очень высокая положительная корреляция (r = 0.948, p < 0.001), что указывает на тесную линейную зависимость между рассматриваемыми параметрами.
В фоновой зоне также выявлена статистически значимая положительная корреляция (r = 0.786, p < 0.001), однако она характеризуется меньшей силой и большим разбросом значений. Это может свидетельствовать о большей вариабельности морфометрических характеристик скорлупы в условиях отсутствия выраженного антропогенного воздействия.
Таким образом, более высокая степень согласованности параметров в импактной зоне может отражать влияние стрессовых факторов среды, приводящих к унификации морфометрических характеристик яичной скорлупы, тогда как в фоновой зоне сохраняется более широкий диапазон естественной изменчивости.
plateau_n %>%
group_by(zone) %>%
summarise(
mean_required_n = mean(min_n, na.rm = TRUE),
median_required_n = median(min_n, na.rm = TRUE),
max_required_n = max(min_n, na.rm = TRUE),
.groups = "drop"
)## # A tibble: 2 × 4
## zone mean_required_n median_required_n max_required_n
## <fct> <dbl> <dbl> <int>
## 1 Импактная зона 7.68 8 10
## 2 Фоновая зона 7.85 8 9
#Примерно необходимое число измерений
recommended_n <- plateau_n %>%
group_by(zone) %>%
summarise(
recommended_n = median(min_n, na.rm = TRUE),
.groups = "drop"
)
ggplot(bootstrap_results, aes(n, ci_width, group = sample)) +
geom_line(alpha = 0.3, color = "grey50") +
geom_vline(
data = recommended_n,
aes(xintercept = recommended_n),
color = "red",
linewidth = 1
) +
facet_wrap(~ zone, scales = "free_y") +
labs(
x = "Количество измерений",
y = "Ширина 95% бутстрэп-доверительного интервала средней толщины"
)Вертикальной линией показано медианное минимально достаточное число измерений, определённое по критерию стабилизации ширины бутстрэп-доверительного интервала. Значения левее линии соответствуют высокой неопределённости оценки, тогда как правее линии дополнительное увеличение числа измерений приводит лишь к незначительному повышению точности.