О данных: сайт “Торговая База данных CITES”.
Статья: Глобальная торговля дикими животными пронизывает Дерево Жизни.
Документ: Категории и критерии Красного списка МСОП (Версия 3.1).
Выявить темпы/объёмы торговли дикими животными семейств Elephantidae, Rhinocerotidae.
План действий:
провести выборку стран-участниц (покупающие/продающие) графики;
отследить годы, когда оборот был больше всего;
составить линейную модель по датам.
library(tidyverse)
library(tibble)
library(ggplot2)
library(plotly)
library(countrycode)
library(ggalluvial)
load("wild.trade.RData")
eT<-res%>%filter(Family=="Elephantidae")
rT<-res%>%filter(Family=="Rhinocerotidae")
Для создания данной работы были выбраны семейства Rhinocerotidae и Elephantidae, вернее, их ныне существующие представители. Однако, наличие их в живом виде – не повод считать, что принятые меры по сохранению были достаточно успешны. Они лишь были приняты не совсем поздно. Об этом свидетельствуют охранные статусы рассматриваемых нами животных:
Саванный слон – EN (Вымирающие виды);
Лесной слон – CR (Находящиеся на грани полного исчезновения);
Азиатский слон - EN (Вымирающие виды);
Индийский носорог – VU (Находятся в уязвимом положении (уязвимые виды));
Белый носорог – NT (Близкие к уязвимому положению);
Чёрный носорог - CR (Находящиеся на грани полного исчезновения);
Суматранский носорог - CR (Находящиеся на грани полного исчезновения).
В экономической деятельности людей, касающейся биоразнообразия планеты, особое место занимает торговля дикими животными. В ней есть несколько категорий товаров, для слонов их 52, а для носорогов - 37, количество пересекающихся категорий товаров в торговле двумя выбранными таксонами диких животных: 32.
В данной работе мы рассматриваем только торговлю дикими живыми животными.
el<-res%>%filter(Family=="Elephantidae")%>%filter(Term=="live")
rh<-res%>%filter(Family=="Rhinocerotidae")%>%filter(Term=="live")
Представим наши данные одной из таблиц
as_tibble(head(el))
## # A tibble: 6 x 8
## Year Class Order Family Term Quantity Importer Exporter
## <dbl> <chr> <chr> <chr> <chr> <dbl> <chr> <chr>
## 1 1979 Mammalia Proboscidea Elephantidae live 2 FI GB
## 2 1979 Mammalia Proboscidea Elephantidae live 3 FI DE
## 3 1979 Mammalia Proboscidea Elephantidae live 1 DK CH
## 4 1979 Mammalia Proboscidea Elephantidae live 1 US DK
## 5 1979 Mammalia Proboscidea Elephantidae live 1 NO DK
## 6 1979 Mammalia Proboscidea Elephantidae live 1 DE DK
Заменим кодировку названий стран на полные названия
el$Exporter<-countrycode(el$Exporter,"ecb","country.name",warn = FALSE, nomatch = NULL)
el$Importer<-countrycode(el$Importer,"ecb","country.name",warn = FALSE, nomatch = NULL)
rh$Exporter<-countrycode(rh$Exporter,"ecb","country.name",warn = FALSE, nomatch = NULL)
rh$Importer<-countrycode(rh$Importer,"ecb","country.name",warn = FALSE, nomatch = NULL)
Таблица с измененной кодировкой
as_tibble(head(el))
## # A tibble: 6 x 8
## Year Class Order Family Term Quantity Importer Exporter
## <dbl> <chr> <chr> <chr> <chr> <dbl> <chr> <chr>
## 1 1979 Mammalia Proboscidea Elephantidae live 2 Finland United K~
## 2 1979 Mammalia Proboscidea Elephantidae live 3 Finland Germany
## 3 1979 Mammalia Proboscidea Elephantidae live 1 Denmark Switzerl~
## 4 1979 Mammalia Proboscidea Elephantidae live 1 United States Denmark
## 5 1979 Mammalia Proboscidea Elephantidae live 1 Norway Denmark
## 6 1979 Mammalia Proboscidea Elephantidae live 1 Germany Denmark
el.live.export<-el%>%group_by(Year,Exporter)%>%
summarise(sumel=sum(Quantity))
el.live.export<-el.live.export%>%group_by(Exporter)%>%mutate(S2=sum(sumel))
el.live.export <- el.live.export %>%
mutate(
Exporter = case_when(
S2 < 270 ~ "other countries*",
.default = Exporter
)
)
el.live.export <- el.live.export %>% group_by(Year, Exporter) %>%
summarise(sumel2=sum(sumel), .groups = "drop_last")
el.live.export <- mutate(group_by(el.live.export, Exporter), cumsum = cumsum(sumel2))
Pel.live.export <- ggplot(el.live.export, aes(x = Year, y = cumsum,
group = Exporter, colour = Exporter)) +
geom_line() + geom_point() + scale_y_log10()
plotly::ggplotly(Pel.live.export)
el.live.import<-el%>%group_by(Year,Importer)%>%
summarise(sumel=sum(Quantity))
el.live.import<-el.live.import%>%group_by(Importer)%>%mutate(S2=sum(sumel))
el.live.import <- el.live.import %>%
mutate(
Importer = case_when(
S2 < 265 ~ "other countries**",
.default = Importer
)
)
el.live.import <- el.live.import %>% group_by(Year, Importer) %>%
summarise(sumel2=sum(sumel), .groups = "drop_last")
el.live.import <- mutate(group_by(el.live.import, Importer), cumsum = cumsum(sumel2))
Pel.live.import <- ggplot(el.live.import, aes(x = Year, y = cumsum,
group = Importer, colour = Importer)) +
geom_line() + geom_point() + scale_y_log10()
plotly::ggplotly(Pel.live.import)
Примечания: * - стран-экспортеров в категории “другие страны” - 121; ** - стран-импортеров в категории “другие страны” - 127.
rh.live.export<-rh%>%group_by(Year,Exporter)%>%
summarise(sumrh=sum(Quantity))
rh.live.export<-rh.live.export%>%group_by(Exporter)%>%mutate(S2=sum(sumrh))
rh.live.export <- rh.live.export %>%
mutate(
Exporter = case_when(
S2 < 61 ~ "other countries*",
.default = Exporter
)
)
rh.live.export <- rh.live.export %>% group_by(Year, Exporter) %>%
summarise(sumrh2=sum(sumrh), .groups = "drop_last")
rh.live.export <- mutate(group_by(rh.live.export, Exporter), cumsum = cumsum(sumrh2))
Prh.live.export <- ggplot(rh.live.export, aes(x = Year, y = cumsum,
group = Exporter, colour = Exporter)) +
geom_line() + geom_point() + scale_y_log10()
plotly::ggplotly(Prh.live.export)
rh.live.import<-rh%>%group_by(Year,Importer)%>%
summarise(sumrh=sum(Quantity))
rh.live.import<-rh.live.import%>%group_by(Importer)%>%mutate(S2=sum(sumrh))
rh.live.import <- rh.live.import %>%
mutate(
Importer = case_when(
S2 < 110 ~ "other countries**",
.default = Importer
)
)
rh.live.import <- rh.live.import %>% group_by(Year, Importer) %>%
summarise(sumrh2=sum(sumrh), .groups = "drop_last")
rh.live.import <- mutate(group_by(rh.live.import, Importer), cumsum = cumsum(sumrh2))
Prh.live.import <- ggplot(rh.live.import, aes(x = Year, y = cumsum,
group = Importer, colour = Importer)) +
geom_line() + geom_point()+scale_y_log10()
plotly::ggplotly(Prh.live.import)
Примечания: * - стран-экспортеров в категории “другие страны” - 49; ** - стран-импортеров в категории “другие страны” - 87.
APel <- el %>% group_by(Exporter,Importer) %>%
summarise(s1=sum(Quantity))
APel <- APel %>% group_by(Exporter) %>% mutate(sE=sum(s1))
APel <- APel %>%
mutate(
Exporter = case_when(
sE < 270 ~ "other countries*",
.default = Exporter
)
)
APel <- APel %>% group_by(Importer) %>% mutate(sI=sum(s1))
APel <- APel %>%
mutate(
Importer = case_when(
sI < 265 ~ "other countries**",
.default = Importer
)
)
ggplot(as.data.frame(APel),
aes(y = s1, axis1 = Exporter, axis2 = Importer)) +
geom_alluvium(aes(fill = Exporter)) +
geom_flow(curve_type = "quintic", alpha = 0.1) +
geom_stratum(size = 0.05, alpha = 0.05) +
geom_text(stat = "stratum",
aes(label = after_stat(stratum)), size = 3) +
ggtitle("Диаграмма перетоков торговли слонами за 47 лет") +
scale_x_discrete(limits = c("Экспортеры", "Импортеры"),
expand = c(0.05, 0.05)) + labs(x = "Страны", y = "Количество особей", fill = "Экспортеры")
Примечания: * - стран-экспортеров в категории “другие страны” - 121; ** - стран-импортеров в категории “другие страны” - 127.
APrh <- rh %>% group_by(Exporter,Importer) %>%
summarise(s1=sum(Quantity))
APrh <- APrh %>% group_by(Exporter) %>% mutate(sE=sum(s1))
APrh <- APrh %>%
mutate(
Exporter = case_when(
sE < 61 ~ "other countries*",
.default = Exporter
)
)
APrh <- APrh %>% group_by(Importer) %>% mutate(sI=sum(s1))
APrh <- APrh %>%
mutate(
Importer = case_when(
sI < 110 ~ "other countries**",
.default = Importer
)
)
ggplot(as.data.frame(APrh),
aes(y = s1, axis1 = Exporter, axis2 = Importer)) +
geom_alluvium(aes(fill = Exporter)) +
geom_flow(curve_type = "quintic", alpha = 0.1) +
geom_stratum(size = 0.05, alpha = 0.05) +
geom_text(stat = "stratum",
aes(label = after_stat(stratum)), size = 2) +
ggtitle("Диаграмма перетоков торговли носорогами за 47 лет") +
scale_x_discrete(limits = c("Экспортеры", "Импортеры"),
expand = c(0.05, 0.05)) + labs(x = "Страны", y = "Количество особей", fill = "Экспортеры")
Примечания: * - стран-экспортеров в категории “другие страны” - 49; ** - стран-импортеров в категории “другие страны” - 87.
el.I<-el%>%group_by(Year)%>%summarise(prodanopogodam=sum(Quantity))
el.I$prodanopogodam<-round(el.I$prodanopogodam,digits = 0)
Intel<-ggplot(el.I,aes(x=Year, y=prodanopogodam))+geom_line(color="#868ddc")+geom_point(color="#868ddc")
plotly::ggplotly(Intel)
rh.I<-rh%>%group_by(Year)%>%summarise(prodanopogodam=sum(Quantity))
rh.I$prodanopogodam<-round(rh.I$prodanopogodam,digits = 0)
Intrh<-ggplot(rh.I,aes(x=Year, y=prodanopogodam))+geom_line(color="#7b22d7")+geom_point(color="#7b22d7")
plotly::ggplotly(Intrh)
fitel <- lm(prodanopogodam ~ Year, data = el.I)
summary(fitel)
##
## Call:
## lm(formula = prodanopogodam ~ Year, data = el.I)
##
## Residuals:
## Min 1Q Median 3Q Max
## -356.07 -88.53 -11.67 114.83 256.09
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6756.953 3083.249 2.192 0.0336 *
## Year -3.240 1.543 -2.100 0.0414 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 143.5 on 45 degrees of freedom
## Multiple R-squared: 0.08922, Adjusted R-squared: 0.06898
## F-statistic: 4.408 on 1 and 45 DF, p-value: 0.0414
ggplot(el.I, aes(Year, prodanopogodam)) +
geom_abline(
slope = fitel$coefficients[2],
intercept = fitel$coefficients[1],
color = "#03c03c",
linewidth = 1)+
geom_point(color="#868ddc") + geom_line(color="#868ddc")
fitrh <- lm(prodanopogodam ~ Year, data = rh.I)
summary(fitrh)
##
## Call:
## lm(formula = prodanopogodam ~ Year, data = rh.I)
##
## Residuals:
## Min 1Q Median 3Q Max
## -170.422 -38.030 -0.523 24.474 200.912
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -10760.926 1324.618 -8.124 2.28e-10 ***
## Year 5.445 0.663 8.213 1.69e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 61.65 on 45 degrees of freedom
## Multiple R-squared: 0.5998, Adjusted R-squared: 0.5909
## F-statistic: 67.45 on 1 and 45 DF, p-value: 1.693e-10
ggplot(rh.I, aes(Year, prodanopogodam)) +
geom_abline(
slope = fitrh$coefficients[2],
intercept = fitrh$coefficients[1],
color = "#03c03c",
linewidth = 1)+
geom_point(color="#7b22d7") + geom_line(color="#7b22d7")
Для большей наглядности графиков были отобраны 10 стран с наибольшим объемом, темпом, оборотами продаж. Оставшиеся страны были помещены в категорию «другие страны».
По графику «Темпы продаж» можно отследить количество проданных и купленных животных отдельными странами с 1975 года. Видно, что слонов больше всех продают США, Зимбабве и ЮАР, а покупают – США, Канада, Китай и Германия.
Носорогов значительно больше всех продает ЮАР, затем США и Германия. А покупают – Китай, ЮАР и США.
Что примечательно в графиках темпов продаж носорогов – неопознанные страны, обозначенные серой линией. Это неизвестные участники процесса.
В графике «Диаграмма перетоков торговли носорогами за 47 лет» как раз видно, куда и в каких объемах эти неизвестные участники продают животных – преимущественно в ЮАР, которая значительно больше других стран продает носорогов, треть покупателей ЮАР остаются инкогнито.
График перетоков слонов более разнообразный и прозрачный: больше всех продают Канада, США, Зимбабве и ЮАР, а покупают – США и Канада.Не вполне понятны отношения между США и Канадой: половина всего экспорта слонов из США уходит в Канаду, откуда практически в полном оъёме возвращается обратно - импортом.
Далее построены графики интенсивности торговли слонами и носорогами. По торговле слонами – довольно равномерный процесс. Максимальное количество слонов было продано в 1984 (585 особей), в 2020 был спад, продано всего 18 слонов, как выяснилось, обойти логистические преграды удалось в этом году Зимбабве, ЮАР и неким неопознанным торговцам.
В графике интенсивности торговли носорогами наблюдается явный подъем, максимум – в 2017 (422 носорога), даже в 2020 их было продано 67 особей (ЮАР и неопознанный торговец).
В линейной модели видим снижение интенсивности торговли слонами и резкое увеличение торговли носорогами.
Есть надежда, что сохранение популяций животных семейств Rhinocerotidae и Elephantidae будет урегулировано на законодательном уровне, но есть и опасения, что торговля может резко прекратиться по другой, более печальной причине.
1.Kabacoff, Robert. R in action: data analysis and graphics with R. Manning, 2011;
2.сайт “Торговая База данных CITES”;
3.статья Caroline Sayuri,Stefano Mammola, Pedro Cardoso «Global wildlife trade permeates the Tree of Life». Biological Conservation, т. 247, июль 2020 г., с. 108503. ScienceDirect,https://doi.org/10.1016/j.biocon.2020.108503;
4.документ Категории и критерии Красного списка МСОП (Версия 3.1). Подготовлено Комиссией по выживанию видов МСОП. Одобрено на 51 заседании Совета МСОП Гланд, Швейцария 9 февраля 2000 г.