[K means] Análisis de Clúster en R y Rstudio. [Chupitos de R]
Вставка
- Опубліковано 10 лют 2025
- #clúster #kmedias #kmeans
¡¡¡ESTOY INTERPRETANDO AL REVES LA MATRIZ DE DISTANCIA, EL ROJO SERÍA MÁS DISTANCIA (DISIMILITUD), Y NO RELACIÓN, COMO DIGO YO EN EL MIN 3.50.!!!
Si te gusta mi contenido y quieres, puedes pagarme un café en: ko-fi.com/chup... así no me dormiré mientras hago los chupitos. Le daré a Alejandro su medio café.
En este chupito de R os explicaré como utilizar este algoritmo para toma de decisiones llamado K medias. Se trata de una técnica de análisis por conglomerado que permite tomar decisiones sobre cuántos grupos se divide nuestra muestra. K-medias es súper fácil de hacer y aquí os muestro cómo se hace en Rstudio de una forma sencilla. Cómo hacer clúster en R. Rstudio es un programa ideal para hacer estos análisis estadísticos.
Toda la sintaxis:
github.com/pab...
Muchas gracias por esta explicación.
Estoy haciendo el servico con físicos químicos y me pedían hacer un buen código para el análisis multivariable e hice unos con PCA, pero tiempo después conocí el análisis de cluster y no lo lograba entender.
Con este video que hiciste, me acabas de aclarar muchas dudas.
Ojalá vuelvas a subir más videos.
Me gusto esta frase: "El R-studio te hace cosas mas complejas, sino nos quedaríamos con programas sencillitos como el SPSS"
Sí, estoy de acuerdo contigo y conmigo ;)
Gracias por esta explicación, está sencilla y útil. Saludos desde Cali, Colombia
Llevo 2 años aprendiendo R y el logaritmo de UA-cam no se había dado cuenta de lo bien que me habrías venido... jaja
Buen trabajo!
jajaj, hace dos años el canal no existía ;). Así que no está tan mal.
una locura! excelente y muy didáctico el video, gracias!
¡Gracias!
Un placer, y muchas gracias por la donación ;)!!
Muchas gracias, bien explicado, bien comprendido, saludos sigue así
Muchas gracias ;)
Increíble video! Había aprendido a hacer k-mean en python y quería saber cómo se hace en R, tu video es el mejor de todos los que he visto!! Genio!! Gracias por compartir!!
Muchas gracias, Estos comentarios animan un montón!!
Gracias Hermano! excelente explicacion. Saludos de Ultramar 👍
Buenas, solo comentarte que enhorabuena por tu capacidad explicativa. Buscaba algún video para conocer los fundamentos del clustering en R, y saber para qué se usa exactamente y las funciones disponibles, y la verdad que en 20 min me he enterado de todo sin tener que parar el video (algo complicado de lograr cuando se tratan tecnicismos). Así que nada, gracias.
Un placer, no entro mucho en las matemáticas, pero me alegra que te sirviera de ayuda.
Muchas gracias me fue de mucha utilidad saludos desde México 😁
Muchas gracias!!
Muchas gracias, en verdad este video me ayudo mucho para poder acomodar de mejor forma la base y poder trabajar con el análisis de cluster
Genial, me alegra ;)
Creo que por fin he entendido el Cluster Analysis, muy bien explicado!!
Gracias, no era la intención jijijij.
Excelente Pablo muchas gracias por el video estoy estudiante un master en Data Science y me sirvió mucho tu video!!
Súper, me alegra ;)
Gracias man! me ha sido muy útil tu video tutorial. Un saludo desde Argentina.
Genial, me alegra mucho. Creo que el canal se va haciendo conocido últimamente por Argentina ;)
Super bien explicado! Mil gracias
Muchas gracias!!
Me ha encantado! Lo explicas muy muy bien. Cuando puedas uno de ACP😊
Hola, no soy muy fan yo del ACP, pero ya sois varios los que lo habéis pedido. De todas formas hay uno que es de análisis factorial exploratorio... ua-cam.com/video/V0KOVwoU9gk/v-deo.html
Uno de los mejores vídeos respecto a K-Medias
muchas gracias!!
@@PabloVallejoMedina Tengo la siguiente consulta: He tratado de simular el dataset de USArrests para aplicar lo mismo a otros datos. Sin embargo, no sé como manejar la columna de Estado. Creé un csv con 5 columnas, la primera corresponde al estado. Sin embargo, al leer el csv se agrega el rowname con un número de fila y no con el nombre del estado. Es decir, el df generado directamente desde el archivo USArrests es distinto al csv que he creado. No sé como manejar la columna de estado para que sea considerada como rowname. Muchas gracias por tu tiempo y la gran ayuda.
@@marisagalarz Hola María, podrías utilizar la función Rowtocolumname. En el video de clustar con la base de marvel muestro como se hace.
@@PabloVallejoMedina Hola Pablo. Agradezco tu gran ayuda. Tienes los mejores vídeos.
@@marisagalarz Muchas gracias!!
Muy buen vídeo!! Muchas gracias por compartir y explicar el proceso :)
Muchas gracias!!!
Hola Pablo, muy buen video, me encanto!!. Muchas Gracias!!. Solo tengo una duda, una ves definidos los clúster, como puedo ir asignado clúster a posteriores observaciones entrando sin tener que realizar todo el proceso de clusterización nuevamente.
Excelente video!!, aprendí bastante, saludos desde Chile.
Suscriptor 5600! a seguir dándole caña
Muchas gracias !!!
Muy bien explicado. Muchas gracias!
Muchas gracias a ti por el comentario, un saludo ;)
Excelente explicación...una suscriptora más
Muchas gracias!!!
Excelente video, gracias por compartir tu conocimiento
Un placer ;)
Señor le agradezco..... me ayudo mucho
Súper claro, me ha servido mucho!!! Muy buena explicación. Ojalá puedas hacer uno del algoritmo de Kamila :)
Hola, muchas gracias. No creo que me meta con cami. Nunca lo he empleado y no suelo hacer chupitos de técnicas que conozco poco ;)
Excelente, muy claro.
Muchas gracias ;)
Perdóname, pero es solo curiosidad. La gráfica en que muestras la distribución de personajes, ¿son gráficas en componentes principales, específicamente la llamada gráfica de individuos?, lo digo por las cantidad de varianza explicada (presumo) que aparece en las dos primeras dimensiones que (también presumo) por defecto muestra.
Muy bueno Pablo, fue de gran ayuda.
Un placer ;)
Ahaha gracias, creo que te amo. Fuiste de gran ayuda :)
Muchas gracias!!!
Excelente Video mi pana, saludos!!
Saludos tío!
excelente, muy didactico, te veo desde argentina!
Muchas gracias!!!. Saludos desde Colombia.
Excelente!!! Muchas gracias por compartir. Me ha sido de gran utilidad
Me alegra que sea útil;)
Excelente, gracias por compartir la sintaxis
Un placer.
Gracias por compartir su conocimiento, excelente video.
Muchas gracias ;)
Excelente, felicitaciones y gracias
Un placer ;)
Excelente, me clarifico mucho el uso de clusters.
Genial, me alegra ;)
Saludos desde México!! Que gran video!!!
Muchas gracias!!!
Muy clara tu explicación, estoy aprendiendo R para clusterizar. Tengo una consulta, se puede descargar la nueva tabla con los datos de cluster que se crean? Mi intención es poder individualizar cada usuario respecto al algoritmo que pertenece para después poder realizar acciones segmentadas. En caso de qué se pueda, cómo podría obtener tal base?
Tremendo chupito, muy ilustrativo.... Extrañe el ostiaaaaa jejejejeje
El canal va cambiando un poco ;)
Que buen canal. R es espectacular.
Muchas gracias!!!
Muchas gracias, excelente
Un placer ;)
Excelente vídeo. Entendí por fin este tema
Existe alguna forma de utilizar corplot para poder ver como se correlacionan las variables con cada cluster?
Muy buena explicación, gracias. Entiendo que gather es lo que ahora es pivot_longer?
Excelente video, muy claro toda la explicación. Gracias!
Un placer ;)
Hola Pablo que buen vídeo has hecho. A partir del minuto 11:18 sale dibujado el primer gráfico de clusters, en el eje x dice "Dim1 62%" y en el eje y "Dim2 24.7%". Me podrías decir de favor que significan esos porcentajes
Hola, es el % de variabilidad explicada por cada dimensión. Me alegro que te guste.
@@PabloVallejoMedina Muchas gracias Pablo, no sé si sea parecido al de análisis de componentes principales. Saludos desde México.
Es genial como todos los videos. Una pregunta: una vez que he generado los clusters a partir de mi data frame, puedo construir un modelo de regresión a partir de ellos?
Muchas gracias
Sí, claro puedes hacer un modelo por cluster, o emplear la variable como predictora o dependiente (pero adaptado el modelo a variables politómicas).
@@PabloVallejoMedina perfecto muchas gracias y enhorabuena por los videos
Muchas gracias por tu video. Ha sido muy útil y didáctico (como todo tu canal). ¿Podrías hacer un video o dar alguna referencia (artículo o pagina web sobre análisis cluster bietapico en R)? Específicamente que pueda integrar variables categóricas como lo hace el algoritmo de SPSS.
Hola, la verdad no tengo esos conocimientos. En esta ocasión no puedo ayudar ;)
@@PabloVallejoMedina Mil gracias por responder tan rápido. Igualmente, gracias por tu labor y espero que tu canal no deje de crecer.
Excelente videos, gracias por el aporte!
Muchas gracias ;)
Excelente video ! Gracias Pablo.
Muchas gracias!!!
Está genial tu video. Saludos!
Muchas gracias!!!
Un video genial, me ha ayudado muchisimo
Un placer ;)
Muy buen video, se puede hacer que aparezca como labels otra columna? Y adicionalmente, puede aparecer en el gráfico algún otro dato, como las medias o algo, encima de cada grupo? Gracias por tu respuesta, saludos!
Hola Monse, sí todo se puede. Lo de las etiquetas lo tienes en el video de cluster y super héroes. Y lo de las medias, lo puedes hacer programando en ggplot, o hacerlo una vez exportado. Lo puedes ver en mi video de anotaciones fácil en ggplot. Un saludo!!
Muchas gracias! Saludos
Hola Pablo, buenos dias. Me encanta la explicación, solo que cuando yo corro mi programa a la hora de que muestra mis clusters no me sale a que corresponde y a las etiquetas que se ven
@@melinacardenas9302 creo que puedes obtener la respuesta en el vídeo de superhéroes
El video es excelente y didáctico
Hola Pablo, recien trato de emular el video y me sale el siguiente error: > fviz_nbclust(resnumclust)
Esto al momento de buscar el grafico de barras para ver los clusters en el minuto 8:49
Error in if (class(best_nc) == "numeric") print(best_nc) else if (class(best_nc) == :
the condition has length > 1
agradez
Hola, imposible de solucionar con esa información. échale un ojo a los foros.
Excelente!!!
Un placer ;)
Una consulta, por qué cuando ejecuto los comandos para estimar el número de clusters me sale error? Me sale este mensaje Error in do_one(nmeth) : NA/NaN/Inf in foreign function call (arg 1)
Muy bueno, gracias!
De nada!!!!
Otra cosita pabloo, seguí al pié de la letra tu video, pero mis cluster se invirtieron, o sea para ti el cluster 2 era el que agrupaba los estados más peligrosos, pero en mis resultados es al contrario, a que se debe eso ?
quién sabe?? versiones diferentes de algo. Ni idea.
Hola Pablo. Felicidades por tu excelente trabajo con estos vídeos. Tengo una consulta, podrías explicarme que es el (nstart = 25), no lo entiendo muy bien. Además, que me recomiendas al trabajar con 1125 observaciones diferentes, al hacer el cluster, uno se entiende perfectamente (pocas palabras), pero el segundo no se observa nada, debido al gran volumen de palabras que contiene. Saludos!
El K-means es un algoritmo supervisado. Nosotros le tenemos que ir indicando ciertos parámetros. El te va a escoger x puntos, uno por cada cluster que le hayamos dicho, y va a por ejemplo incluir el vecino más cercano en ese cluster. Esos x puntos se eligen al azar. con el nstart le decimos cuantas iteraciones va a hacer. En función de otros parámetros te elegirá los clúster que mejor optimizados estén.
Respecto a lo segundo a mi tmb me pasa en mi otro video de kmeans (marvel). hay una opción que te saca flechitas y te dice los nombres más claramente, pero sinceramente no ayuda mucho. Eso es lo único que conozco. De todas formas no siempre se puede sacar un listado si hicera falta.
Excelente!!
Muchas gracias
Muy buena explicación. En el ejercicio que yo tengo los países está como un atributo pero al momento de hacer kmeans tengo que eliminar esa columna y al momento de graficar no sé cómo poner nuevamente los nombres de los países y no me salgan números por los nombres.
Hola, puedes crear una variable normal con las etiquetas que desees y luego pasarla a rownames así:
dfitems
@@PabloVallejoMedina gracias lo voy a intentar
Excelente video. Siempre que trabjas con datos lo estandarizas o solo es por este caso en particular? Saludos!
Hola pastor. Cuando la escala de medida difiere entre variables se recomienda estandarizar. Si todas van de 0 a 100 por ejemplo no seria tan necesario. Pero aun mejor sería mirar si las varianzas sean iguales o distintas... si es el último caso toca estandarizar. 😄
@@PabloVallejoMedina Estandarizar es apropiado en todos los casos? o existen situaciones en las que no es apropiado y puede dar resultados erroneos? Para hacer modelos predictivos (de regresion) estandarizarias siempre? Gracias por tu respuesta!
@@pastorsoto1298 Hola, es decir, si tus variables tienen varianzas muy desiguales entre ellas. O directamente las unidades de medida son diferentes (por ejemplo millones de dólares en petróleo y PIB) Deberías estandarizarla. En el caso que fueran las mimas unidades (o tuvieran varianzas similares) como ratio de covid por países, entonces no sería necesario. No lo hago como norma general, sino en función de los datos.
Mil gracias, pregunta tengo una base con saldos de creditos pendientes por regiones pero al escalar los datos me dice que X debe ser númerico y no he podido solucionar
Hola, pues supongo que tendrás que transformarla a numérica, ¿no?
porque al momento de sacar el numero de cluster me aparece esto:
Error in do_one(nmeth) :
NA/NaN/Inf en llamada a una función externa (arg 1)
Además: Warning messages:
1: In stats::dist(x) : NAs introducidos por coerción
2: In storage.mode(x)
pareciera que tienens NA en tu data frame, no?
Una pregunta, para bases de satos de 1500 filas y 22 columnas, como puedes hacerlo. Por que tengo agrupaciones en columnas en variables en binarias, pero no se puede representar bien puesto que hay 1500 filas ....y no se ni por donde cogerlo, los ejes ni se ven, osea en los ejes de mi base de datos no se aprecian puesto que son los clientes, por que estamos estudiando la base de un banco de Portugal.
Hola, no es una base muy grande por lo que no debería haber un gran problema. Pero, para empezar, yo nunca elegiría K-means para hacer un cluster de variables dicotómicas. No sé qué variables son, ni cuál es tu objetivo, pero me replantearía si este análisis cumple con lo necesario. Saludos!!
Gran vídeo muchas gracias por tus vídeos
Muchas gracias a todos por participar
Muchas gracias por este video, Pablo. Quedó todo muy claro. Me surge una consulta a partir de este tema, quiero realizar un análisis de clúster con dos o tres variables categóricas (Nivel socioeconómico y proyección de estudios). ¿Qué tipo de análisis de clúster recomendarías en estos casos?
Saludos, gracias por el apoyo!!
Hola, depende un poco de tus datos, pero puedes utilizar RObust Clustering using linKs, o si son mixtos PAM te puede servir, tengo un chupito de ese también ua-cam.com/video/zyixcd_WKUI/v-deo.html Pero vaya , hay diferentes alternativas.
Muy buenas Pablo!! Genial el video!!! no sabes como me estas salvando un trabajo XD pero me salio un pequeño error que me hace ruido "Error in NbClust(df, diss = m.distancia, distance = NULL, min.nc = 0, :
The TSS matrix is indefinite. There must be too many missing values. The index cannot be calculated." y nada, si tienes idea o te ha pasado me gustaría saber como sacármelo de encima. Saludos.
Supongo que tendrás que hacer una imputación de casos perdidos ¿no?
@@PabloVallejoMedina Hola Pablo, en primer lugar muchas gracias por tus aportes.
Tuve el mismo error que Franco y luego de descartar que fuera por casos perdidos tuve que correrlo en loop basándome en una respuesta de alguna persona en un foro.
sum(is.na(df))
[1] 0
#Aún así no me aceptó varios algoritmos y al final solo usé 16. Cuando intenté incluir algunos manualmente me saliá el mismo error de TSS matrix...
lista.methods = c("kl", "ch", "hartigan","mcclain", "gamma", "gplus",
"tau", "dunn", "sdindex", "sdbw", "cindex", "silhouette",
"ball","ptbiserial", "gap","frey")
lista.distance = c("metodo","euclidean", "maximum", "manhattan", "canberra")
tabla = as.data.frame(matrix(ncol = length(lista.distance), nrow = length(lista.methods)))
names(tabla) = lista.distance
for (j in 2:length(lista.distance)){
for(i in 1:length(lista.methods)){
nb = NbClust(df, distance = lista.distance[j],
min.nc = 2, max.nc = 10,
method = "complete", index =lista.methods[i])
tabla[i,j] = nb$Best.nc[1]
tabla[i,1] = lista.methods[i]
}}
tabla
metodo euclidean maximum manhattan canberra
1 kl 4 10 2 4
2 ch 3 4 2 2
3 hartigan 10 10 4 6
4 mcclain 2 2 2 2
5 gamma 2 2 10 10
6 gplus 2 2 10 2
7 tau 3 10 10 10
8 dunn 2 2 10 2
9 sdindex 9 3 7 2
10 sdbw 9 8 10 10
11 cindex 10 8 2 10
12 silhouette 2 2 2 10
13 ball 3 3 3 3
14 ptbiserial 3 5 10 10
15 gap 2 2 2 2
16 frey 1 4 2 1
¿A qué crees que se deba que los otros 14 den error? Gracias!
@@dabonillao buaa genial. muy interesante. Se me ocurre que tengas eigenvalores negativos y que por tanto algunos indicadores no iteren. Creo con los datos que tienes que 2, 3 o 4 van a ser los mejores. Pero si los quieres todos asegurate que tus variables estan normalizadas y que ninguna se vaya negativa. Quizá eso podría darte el error. Siempre puedes probar con la matriz traspuesta... t(tusdatos). Me cuentas a ver si algo funciona ;)
@@PabloVallejoMedina Muchas gracias! Estamos en contacto.
Me gusto mucho el video y agradezco que enseñes tan bien Pablo. Pero tengo una duda, cuando generas los clúster que significan los porcentajes al lado de cada dimensión ? Saludos
Hola, ¿en que minuto sale?
En el 12:27 aparece un porcentaje en Dim1 y Dim2 eso es la variabilidad entre qué cosas ? Saludos Pablo
Muchas gracias por el vídeo Pablo. Una pregunta, he usado el análisis de clúster para hacer perfiles de las puntuaciones de una escala y así usarlos como variables categóricas moduladores en una regresión. El tema es que nunca he hecho este tipo de análisis y no se bien como reportarlo en un paper en estilo apa. Sabrías algún documento, manual, o incluso algún paper tuyo que usar de guía? Gracias
Hola yo nunca he pasado de cluster a regresión. Si a Anova. Si quieres échale un ojo a este paper que hacen algo parecido:
Colombian people’s willingness to forgive offenses against women perpetrated during the armed conflict... www.scielo.org.co/scielo.php?script=sci_arttext&pid=S0120-05342019000300226
@@PabloVallejoMedina Gracias Pablo. Si lo piensas, Anova y GLM vienen a ser lo mismo. El año pasado, un estudio implementado en r demostraba que (casi) todos los análisis al final son Linear models. Te dejo el link por si lo desconocías:
lindeloev.github.io/tests-as-linear/
Excelente, este tipo de videos
Muchas gracias ;)
pablo! tengo una super duda que data frame se pone en el codigo de NbClust() ? el data frame con los datos estandarizados o no estandarizados? ya que no se si colocar en esa funcion el data frame con los datos sin ser estandarizados, porque como en esa funcion se indica que la distancia es euclidea eso no haria que ese data frame que no esta estandarizado se estandarice?
Hola, el que quieres clustear. Si es normalizado o no depende de los datos.
Hola Pablo, cómo estás? te escribo desde Chile. Quisiera consultarte sobre un error que me arroja el R con tu script: "Error in do_one(nmeth) : NA/NaN/Inf in foreign function call (arg 1)". He probado de todas las formas y no me resulta. Quizás un error en el csv? coloqué las localidades a comparar en columnas.
Puedes mandarme una foto de la base de datos.
¿Este procedimiento se puede hacer cuando las variables son de tipo binarias y categóricas? En particular me preocupa que se use el método eucliano para medir las distancias.
Creo que hay algortimos mejores. Kmedoids por ejemplo.
Hola, excelente!!! Cómo se haría para una matriz de presencia ausencia con Jaccard?? Dónde tendría que incluir este método de Jaccard??
Umhh muy buena pregunta. Creo que sería algo como...
Jmatrix
genio. gracias
Cuándo subes uno de PLS?
Excelente explicación. Gracias
Hola muchas gracias, a ver si el covid me permite volver a grabar pronto. ;)
Holaaa , estoy ingresando al mundo de la estadística y tambien en R; me han servido mucho tus videos, queria preguntar si tengo una base de datos con valores de 0 y 1 (binarias) tambien puedo aplicar este tipo de analisis, o sea claramente debo escalarlos ... pero podría ?
Hola, pues en teoría no. Pero siempre depende un poco de si los resultados tienen sentido. Yo elegiría un cluster más robusto para estos casos. K-medioids¿+??
@@PabloVallejoMedina Pues estoy pensando en hacerlo por el método de Ward y distancia Gower , ya que tengo variables binarias y cuantitativas . y quisiera preguntarte si conoces la función para incluir la distancia Gower? porque estuve intentando con " daisy" y no me da .
@@adventureaf9549 Hola, ni idea es algo muy específico ya.
Gracias por el vídeo!:)
De nada!!
Que tal Pablo, espero que estés bien. Me surge una duda básica. En las gráficas donde se agrupan los clusteres obtenidos, se muestran cada caso (Estados) como un punto dentro de un plano, eje x y eje y. Mi duda es cómo es que cada estado toma una posición en el plano si las variables que se están considerando para hacer el análisis de cluster son más de dos. La posición dentro del plano de cada caso, es muy importante para el análisis, mi duda es que si estamos creando clústeres a partir de mas de dos variables, como determinamos la ubicación del caso dentro del plano.
Saludos cordiales
Por qué los planos no son varianzas o variables. SOn distancias... distancias euclideas.... aquí te lo explican mejor que yo ;) ua-cam.com/video/4b5d3muPQmA/v-deo.html
@@PabloVallejoMedina Muchas gracias, Pablo. Me ha servido mucho. Ahora mismo estoy haciendo un ejemplo y quiero estandarizar las variables de un df, pero no quiero estandarizar todas sino solo algunas. cómo puedo seleccionar las variables que quiero estandarizar?
Estoy utilizando esta función, pero me estadariza todas las variables.
df
Hola quisiera agregarle a la función fviz_cluster los colores no que me los genere aleatoria mente como seria?
Hola
fviz_cluster(res_hcpc, ) +
scale_colour_manual(values = c("darkgreen", "orange", "red")) +
scale_fill_manual(values = c("darkgreen", "orange", "red"))
El Rstudio se me congela siempre que ejecuto esta linea de codigo: fviz_cluster(k2, data = df, ellipse.type = "euclid",repel = TRUE,star.plot = TRUE)
Son cálculos computacionalmente complejos y representaciones gráficas pesadas. Prueba a apagarle el repel = TRUE.
¿Para variables nominales cómo aplicarias estas funciones? Me refiero a que tengo datos de tipo (0,1) y (0,1,2,3,4). Por ejemplo Sexo (0,1), numero de tumores en grupos (0, 1,2,3,4) siendo 0 nada y 4 muchas metástasis. No encuentro nada al respecto... ya que kmeans se necesitan variables numéricas.
Te toca buscar un clúster robusto. Sí no todas las variables son categóricas Kmedioids te podría servir (Tengo video), pero asegúrate que sea coherente. Sino hay algunos otros interesantes.
Hola Enrique, me pasa lo mismo... Lo conseguiste solucionar?
Buenos días Pablo, como estas? Te hago una pregunta, cuando quiero usar la función fviz_cluster para plotear como también la función fviz_nbcluster para conocer el numero de clusters, me salta el siguiente error:
"Error in loadNamespace(j = 0.7.4 is required"
actualiza broom ;)
Una consulta si lo que queremos calcular es un análisis de agrupaciones por estados más seguros e inseguros no sería recomendable omitir la variable población ya que no es relevante? Saludos! Gran video
Hola Nacho. Es una muy buena pregunta. Yo incluí la variable población por que quería que tuviera en cuenta en el clúster. Algo así como ciudades pequeñas seguras, grandes seguras, pequeñas peligrosas etc etc. Pero entiendo que estás planteando una nueva situación. Así que te pregunto yo a ti. Qué prefieres vivir en una ciudad de 1000 habitantes con 100 asesinatos al año o en una de 1.000.000 con 1.000 asesinatos anuales?
@@PabloVallejoMedina Ahhh, ahora sí entiendo su elección. En realidad, respecto a la pregunta, me sería indistinto xq la probabilidad de sufrirlo sería la misma tanto para una ciudad y otra xq la tasa sería la misma.
@@nachoeigu No para nada. En una ciudad de 1.000 habitantes con 100 muertes al año hay un 10% de homicidios. una de 1.000.000 con 1000 del 0,1 ;)
hola Pablo Vallejo el grafico de distancia me parece que está mal explicado en el minuto 4 maso menos... el color rojo indica un nivel alto de disimilitud si no me equivoco y los valores azules( cercanos a ceros ) indican que hay mayor similitud entre los datos, es decir que están más correlacionados
Totalmente, es una matriz de covarianzas y no de correlaciones. No sé en qué estaría yo. Ya mismo subo una alclaración en los subtítulos.
Hola ! muy buenos tus videos. Ya me suscribí.
Cuando quiero utilizar la función fviz_nbclust(resnumclust) me sale el siguiente error = Error in if (class(best_nc) == "numeric") print(best_nc) else if (class(best_nc) == : the condition has length > 1
Como podría solucionarlo ?
Saludos
Parece que es un error de la función, en algunos casos extraños da ese error. Aquí tienes una posible solución, pero no va a ser fácil. stackoverflow.com/questions/72075707/rstudio-error-with-the-fviz-nbclust-function
Eres el mejor bro
Muchas gracias ;)
Hola Pablo. En este Dataset, vemos los nombres de los estados como filas. Como agrupamos si no tenemos esta informacion en las filas?
Por ejemplo, este dataset . www.kaggle.com/ronitf/heart-disease-uci
@@josejaviermarticamarasa5744 Creo que algo así te servirá:
Creo que la función
dfitems
@@PabloVallejoMedina Le añades un id a cada fila?? Interesante!!!
Tengo una duda, esta rutina se puede hacer con dataframes con variables mixtas? o se puede hacer una matriz de disimilitud de estas variables mixtas (p.ej. usando gower) y una vez obtenida la matriz se puede hacer la rutina de NBclust ? Saludos desde Mexico!
Hola yo utilizaría un Kmodes o incluso un Kmedoids
Una pregunta¿Cuando se hacen los clusters todas las variables esas tienen la misma importancia? Quiero decir lo mismo una variable como los asesinatos es mucho más relevante a la hora de tomar decisiones que pongamos los asaltos.¿hay alguna forma de asignar mayor peso a variables o todas tienen el mismo?
Hola, los clúster son para clasificar variables o casos. No son ponderables pues lo único que te dicen es que Nebraska es pequeña, con pocos asesinatos, violaciones y robos como otros XXX estados. Si quieres los puedes agrupar en un clúster. POr otro lado, nuevo méxico es una porquería como estos otros estados.... XXXX. Si después quisieras predecir calidad de vida a partir de estas variables, la propia regresión te ponderará la importancia de las VD.
Estimado Pablo, queria preguntar una cosa a respecto de los clusters. He visto que usted a partir del minuto 11 más o menos explica y incluye una "palette" de colores. Lo que todavía no logré hacer es tener los clusters 1, 2 , 3 y 4 de colores standard. A ver si me explico: Yo quería hacer comparaciones entre clusters con variables diferentes, así que el cluster más alto tendria un color y el más bajo de otro. Resulta que el R decide los colores y todavía no he visto como. Qué hice, llevé al ggplot2 y lo hice ahí, pero quería saber si hay como hacerlo directamente. Gracias.
Hola Amalía no se con que función pero los colores los puedes personalizar. De hecho tengo un chupito reciente de paletas de colores donde explico cómo.
Hola Pablo, excelente video, me quedó todo mucho más claro. He tenido un inconveniente, cuando voy a graficar los clústers con la función fviz_clusterm "Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) : namespace ‘vctrs’ 0.2.4 is already loaded, but >= 0.3.0 is required". Podrías orientarme para saber que estoy haciendo mal?. Muchas gracias
Creo que tienes desactualizada alguna dependencia. Más concretamente vctrs .Actualiza R si lo tienes en la versión antigua. POr que ya empiezan a molestar muchas dependencias con el 3.6
@@PabloVallejoMedina Ya hice la actualización a 4.0.3 y me sigue saliendo el mismo error. Igual muchas gracias por tu respuesta
@@yeisonsantamaria5298 actualiza el paquete de la dependencia que te pide.
Buenas, estimado una pregunta, la data USArrest tiene 4 variables numéricas y 1 categórica?. Lo pregunto porque el srt y y el head siempre me dice que hay 4 variables, entonces que sucede con la variable ESTADOS?
Hola, Estados no es una variable. Es el nombre de las filas. ;)
Muchas gracias Pablo por tu aporte! te hago una consulta, en mi caso tengo mi matriz cargada como csv en R. Cada columna es un sitio de muestreo y cada fila es una sp. Quiero hacer un cluster para ver que sitios son mas similares entre si en relacion a la comunidad de spp de algas. los datos que tengo son abundancias pero hay muchas celdas vacias (con cero) porque no todas las sp fueron encontradas en todos los sitios. Este analisis de cluster que vos mostraste es adecuado para estos datos? Saludos y muchas gracias,
Hola, sí creo que no habría problema. Prueba a ver cómo te va ;)
La intro del mango hizo mucha falta! Muy buen video
Solo tenía un platano y dos naranjas. No quería hacer un cluster con eso ;)
@@PabloVallejoMedina ja muy bien!
Estimado cuando importo una data local me sale el siguiente error al aplicar scale a la df:
df
Hola, debes de tener variables no numéricas. ëchale un ojo al otro video de cluster con marvel que tengo y ahí te lo explico. Un saludo.