library(rio)
GPI <- import("GPI.xlsx")
head(GPI)
## Country iso3c Safety Milita Conflicto
## 1 Afghanistan AFG 4.127 2.472 3.650
## 2 Albania ALB 2.120 1.666 1.403
## 3 Algeria DZA 2.302 2.041 2.068
## 4 Angola AGO 2.413 1.706 1.666
## 5 Argentina ARG 2.656 1.611 1.201
## 6 Armenia ARM 1.977 2.041 1.990
library(rio)
et <- import("Ecological threat.xlsx")
## New names:
## * `` -> `...6`
## * `` -> `...7`
## * `` -> `...8`
## * `` -> `...9`
## * `` -> `...10`
## * `` -> `...11`
## * `` -> `...12`
## * `` -> `...13`
## * `` -> `...14`
## * `` -> `...15`
## * `` -> `...16`
## * `` -> `...17`
## * `` -> `...18`
## * `` -> `...19`
## * `` -> `...20`
## * `` -> `...21`
## * `` -> `...22`
## * `` -> `...23`
## * `` -> `...24`
## * `` -> `...25`
head(et)
## Country Food Risk Score Natural Disasters Score
## 1 Burundi 5 5
## 2 Central African Republic 5 5
## 3 Republic of the Congo 5 5
## 4 Kenya 5 5
## 5 Mozambique 5 5
## 6 Malawi 5 5
## Rapid Population Growth Score Water Risk Score ...6 ...7 ...8 ...9 ...10
## 1 5 5 NA NA NA NA NA
## 2 5 5 NA NA NA NA NA
## 3 5 5 NA NA NA NA NA
## 4 5 5 NA NA NA NA NA
## 5 5 5 NA NA NA NA NA
## 6 5 5 NA NA NA NA NA
## ...11 ...12 ...13 ...14 ...15 ...16 ...17 ...18 ...19 ...20 ...21 ...22 ...23
## 1 NA NA NA NA NA NA NA NA NA NA NA NA NA
## 2 NA NA NA NA NA NA NA NA NA NA NA NA NA
## 3 NA NA NA NA NA NA NA NA NA NA NA NA NA
## 4 NA NA NA NA NA NA NA NA NA NA NA NA NA
## 5 NA NA NA NA NA NA NA NA NA NA NA NA NA
## 6 NA NA NA NA NA NA NA NA NA NA NA NA NA
## ...24 ...25
## 1 NA NA
## 2 NA NA
## 3 NA NA
## 4 NA NA
## 5 NA NA
## 6 NA NA
control4=merge(et,GPI)
str(control4)
## 'data.frame': 163 obs. of 29 variables:
## $ Country : chr "Afghanistan" "Albania" "Algeria" "Angola" ...
## $ Food Risk Score : num 4 2 2 5 2 2 1 1 2 2 ...
## $ Natural Disasters Score : num 5 4 5 3 4 2 4 3 1 1 ...
## $ Rapid Population Growth Score: num 5 1 3 5 2 1 3 1 1 3 ...
## $ Water Risk Score : num 5 3 3 5 3 4 3 1 5 3 ...
## $ ...6 : logi NA NA NA NA NA NA ...
## $ ...7 : logi NA NA NA NA NA NA ...
## $ ...8 : logi NA NA NA NA NA NA ...
## $ ...9 : logi NA NA NA NA NA NA ...
## $ ...10 : logi NA NA NA NA NA NA ...
## $ ...11 : logi NA NA NA NA NA NA ...
## $ ...12 : logi NA NA NA NA NA NA ...
## $ ...13 : logi NA NA NA NA NA NA ...
## $ ...14 : logi NA NA NA NA NA NA ...
## $ ...15 : logi NA NA NA NA NA NA ...
## $ ...16 : logi NA NA NA NA NA NA ...
## $ ...17 : logi NA NA NA NA NA NA ...
## $ ...18 : logi NA NA NA NA NA NA ...
## $ ...19 : logi NA NA NA NA NA NA ...
## $ ...20 : logi NA NA NA NA NA NA ...
## $ ...21 : logi NA NA NA NA NA NA ...
## $ ...22 : logi NA NA NA NA NA NA ...
## $ ...23 : logi NA NA NA NA NA NA ...
## $ ...24 : logi NA NA NA NA NA NA ...
## $ ...25 : logi NA NA NA NA NA NA ...
## $ iso3c : chr "AFG" "ALB" "DZA" "AGO" ...
## $ Safety : num 4.13 2.12 2.3 2.41 2.66 ...
## $ Milita : num 2.47 1.67 2.04 1.71 1.61 ...
## $ Conflicto : num 3.65 1.4 2.07 1.67 1.2 ...
control4= control4[,-c(6:26)]
str(control4)
## 'data.frame': 163 obs. of 8 variables:
## $ Country : chr "Afghanistan" "Albania" "Algeria" "Angola" ...
## $ Food Risk Score : num 4 2 2 5 2 2 1 1 2 2 ...
## $ Natural Disasters Score : num 5 4 5 3 4 2 4 3 1 1 ...
## $ Rapid Population Growth Score: num 5 1 3 5 2 1 3 1 1 3 ...
## $ Water Risk Score : num 5 3 3 5 3 4 3 1 5 3 ...
## $ Safety : num 4.13 2.12 2.3 2.41 2.66 ...
## $ Milita : num 2.47 1.67 2.04 1.71 1.61 ...
## $ Conflicto : num 3.65 1.4 2.07 1.67 1.2 ...
str(control4)
## 'data.frame': 163 obs. of 8 variables:
## $ Country : chr "Afghanistan" "Albania" "Algeria" "Angola" ...
## $ Food Risk Score : num 4 2 2 5 2 2 1 1 2 2 ...
## $ Natural Disasters Score : num 5 4 5 3 4 2 4 3 1 1 ...
## $ Rapid Population Growth Score: num 5 1 3 5 2 1 3 1 1 3 ...
## $ Water Risk Score : num 5 3 3 5 3 4 3 1 5 3 ...
## $ Safety : num 4.13 2.12 2.3 2.41 2.66 ...
## $ Milita : num 2.47 1.67 2.04 1.71 1.61 ...
## $ Conflicto : num 3.65 1.4 2.07 1.67 1.2 ...
dataClus=control4[,c(2:8)]
row.names(dataClus)=control4$Country
library(cluster)
g.dist = daisy(dataClus, metric="gower")
library(factoextra)
## Loading required package: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
fviz_nbclust(dataClus, pam,diss=g.dist,method = "gap_stat",k.max = 10,verbose = F)

