library(haven)
## Warning: пакет 'haven' был собран под R версии 4.5.3
library(FactoMineR)
library(factoextra)
## Warning: пакет 'factoextra' был собран под R версии 4.5.3
## Загрузка требуемого пакета: ggplot2
## Warning: пакет 'ggplot2' был собран под R версии 4.5.3
## Welcome to factoextra!
## Want to learn more? See two factoextra-related books at https://www.datanovia.com/en/product/practical-guide-to-principal-component-methods-in-r/
library(ggplot2)
library(dplyr)
##
## Присоединяю пакет: 'dplyr'
## Следующие объекты скрыты от 'package:stats':
##
## filter, lag
## Следующие объекты скрыты от 'package:base':
##
## intersect, setdiff, setequal, union
library(questionr)
## Warning: пакет 'questionr' был собран под R версии 4.5.3
df <- read_sav("climat.sav")
Поскольку вопрос V16 является вопросом с множественным выбором, создадим набор:
V16<-df %>%
select(contains("V16"))
table_V16_region<-cross.multi.table(V16, df$Region, true.codes=list("да"), freq=FALSE)
table_V16_region<-table_V16_region[1:9, 1:4]
colnames(table_V16_region)<-c("АК", "РА", "РТ", "M")
rownames(table_V16_region)<-c("Увеличение количества засушливых дней, без осадков", "Увеличение периодов аномальной жары", "Большое количество осадков, сильных дождей", "Увеличение количества камнепадов и оползней в горах", "Усилился паводок, разливы рек, затопление мест, которые раньше не затапливались", "Таяние вечной мерзлоты, выход грунтовых вод на поверхность", "Сильные ветры, штормы", "Рост количества насекомых, комаров, мошки", "Рост количества насекомых-вредителей, угрожающих сельскохозяйственным культурам, хвойным лесам")
res.ca <- CA(table_V16_region, graph = FALSE)
## Warning in CA(table_V16_region, graph = FALSE): The columns M sum at 0. They
## were suppressed from the analysis
get_eigenvalue(res.ca)
## eigenvalue variance.percent cumulative.variance.percent
## Dim.1 0.07085082 84.15681 84.15681
## Dim.2 0.01333823 15.84319 100.00000
Видим, что наши данные описываются всего двумя измерениями, первое из которых описывает 84,2% дисперсии, второе - 15.8%.
row <- get_ca_row(res.ca)
row
## Correspondence Analysis - Results for rows
## ===================================================
## Name Description
## 1 "$coord" "Coordinates for the rows"
## 2 "$cos2" "Cos2 for the rows"
## 3 "$contrib" "contributions of the rows"
## 4 "$inertia" "Inertia of the rows"
Посмотрим показатель квадрата косинуса:
row$cos2
## Dim 1
## Увеличение количества засушливых дней, без осадков 0.9923788
## Увеличение периодов аномальной жары 0.9490015
## Большое количество осадков, сильных дождей 0.9401817
## Увеличение количества камнепадов и оползней в горах 0.7425789
## Усилился паводок, разливы рек, затопление мест, которые раньше не затапливались 0.9832683
## Таяние вечной мерзлоты, выход грунтовых вод на поверхность 0.7042489
## Сильные ветры, штормы 0.6654422
## Рост количества насекомых, комаров, мошки 0.5775468
## Рост количества насекомых-вредителей, угрожающих сельскохозяйственным культурам, хвойным лесам 0.6973866
## Dim 2
## Увеличение количества засушливых дней, без осадков 0.007621233
## Увеличение периодов аномальной жары 0.050998504
## Большое количество осадков, сильных дождей 0.059818305
## Увеличение количества камнепадов и оползней в горах 0.257421102
## Усилился паводок, разливы рек, затопление мест, которые раньше не затапливались 0.016731714
## Таяние вечной мерзлоты, выход грунтовых вод на поверхность 0.295751054
## Сильные ветры, штормы 0.334557785
## Рост количества насекомых, комаров, мошки 0.422453231
## Рост количества насекомых-вредителей, угрожающих сельскохозяйственным культурам, хвойным лесам 0.302613434
Первое измерение доминирует для явлений, связанных с засухой, жарой, осадками и паводками (cos2 от 0.94 до 0.99). Второе измерение наиболее значимо для роста численности насекомых (cos2 = 0.42) и сильных ветров (cos2 = 0.33)
Посмотрим вклады:
row$contrib
## Dim 1
## Увеличение количества засушливых дней, без осадков 6.717048
## Увеличение периодов аномальной жары 8.195487
## Большое количество осадков, сильных дождей 30.983030
## Увеличение количества камнепадов и оползней в горах 9.646569
## Усилился паводок, разливы рек, затопление мест, которые раньше не затапливались 17.104878
## Таяние вечной мерзлоты, выход грунтовых вод на поверхность 11.995053
## Сильные ветры, штормы 7.084298
## Рост количества насекомых, комаров, мошки 1.808883
## Рост количества насекомых-вредителей, угрожающих сельскохозяйственным культурам, хвойным лесам 6.464754
## Dim 2
## Увеличение количества засушливых дней, без осадков 0.274014
## Увеличение периодов аномальной жары 2.339439
## Большое количество осадков, сильных дождей 10.471110
## Увеличение количества камнепадов и оползней в горах 17.763189
## Усилился паводок, разливы рек, затопление мест, которые раньше не затапливались 1.546090
## Таяние вечной мерзлоты, выход грунтовых вод на поверхность 26.757701
## Сильные ветры, штормы 18.919261
## Рост количества насекомых, комаров, мошки 7.028272
## Рост количества насекомых-вредителей, угрожающих сельскохозяйственным культурам, хвойным лесам 14.900922
Наибольший вклад в первое измерение вносит «Большое количество осадков, сильных дождей» – 30.98%. Это явление является ключевым.Наибольший вклад во второе измерение вносит «Таяние вечной мерзлоты, выход грунтовых вод» – 26.76%.
Сделаем биплот:
fviz_ca_biplot(res.ca, repel = TRUE,
col.row = "contrib",
col.col = "blue",
gradient.cols = c("lightgreen", "orange", "red"))
## Scale for colour is already present.
## Adding another scale for colour, which will replace the existing scale.
На биплоте первое измерение (84.2%) разделяет явления на сильные дожди и паводки и жара и засуха. Регион PT находится в центре, что указывает на сбалансированную частоту этих явлений. Второе измерение (15.8%) выделяет ветры, таяние мерзлоты и насекомых-вредителей