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"