AnaliAnálisis de cluscluster


title: “Tarea Cluster : solucion” output: html_document: keep_md: true df_print: paged theme: spacelab toc: yes editor_options: chunk_output_type: console

Figure 2. Primero, Ejecuta este chunk para cargar los datos
1 #setwd("P:/Diplomado Data Analytics/Modulo 3 AMV/clase 29\
2  Nov")
3 #
4 # Cargar datos
5 data(mtcars)
6 str(mtcars)
7 attach(mtcars)
Figure 3. Diccionario de variables de la base mtcars
 1 #mtcars is a data frame with 32 observations on 11 (numer\
 2 ic) variables.
 3 
 4 [, 1]   mpg Miles/(US) gallon
 5 [, 2]   cyl Number of cylinders
 6 [, 3]   disp    Displacement (cu.in.)
 7 [, 4]   hp  Gross horsepower
 8 [, 5]   drat    Rear axle ratio
 9 [, 6]   wt  Weight (1000 lbs)
10 [, 7]   qsec    1/4 mile time
11 [, 8]   vs  Engine (0 = V-shaped, 1 = straight)
12 [, 9]   am  Transmission (0 = automatic, 1 = manual)
13 [,10]   gear    Number of forward gears
14 [,11]   carb    Number of carburetors
1 #
2 pairs(mtcars, main="matriz de parejas devariable", pch=19\
3 , col="blue")

Grafica de mpg vs hp

comentario

1 library(ggplot2)
2 ggplot(mtcars, aes(mpg,hp)) + geom_point()

Grafica de dips vs wt

1 #
2 ggplot(mtcars, aes(disp,wt)) + geom_point()

Realiza también una gráfica que muestre todas las posibles combinaciones :

Combinaciones entre todas las variables

1 #
2 library(GGally)
3 ggpairs(mtcars, aes(color=factor(gear)), title = "Grafica\
4  de todas las variables")

Después realiza un escalamiento de las variables previo al análisis de clúster y usa esta nueva base para el análisis. (el código de escalamiento está en el archivo)

1 # Escalar datos
2 mtcars_scaled <- data.frame(scale(mtcars))

Realiza un análisis de clúster jerárquico y selecciona cuantos clústeres posibles sé pueden formar :

Calculo de la Matriz de Distancias Euclidianas

1 distancias <- dist(mtcars_scaled, method = "euclidean")

Calcula el dendograma de la matriz de distancias

1 (dendograma <- hclust(distancias, method = "ward.D2"))

Gráfica del Dendograma para k=5

1 plot(dendograma)
2 rect.hclust(dendograma, k=5, border = "blue")

Gráfica del Dendograma para k=6

1 plot(dendograma) 
2 rect.hclust(dendograma, k=6, border = "blue")

Realiza ahora un análisis de K-means para calcular con mayor precisión el número de clúster :

1 set.seed(550)
2 k <- list()
3 for (i in 1:10) {
4   k[[i]]=kmeans(mtcars_scaled, i )
5 }

Gráfica de la base para k=4 por Kmeans

1 plot(mtcars_scaled, col=k[[4]]$cluster)

Gráfica de la base para k=6 por Kmeans

1 plot(mtcars_scaled, col=k[[6]]$cluster)

Calcular el % de cambio en las distancias

1 betweens <- list() 
2 for (i in 1:10) {   betweens[[i]] = (k[[i]]$betweenss / k\
3 [[i]]$totss)*100 }

Grafica del % vs Numero de cluster

1 plot(1:10,betweens, type = "b", xlab = "Numero de cluster\
2 s")
3 grid()

Concluye cuál será el número más adecuado de clúster a formar :

1 Analisis :
2 La base de datos se encontrario bien representada con6 cl\
3 usters pues estarian congruentes con los analisis de clus
4 ter herarquico y k-means