Variables
merged2 <- merged %>%
remove_rownames %>%
column_to_rownames(var="Nom_Barri") %>%
select("n.tot","pc.esp","pc.ext","pc.ue27-esp","pc.20.34","2019-2014","var20192014",
"hotel2019",
"alq.mq","alq.num","alq.pmq",
"tot_ann","pc.ent","pc.priv","pc.shared","pc.hotel","pm_ent","pm_priv","pm_sha","pm_hot",
"RFD.2017",
"tot.comp","perc.nou.comp","perc.prot.comp","perc.usat.comp",
"tot.m2","nou.m2","prot.m2","usat.m2",
"tot.eur","nou.eur","usat.eur",
"tot.eurm2","nou.eurm2","usat.eurm2")
Standardizar los datos
df <- scale(merged2)
Optimal K Elbow
#elbow (1 option)
set.seed(123)
wss <- function(k) {
kmeans(df, k, nstart = 100 )$tot.withinss
}
k.values <- 1:15
wss_values <- map_dbl(k.values, wss)
plot(k.values, wss_values,
type="b", pch = 19, frame = FALSE,
xlab="Number of clusters K",
ylab="Total within-clusters sum of squares")
#elbow (2 option)
set.seed(123)
fviz_nbclust(df, kmeans, method = "wss")
#Optimal K Average Silhouette Method
avg_sil <- function(k) {
km.res <- kmeans(df, centers = k, nstart = 100)
ss <- silhouette(km.res$cluster, dist(df))
mean(ss[, 3])
}
k.values <- 2:15
avg_sil_values <- map_dbl(k.values, avg_sil)
plot(k.values, avg_sil_values,
type = "b", pch = 19, frame = FALSE,
xlab = "Number of clusters K",
ylab = "Average Silhouettes")
# Silhouette Method 2
fviz_nbclust(df, kmeans, method = "silhouette")
#Optimal K Gap Statistic Method
set.seed(123)
gap_stat <- clusGap(df, FUN = kmeans, nstart = 100, K.max = 10, B = 50)
print(gap_stat, method = "firstmax")
## Clustering Gap statistic ["clusGap"] from call:
## clusGap(x = df, FUNcluster = kmeans, K.max = 10, B = 50, nstart = 100)
## B=50 simulated reference sets, k = 1..10; spaceH0="scaledPCA"
## --> Number of clusters (method 'firstmax'): 10
## logW E.logW gap SE.sim
## [1,] 4.937328 5.518879 0.5815512 0.01739642
## [2,] 4.804416 5.414101 0.6096850 0.01591986
## [3,] 4.734154 5.349403 0.6152488 0.01419339
## [4,] 4.666830 5.297818 0.6309879 0.01383309
## [5,] 4.618772 5.254661 0.6358891 0.01354180
## [6,] 4.578814 5.216729 0.6379142 0.01329565
## [7,] 4.519333 5.181903 0.6625704 0.01322320
## [8,] 4.475841 5.148445 0.6726040 0.01317610
## [9,] 4.435633 5.116413 0.6807807 0.01334053
## [10,] 4.384696 5.085587 0.7008907 0.01386551
#Optimal K Gap Statistic Method 2
fviz_gap_stat(gap_stat)
#Examinar a los numeros de cluster
k3 <- kmeans(df, centers = 3, nstart = 100)
k4 <- kmeans(df, centers = 4, nstart = 100)
k5 <- kmeans(df, centers = 5, nstart = 100)
k6 <- kmeans(df, centers = 6, nstart = 100)
k7 <- kmeans(df, centers = 7, nstart = 100)
k8 <- kmeans(df, centers = 8, nstart = 100)
k9 <- kmeans(df, centers = 9, nstart = 100)
# plots to compare
p3 <- fviz_cluster(k3, geom = "point", data = df) + ggtitle("k = 3")
p4 <- fviz_cluster(k4, geom = "point", data = df) + ggtitle("k = 4")
p5 <- fviz_cluster(k5, geom = "point", data = df) + ggtitle("k = 5")
p6 <- fviz_cluster(k6, geom = "point", data = df) + ggtitle("k = 6")
p7 <- fviz_cluster(k7, geom = "point", data = df) + ggtitle("k = 7")
p8 <- fviz_cluster(k8, geom = "point", data = df) + ggtitle("k = 8")
p9 <- fviz_cluster(k9, geom = "point", data = df) + ggtitle("k = 9")
grid.arrange(p3, nrow = 1)
grid.arrange(p4, p5, nrow = 1)
grid.arrange(p6, p7, nrow = 1)
grid.arrange(p8, p9, nrow = 1)
K means
for (i in 3:5)
{
finalK <- kmeans(df, centers = i, nstart = 100)
#print
print(finalK)
}
## K-means clustering with 3 clusters of sizes 17, 47, 9
##
## Cluster means:
## n.tot pc.esp pc.ext pc.ue27-esp pc.20.34 2019-2014
## 1 1.1128037 -0.9697823 0.53139453 1.1224438 1.1356652 -0.17858511
## 2 -0.3764738 0.2669196 -0.02186679 -0.4371018 -0.2785328 -0.04629314
## 3 -0.1359325 0.4378975 -0.88955198 0.1624714 -0.6905852 0.57908052
## var20192014 hotel2019 alq.mq alq.num alq.pmq tot_ann
## 1 -0.45046935 1.2250015 0.1658677 1.36137683 0.5563495 1.4548583
## 2 0.05250041 -0.4138552 -0.3617208 -0.50546890 -0.3907094 -0.4614337
## 3 0.57671775 -0.1526476 1.5756810 0.06818137 0.9894888 -0.3383563
## pc.ent pc.priv pc.shared pc.hotel pm_ent pm_priv
## 1 0.7902053 -0.6426178 -0.15308486 1.14888305 0.07433273 0.6987719
## 2 -0.4373753 0.3295780 0.09668367 -0.40289700 -0.13192920 -0.4069119
## 3 0.7914612 -0.5072961 -0.21574331 -0.06609478 0.54855731 0.8050820
## pm_sha pm_hot RFD.2017 tot.comp perc.nou.comp perc.prot.comp
## 1 0.3387879 0.8123864 0.2652500 0.7458757 -0.07418445 -0.11456134
## 2 -0.1805136 -0.3386811 -0.4919139 -0.2044474 0.03531338 0.06620116
## 3 0.3027495 0.2341604 2.0678558 -0.3412064 -0.04428812 -0.12932353
## perc.usat.comp tot.m2 nou.m2 prot.m2 usat.m2 tot.eur
## 1 0.08388141 0.007483167 0.5730867 0.6094274 -0.09606511 0.3149494
## 2 -0.04571632 -0.400388853 -0.2423863 -0.1281363 -0.37814720 -0.4898090
## 3 0.08029813 2.076784695 0.1832983 -0.4819844 2.15622501 1.9629871
## nou.eur usat.eur tot.eurm2 nou.eurm2 usat.eurm2
## 1 0.4924873 0.3096641 0.6658013 0.6748636 0.7989462
## 2 -0.2761375 -0.4951861 -0.5149079 -0.3166623 -0.5068476
## 3 0.5117978 2.0010508 1.4313388 0.3789387 1.1377503
##
## Clustering vector:
## el Raval
## 1
## el Barri Gòtic
## 1
## la Barceloneta
## 1
## Sant Pere, Santa Caterina i la Ribera
## 1
## el Fort Pienc
## 1
## la Sagrada Família
## 1
## la Dreta de l'Eixample
## 1
## l'Antiga Esquerra de l'Eixample
## 1
## la Nova Esquerra de l'Eixample
## 1
## Sant Antoni
## 1
## el Poble Sec
## 1
## la Marina del Prat Vermell
## 2
## la Marina de Port
## 2
## la Font de la Guatlla
## 2
## Hostafrancs
## 2
## la Bordeta
## 2
## Sants - Badal
## 2
## Sants
## 1
## les Corts
## 1
## la Maternitat i Sant Ramon
## 2
## Pedralbes
## 3
## Vallvidrera, el Tibidabo i les Planes
## 3
## Sarrià
## 3
## les Tres Torres
## 3
## Sant Gervasi - la Bonanova
## 3
## Sant Gervasi - Galvany
## 3
## el Putxet i el Farró
## 3
## Vallcarca i els Penitents
## 2
## el Coll
## 2
## la Salut
## 2
## la Vila de Gràcia
## 1
## el Camp d'en Grassot i Gràcia Nova
## 1
## el Baix Guinardó
## 2
## Can Baró
## 2
## el Guinardó
## 2
## la Font d'en Fargues
## 2
## el Carmel
## 2
## la Teixonera
## 2
## Sant Genís dels Agudells
## 2
## Montbau
## 2
## la Vall d'Hebron
## 2
## la Clota
## 2
## Horta
## 2
## Vilapicina i la Torre Llobeta
## 2
## Porta
## 2
## el Turó de la Peira
## 2
## Can Peguera
## 2
## la Guineueta
## 2
## Canyelles
## 2
## les Roquetes
## 2
## Verdun
## 2
## la Prosperitat
## 2
## la Trinitat Nova
## 2
## Torre Baró
## 2
## Ciutat Meridiana
## 2
## Vallbona
## 2
## la Trinitat Vella
## 2
## Baró de Viver
## 2
## el Bon Pastor
## 2
## Sant Andreu
## 2
## la Sagrera
## 2
## el Congrés i els Indians
## 2
## Navas
## 2
## el Camp de l'Arpa del Clot
## 1
## el Clot
## 2
## el Parc i la Llacuna del Poblenou
## 2
## la Vila Olímpica del Poblenou
## 3
## el Poblenou
## 1
## Diagonal Mar i el Front Marítim del Poblenou
## 3
## el Besòs i el Maresme
## 2
## Provençals del Poblenou
## 2
## Sant Martí de Provençals
## 2
## la Verneda i la Pau
## 2
##
## Within cluster sum of squares by cluster:
## [1] 538.6594 961.7546 224.3058
## (between_SS / total_SS = 31.6 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
## K-means clustering with 4 clusters of sizes 41, 6, 17, 9
##
## Cluster means:
## n.tot pc.esp pc.ext pc.ue27-esp pc.20.34 2019-2014
## 1 -0.2256328 0.2201484 0.005362122 -0.3987762 -0.2978193 -0.01643449
## 2 -1.4072208 0.5865232 -0.207931022 -0.6989938 -0.1467416 -0.25032726
## 3 1.1128037 -0.9697823 0.531394526 1.1224438 1.1356652 -0.17858511
## 4 -0.1359325 0.4378975 -0.889551982 0.1624714 -0.6905852 0.57908052
## var20192014 hotel2019 alq.mq alq.num alq.pmq tot_ann
## 1 -0.1864675 -0.4052967 -0.2971326 -0.42923617 -0.01748954 -0.4378988
## 2 1.6854480 -0.4723383 -0.8030739 -1.02639260 -2.94104491 -0.6222558
## 3 -0.4504693 1.2250015 0.1658677 1.36137683 0.55634948 1.4548583
## 4 0.5767177 -0.1526476 1.5756810 0.06818137 0.98948884 -0.3383563
## pc.ent pc.priv pc.shared pc.hotel pm_ent pm_priv
## 1 -0.4507135 0.5941087 -0.04709881 -0.37348935 -0.22959699 -0.2136049
## 2 -0.3462311 -1.4780483 1.07919724 -0.60384922 0.53546737 -1.7278432
## 3 0.7902053 -0.6426178 -0.15308486 1.14888305 0.07433273 0.6987719
## 4 0.7914612 -0.5072961 -0.21574331 -0.06609478 0.54855731 0.8050820
## pm_sha pm_hot RFD.2017 tot.comp perc.nou.comp perc.prot.comp
## 1 -0.1617254 -0.3256058 -0.4378506 -0.06029425 0.03137905 -0.1137290
## 2 -0.3088996 -0.4280290 -0.8613461 -1.18949420 0.06219793 1.2957241
## 3 0.3387879 0.8123864 0.2652500 0.74587570 -0.07418445 -0.1145613
## 4 0.3027495 0.2341604 2.0678558 -0.34120639 -0.04428812 -0.1293235
## perc.usat.comp tot.m2 nou.m2 prot.m2 usat.m2 tot.eur
## 1 -0.01997758 -0.367198788 -0.1246525 -0.08964678 -0.39114124 -0.3815915
## 2 -0.22159768 -0.627187627 -1.0469011 -0.39114796 -0.28935458 -1.2292951
## 3 0.08388141 0.007483167 0.5730867 0.60942740 -0.09606511 0.3149494
## 4 0.08029813 2.076784695 0.1832983 -0.48198444 2.15622501 1.9629871
## nou.eur usat.eur tot.eurm2 nou.eurm2 usat.eurm2
## 1 -0.2544699 -0.3606295 -0.3066150 -0.2693977 -0.3185743
## 2 -0.4241994 -1.4146563 -1.9382429 -0.6396372 -1.7933824
## 3 0.4924873 0.3096641 0.6658013 0.6748636 0.7989462
## 4 0.5117978 2.0010508 1.4313388 0.3789387 1.1377503
##
## Clustering vector:
## el Raval
## 3
## el Barri Gòtic
## 3
## la Barceloneta
## 3
## Sant Pere, Santa Caterina i la Ribera
## 3
## el Fort Pienc
## 3
## la Sagrada Família
## 3
## la Dreta de l'Eixample
## 3
## l'Antiga Esquerra de l'Eixample
## 3
## la Nova Esquerra de l'Eixample
## 3
## Sant Antoni
## 3
## el Poble Sec
## 3
## la Marina del Prat Vermell
## 2
## la Marina de Port
## 1
## la Font de la Guatlla
## 1
## Hostafrancs
## 1
## la Bordeta
## 1
## Sants - Badal
## 1
## Sants
## 3
## les Corts
## 3
## la Maternitat i Sant Ramon
## 1
## Pedralbes
## 4
## Vallvidrera, el Tibidabo i les Planes
## 4
## Sarrià
## 4
## les Tres Torres
## 4
## Sant Gervasi - la Bonanova
## 4
## Sant Gervasi - Galvany
## 4
## el Putxet i el Farró
## 4
## Vallcarca i els Penitents
## 1
## el Coll
## 1
## la Salut
## 1
## la Vila de Gràcia
## 3
## el Camp d'en Grassot i Gràcia Nova
## 3
## el Baix Guinardó
## 1
## Can Baró
## 1
## el Guinardó
## 1
## la Font d'en Fargues
## 1
## el Carmel
## 1
## la Teixonera
## 1
## Sant Genís dels Agudells
## 1
## Montbau
## 1
## la Vall d'Hebron
## 1
## la Clota
## 2
## Horta
## 1
## Vilapicina i la Torre Llobeta
## 1
## Porta
## 1
## el Turó de la Peira
## 1
## Can Peguera
## 2
## la Guineueta
## 1
## Canyelles
## 1
## les Roquetes
## 1
## Verdun
## 1
## la Prosperitat
## 1
## la Trinitat Nova
## 1
## Torre Baró
## 2
## Ciutat Meridiana
## 1
## Vallbona
## 2
## la Trinitat Vella
## 1
## Baró de Viver
## 2
## el Bon Pastor
## 1
## Sant Andreu
## 1
## la Sagrera
## 1
## el Congrés i els Indians
## 1
## Navas
## 1
## el Camp de l'Arpa del Clot
## 3
## el Clot
## 1
## el Parc i la Llacuna del Poblenou
## 1
## la Vila Olímpica del Poblenou
## 4
## el Poblenou
## 3
## Diagonal Mar i el Front Marítim del Poblenou
## 4
## el Besòs i el Maresme
## 1
## Provençals del Poblenou
## 1
## Sant Martí de Provençals
## 1
## la Verneda i la Pau
## 1
##
## Within cluster sum of squares by cluster:
## [1] 479.1332 303.0031 538.6594 224.3058
## (between_SS / total_SS = 38.7 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
## K-means clustering with 5 clusters of sizes 13, 9, 4, 6, 41
##
## Cluster means:
## n.tot pc.esp pc.ext pc.ue27-esp pc.20.34 2019-2014
## 1 1.3749682 -0.2832189 -0.038703214 0.3983943 0.4820236 0.27481883
## 2 -0.1359325 0.4378975 -0.889551982 0.1624714 -0.6905852 0.57908052
## 3 0.2607690 -3.2011136 2.384212181 3.4756046 3.2600005 -1.65214794
## 4 -1.4072208 0.5865232 -0.207931022 -0.6989938 -0.1467416 -0.25032726
## 5 -0.2256328 0.2201484 0.005362122 -0.3987762 -0.2978193 -0.01643449
## var20192014 hotel2019 alq.mq alq.num alq.pmq tot_ann
## 1 -0.2174080 1.3035129 0.2743859 1.58138263 0.50384016 1.2397875
## 2 0.5767177 -0.1526476 1.5756810 0.06818137 0.98948884 -0.3383563
## 3 -1.2079186 0.9698396 -0.1868167 0.64635796 0.72700477 2.1538382
## 4 1.6854480 -0.4723383 -0.8030739 -1.02639260 -2.94104491 -0.6222558
## 5 -0.1864675 -0.4052967 -0.2971326 -0.42923617 -0.01748954 -0.4378988
## pc.ent pc.priv pc.shared pc.hotel pm_ent pm_priv
## 1 0.8038235 -0.6826984 -0.14309180 1.40480991 0.1744054 0.6157559
## 2 0.7914612 -0.5072961 -0.21574331 -0.06609478 0.5485573 0.8050820
## 3 0.7459462 -0.5123561 -0.18556230 0.31712076 -0.2509035 0.9685742
## 4 -0.3462311 -1.4780483 1.07919724 -0.60384922 0.5354674 -1.7278432
## 5 -0.4507135 0.5941087 -0.04709881 -0.37348935 -0.2295970 -0.2136049
## pm_sha pm_hot RFD.2017 tot.comp perc.nou.comp perc.prot.comp
## 1 0.45660574 0.9918394 0.3799778 0.76636527 -0.14259137 -0.1114382
## 2 0.30274954 0.2341604 2.0678558 -0.34120639 -0.04428812 -0.1293235
## 3 -0.04412015 0.2291644 -0.1076155 0.67928460 0.14813806 -0.1247117
## 4 -0.30889958 -0.4280290 -0.8613461 -1.18949420 0.06219793 1.2957241
## 5 -0.16172542 -0.3256058 -0.4378506 -0.06029425 0.03137905 -0.1137290
## perc.usat.comp tot.m2 nou.m2 prot.m2 usat.m2 tot.eur
## 1 0.14553872 0.2088730 0.6614418 0.75359142 0.08880727 0.42621327
## 2 0.08029813 2.0767847 0.1832983 -0.48198444 2.15622501 1.96298712
## 3 -0.11650487 -0.6470336 0.2859324 0.14089432 -0.69690032 -0.04665824
## 4 -0.22159768 -0.6271876 -1.0469011 -0.39114796 -0.28935458 -1.22929511
## 5 -0.01997758 -0.3671988 -0.1246525 -0.08964678 -0.39114124 -0.38159154
## nou.eur usat.eur tot.eurm2 nou.eurm2 usat.eurm2
## 1 0.5533829 0.42526288 0.6710819 0.5538672 0.7425568
## 2 0.5117978 2.00105081 1.4313388 0.3789387 1.1377503
## 3 0.2945763 -0.06603177 0.6486391 1.0681018 0.9822119
## 4 -0.4241994 -1.41465632 -1.9382429 -0.6396372 -1.7933824
## 5 -0.2544699 -0.36062951 -0.3066150 -0.2693977 -0.3185743
##
## Clustering vector:
## el Raval
## 3
## el Barri Gòtic
## 3
## la Barceloneta
## 3
## Sant Pere, Santa Caterina i la Ribera
## 3
## el Fort Pienc
## 1
## la Sagrada Família
## 1
## la Dreta de l'Eixample
## 1
## l'Antiga Esquerra de l'Eixample
## 1
## la Nova Esquerra de l'Eixample
## 1
## Sant Antoni
## 1
## el Poble Sec
## 1
## la Marina del Prat Vermell
## 4
## la Marina de Port
## 5
## la Font de la Guatlla
## 5
## Hostafrancs
## 5
## la Bordeta
## 5
## Sants - Badal
## 5
## Sants
## 1
## les Corts
## 1
## la Maternitat i Sant Ramon
## 5
## Pedralbes
## 2
## Vallvidrera, el Tibidabo i les Planes
## 2
## Sarrià
## 2
## les Tres Torres
## 2
## Sant Gervasi - la Bonanova
## 2
## Sant Gervasi - Galvany
## 2
## el Putxet i el Farró
## 2
## Vallcarca i els Penitents
## 5
## el Coll
## 5
## la Salut
## 5
## la Vila de Gràcia
## 1
## el Camp d'en Grassot i Gràcia Nova
## 1
## el Baix Guinardó
## 5
## Can Baró
## 5
## el Guinardó
## 5
## la Font d'en Fargues
## 5
## el Carmel
## 5
## la Teixonera
## 5
## Sant Genís dels Agudells
## 5
## Montbau
## 5
## la Vall d'Hebron
## 5
## la Clota
## 4
## Horta
## 5
## Vilapicina i la Torre Llobeta
## 5
## Porta
## 5
## el Turó de la Peira
## 5
## Can Peguera
## 4
## la Guineueta
## 5
## Canyelles
## 5
## les Roquetes
## 5
## Verdun
## 5
## la Prosperitat
## 5
## la Trinitat Nova
## 5
## Torre Baró
## 4
## Ciutat Meridiana
## 5
## Vallbona
## 4
## la Trinitat Vella
## 5
## Baró de Viver
## 4
## el Bon Pastor
## 5
## Sant Andreu
## 5
## la Sagrera
## 5
## el Congrés i els Indians
## 5
## Navas
## 5
## el Camp de l'Arpa del Clot
## 1
## el Clot
## 5
## el Parc i la Llacuna del Poblenou
## 5
## la Vila Olímpica del Poblenou
## 2
## el Poblenou
## 1
## Diagonal Mar i el Front Marítim del Poblenou
## 2
## el Besòs i el Maresme
## 5
## Provençals del Poblenou
## 5
## Sant Martí de Provençals
## 5
## la Verneda i la Pau
## 5
##
## Within cluster sum of squares by cluster:
## [1] 309.37996 224.30577 91.43437 303.00312 479.13320
## (between_SS / total_SS = 44.2 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
Plot
final3 <- kmeans(df, centers = 3, nstart = 100)
final4 <- kmeans(df, centers = 4, nstart = 100)
final5 <- kmeans(df, centers = 5, nstart = 100)
fviz_cluster(final3, data = df)
fviz_cluster(final4, data = df)
fviz_cluster(final5, data = df)
kkk <- merged2 %>% mutate(Cluster = final3$cluster) %>% group_by(Cluster) %>% summarise_all(“mean”)
z_cluster(finalK, data = df)
for (i in 3:9) { finalK <- kmeans(df, centers = i, nstart = 100) #plot x <- fviz_cluster(finalK, data = df) x }
Descriptive Statistic
kkk <- merged %>% mutate(Cluster = finalK$cluster) %>% group_by(Nom_Barri) #%>% #summarise_all(“mean”)
k.1 <- kkk %>% filter(Cluster == 1)
k.1$Nom_Barri
k.2 <- kkk %>% filter(Cluster == 2)
k.2$Nom_Barri
k.3 <- kkk %>% filter(Cluster == 3)
k.3$Nom_Barri