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",
"rest1614")
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.954894 5.544541 0.5896469 0.01711556
## [2,] 4.825993 5.441801 0.6158079 0.01531780
## [3,] 4.756552 5.379046 0.6224945 0.01483737
## [4,] 4.699206 5.329014 0.6298074 0.01343548
## [5,] 4.650697 5.286642 0.6359450 0.01349643
## [6,] 4.605653 5.248618 0.6429644 0.01329581
## [7,] 4.561909 5.213930 0.6520212 0.01388936
## [8,] 4.515061 5.180409 0.6653479 0.01453828
## [9,] 4.469668 5.148978 0.6793101 0.01452614
## [10,] 4.427465 5.119054 0.6915892 0.01469051
#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 47, 17, 9
##
## Cluster means:
## n.tot pc.esp pc.ext pc.ue27-esp pc.20.34 2019-2014
## 1 -0.3764738 0.2669196 -0.02186679 -0.4371018 -0.2785328 -0.04629314
## 2 1.1128037 -0.9697823 0.53139453 1.1224438 1.1356652 -0.17858511
## 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.05250041 -0.4138552 -0.3617208 -0.50546890 -0.3907094 -0.4614337
## 2 -0.45046935 1.2250015 0.1658677 1.36137683 0.5563495 1.4548583
## 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.4373753 0.3295780 0.09668367 -0.40289700 -0.13192920 -0.4069119
## 2 0.7902053 -0.6426178 -0.15308486 1.14888305 0.07433273 0.6987719
## 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.1805136 -0.3386811 -0.4919139 -0.2044474 0.03531338 0.06620116
## 2 0.3387879 0.8123864 0.2652500 0.7458757 -0.07418445 -0.11456134
## 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.04571632 -0.400388853 -0.2423863 -0.1281363 -0.37814720 -0.4651476
## 2 0.08388141 0.007483167 0.5730867 0.6094274 -0.09606511 0.2463433
## 3 0.08029813 2.076784695 0.1832983 -0.4819844 2.15622501 1.9637891
## nou.eur usat.eur tot.eurm2 nou.eurm2 usat.eurm2 rest1614
## 1 -0.2979308 -0.4673678 -0.5055651 -0.3159715 -0.4993020 0.09678006
## 2 0.4437656 0.2263860 0.6084439 0.6110734 0.6162728 -0.44358567
## 3 0.7176368 2.0130805 1.4908902 0.4958235 1.4433950 0.33247705
##
## Clustering vector:
## el Raval
## 2
## el Barri Gòtic
## 2
## la Barceloneta
## 2
## Sant Pere, Santa Caterina i la Ribera
## 2
## el Fort Pienc
## 2
## la Sagrada Família
## 2
## la Dreta de l'Eixample
## 2
## l'Antiga Esquerra de l'Eixample
## 2
## la Nova Esquerra de l'Eixample
## 2
## Sant Antoni
## 2
## el Poble Sec
## 2
## la Marina del Prat Vermell
## 1
## la Marina de Port
## 1
## la Font de la Guatlla
## 1
## Hostafrancs
## 1
## la Bordeta
## 1
## Sants - Badal
## 1
## Sants
## 2
## les Corts
## 2
## la Maternitat i Sant Ramon
## 1
## 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
## 1
## el Coll
## 1
## la Salut
## 1
## la Vila de Gràcia
## 2
## el Camp d'en Grassot i Gràcia Nova
## 2
## 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
## 1
## Horta
## 1
## Vilapicina i la Torre Llobeta
## 1
## Porta
## 1
## el Turó de la Peira
## 1
## Can Peguera
## 1
## la Guineueta
## 1
## Canyelles
## 1
## les Roquetes
## 1
## Verdun
## 1
## la Prosperitat
## 1
## la Trinitat Nova
## 1
## Torre Baró
## 1
## Ciutat Meridiana
## 1
## Vallbona
## 1
## la Trinitat Vella
## 1
## Baró de Viver
## 1
## 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
## 2
## el Clot
## 1
## el Parc i la Llacuna del Poblenou
## 1
## la Vila Olímpica del Poblenou
## 3
## el Poblenou
## 2
## Diagonal Mar i el Front Marítim del Poblenou
## 3
## 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] 990.3207 569.9187 231.1968
## (between_SS / total_SS = 30.9 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
## K-means clustering with 4 clusters of sizes 6, 9, 17, 41
##
## Cluster means:
## n.tot pc.esp pc.ext pc.ue27-esp pc.20.34 2019-2014
## 1 -1.4072208 0.5865232 -0.207931022 -0.6989938 -0.1467416 -0.25032726
## 2 -0.1359325 0.4378975 -0.889551982 0.1624714 -0.6905852 0.57908052
## 3 1.1128037 -0.9697823 0.531394526 1.1224438 1.1356652 -0.17858511
## 4 -0.2256328 0.2201484 0.005362122 -0.3987762 -0.2978193 -0.01643449
## var20192014 hotel2019 alq.mq alq.num alq.pmq tot_ann
## 1 1.6854480 -0.4723383 -0.8030739 -1.02639260 -2.94104491 -0.6222558
## 2 0.5767177 -0.1526476 1.5756810 0.06818137 0.98948884 -0.3383563
## 3 -0.4504693 1.2250015 0.1658677 1.36137683 0.55634948 1.4548583
## 4 -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.3462311 -1.4780483 1.07919724 -0.60384922 0.53546737 -1.7278432
## 2 0.7914612 -0.5072961 -0.21574331 -0.06609478 0.54855731 0.8050820
## 3 0.7902053 -0.6426178 -0.15308486 1.14888305 0.07433273 0.6987719
## 4 -0.4507135 0.5941087 -0.04709881 -0.37348935 -0.22959699 -0.2136049
## pm_sha pm_hot RFD.2017 tot.comp perc.nou.comp perc.prot.comp
## 1 -0.3088996 -0.4280290 -0.8613461 -1.18949420 0.06219793 1.2957241
## 2 0.3027495 0.2341604 2.0678558 -0.34120639 -0.04428812 -0.1293235
## 3 0.3387879 0.8123864 0.2652500 0.74587570 -0.07418445 -0.1145613
## 4 -0.1617254 -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.22159768 -0.627187627 -1.0469011 -0.39114796 -0.28935458 -0.7184031
## 2 0.08029813 2.076784695 0.1832983 -0.48198444 2.15622501 1.9637891
## 3 0.08388141 0.007483167 0.5730867 0.60942740 -0.09606511 0.2463433
## 4 -0.01997758 -0.367198788 -0.1246525 -0.08964678 -0.39114124 -0.4280859
## nou.eur usat.eur tot.eurm2 nou.eurm2 usat.eurm2 rest1614
## 1 -0.5281961 -0.6773802 -1.0705587 -0.7565348 -1.0258246 0.0500112
## 2 0.7176368 2.0130805 1.4908902 0.4958235 1.4433950 0.3324770
## 3 0.4437656 0.2263860 0.6084439 0.6110734 0.6162728 -0.4435857
## 4 -0.2642334 -0.4366343 -0.4228831 -0.2514988 -0.4222499 0.1036243
##
## 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
## 1
## la Marina de Port
## 4
## la Font de la Guatlla
## 4
## Hostafrancs
## 4
## la Bordeta
## 4
## Sants - Badal
## 4
## Sants
## 3
## les Corts
## 3
## la Maternitat i Sant Ramon
## 4
## 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
## 4
## el Coll
## 4
## la Salut
## 4
## la Vila de Gràcia
## 3
## el Camp d'en Grassot i Gràcia Nova
## 3
## el Baix Guinardó
## 4
## Can Baró
## 4
## el Guinardó
## 4
## la Font d'en Fargues
## 4
## el Carmel
## 4
## la Teixonera
## 4
## Sant Genís dels Agudells
## 4
## Montbau
## 4
## la Vall d'Hebron
## 4
## la Clota
## 1
## Horta
## 4
## Vilapicina i la Torre Llobeta
## 4
## Porta
## 4
## el Turó de la Peira
## 4
## Can Peguera
## 1
## la Guineueta
## 4
## Canyelles
## 4
## les Roquetes
## 4
## Verdun
## 4
## la Prosperitat
## 4
## la Trinitat Nova
## 4
## Torre Baró
## 1
## Ciutat Meridiana
## 4
## Vallbona
## 1
## la Trinitat Vella
## 4
## Baró de Viver
## 1
## el Bon Pastor
## 4
## Sant Andreu
## 4
## la Sagrera
## 4
## el Congrés i els Indians
## 4
## Navas
## 4
## el Camp de l'Arpa del Clot
## 3
## el Clot
## 4
## el Parc i la Llacuna del Poblenou
## 4
## la Vila Olímpica del Poblenou
## 2
## el Poblenou
## 3
## Diagonal Mar i el Front Marítim del Poblenou
## 2
## el Besòs i el Maresme
## 4
## Provençals del Poblenou
## 4
## Sant Martí de Provençals
## 4
## la Verneda i la Pau
## 4
##
## Within cluster sum of squares by cluster:
## [1] 332.6479 231.1968 569.9187 507.2556
## (between_SS / total_SS = 36.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.35099837
## 2 0.08029813 2.0767847 0.1832983 -0.48198444 2.15622501 1.96378912
## 3 -0.11650487 -0.6470336 0.2859324 0.14089432 -0.69690032 -0.09378548
## 4 -0.22159768 -0.6271876 -1.0469011 -0.39114796 -0.28935458 -0.71840309
## 5 -0.01997758 -0.3671988 -0.1246525 -0.08964678 -0.39114124 -0.42808586
## nou.eur usat.eur tot.eurm2 nou.eurm2 usat.eurm2 rest1614
## 1 0.4903136 0.3362960 0.6097386 0.4876692 0.6257177 0.02207502
## 2 0.7176368 2.0130805 1.4908902 0.4958235 1.4433950 0.33247705
## 3 0.2924844 -0.1308216 0.6042360 1.0121372 0.5855769 -1.95698293
## 4 -0.5281961 -0.6773802 -1.0705587 -0.7565348 -1.0258246 0.05001120
## 5 -0.2642334 -0.4366343 -0.4228831 -0.2514988 -0.4222499 0.10362429
##
## 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] 325.77700 231.19681 94.69082 332.64794 507.25562
## (between_SS / total_SS = 42.5 %)
##
## 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