library(magrittr)
library(factoextra)
set.seed(123)
res.pam=pam(g.dist,3,cluster.only = F)
dataClus$pam=res.pam$cluster
fviz_silhouette(res.pam,print.summary = F)

silPAM=data.frame(res.pam$silinfo$widths)
silPAM$country=row.names(silPAM)
poorPAM=silPAM[silPAM$sil_width<0,'country']%>%sort()
poorPAM
## [1] "Australia" "Chile" "Israel"
## [4] "Myanmar" "New Zealand" "Nicaragua"
## [7] "North Macedonia" "Oman" "Pakistan"
## [10] "Papua New Guinea" "South Africa" "Taiwan"
## [13] "United Arab Emirates"
#tipificar
library(BBmisc)
##
## Attaching package: 'BBmisc'
## The following object is masked from 'package:base':
##
## isFALSE
control4.1 = control4[,c(2:8)]=normalize(control4[,c(2:8)],method='standardize')
cor(control4[,c(2:8)])
## Food Risk Score Natural Disasters Score
## Food Risk Score 1.00000000 0.28711933
## Natural Disasters Score 0.28711933 1.00000000
## Rapid Population Growth Score 0.76202029 0.17405917
## Water Risk Score 0.75129538 0.36454740
## Safety 0.66058571 0.35251645
## Milita 0.08883541 0.05969936
## Conflicto 0.44921226 0.25637791
## Rapid Population Growth Score Water Risk Score
## Food Risk Score 0.7620203 0.75129538
## Natural Disasters Score 0.1740592 0.36454740
## Rapid Population Growth Score 1.0000000 0.63011932
## Water Risk Score 0.6301193 1.00000000
## Safety 0.5078034 0.63700512
## Milita 0.1883746 0.01704344
## Conflicto 0.4321162 0.33935309
## Safety Milita Conflicto
## Food Risk Score 0.6605857 0.08883541 0.4492123
## Natural Disasters Score 0.3525165 0.05969936 0.2563779
## Rapid Population Growth Score 0.5078034 0.18837463 0.4321162
## Water Risk Score 0.6370051 0.01704344 0.3393531
## Safety 1.0000000 0.32475365 0.7341753
## Milita 0.3247536 1.00000000 0.4495004
## Conflicto 0.7341753 0.44950043 1.0000000
dataClus1=control4[,c(2:8)]
row.names(dataClus1)=control4$Country
library(cluster)
g.dist1 = daisy(dataClus, metric="gower")
library(factoextra)
fviz_nbclust(dataClus1, pam,diss=g.dist1,method = "gap_stat",k.max = 10,verbose = F)

set.seed(123)
res.pam1=pam(g.dist1,7,cluster.only = F)
dataClus1$pam=res.pam1$cluster
fviz_silhouette(res.pam1,print.summary = F)

silPAM1=data.frame(res.pam1$silinfo$widths)
silPAM1$country=row.names(silPAM1)
poorPAM1=silPAM1[silPAM1$sil_width<0,'country']%>%sort()
poorPAM1
## [1] "Albania" "Bhutan" "Czech Republic"
## [4] "Egypt" "Guatemala" "Haiti"
## [7] "Honduras" "Indonesia" "Ireland"
## [10] "Italy" "Kazakhstan" "Lebanon"
## [13] "Mauritius" "Palestine" "Paraguay"
## [16] "Poland" "Republic of the Congo" "Spain"
## [19] "Uganda" "Ukraine" "Zimbabwe"