Table of Contents
- Software
- DataFrame
- Aprendiendo Plot
- Aprendiendo GGPLOT2
- Usando Boxplots
-
Ejemplo 1
- Encabezado
- llamando mis librerias
- Cargar los datos
- Gráfica de consumo de combustible vs potencia
- Grafica de # de Cilindros vs consumo
- Analisis de Variables continuas multivariadas con BoxPlot y plotly
- Analisis de Variables continuas multivariadas con BoxPlot y jitter
- Analisis de Variables continuas multivariadas con BoxPlot facet
- medida de cuantiles
- Software
- Familia de productos IRIS
- Cargar Librerias
-
Boxplot de especies longitud del petalo
- Boxplot de especies ancho del sepalo
- Relacion entre Longitud y Ancho del Petalo
- Relacion entre ancho del Sepalo y ancho del Petalo
- Relacion entre longitud del Petalo y longitud del Sepalo
- Calculo de la Matriz de Distancias Euclidianas
- Calcula el dendograma de la matriz de distancias
- Gráfica del Dendograma
- Creo el dataframe con los cluster
- Graficar los clusters librerias
- Introducción a Power Bl
Software
DataFrame
Presentación teórica : Introducción al Análisis Multivariado
Un data frame en R es una estructura de datos muy utilizada para almacenar datos tabulares. Cada fila representa una observación y cada columna una variable. Aquí te dejo algunos conceptos básicos y ejemplos para trabajar con data frames en R:
DataFrames introducción : GRAPHICAL METHODS Prezi
Crear un Data Frame
Puedes crear un data frame utilizando la función data.frame()
. Por ejemplo:
# Definir vectores
nombre <- c("Ana", "Luis", "Carlos")
edad <- c(23, 34, 28)
ciudad <- c("Madrid", "Barcelona", "Valencia")
# Crear el data frame
df <- data.frame(nombre, edad, ciudad)
print(df)
str(df)
Acceder a los Datos
Para acceder a los datos de un data frame, puedes usar el signo $
o corchetes []
:
# Acceder a una columna
df$nombre
# Acceder a una fila
df[1, ]
# Acceder a un valor específico
df[1, 2]
Añadir Filas y Columnas
Puedes añadir nuevas filas con rbind()
y nuevas columnas con cbind()
:
# Añadir una nueva columna
df$salario <- c(30000, 40000, 35000)
# Añadir una nueva fila
nueva_fila <- data.frame(nombre = "María", edad = 30, ciudad = "Sevilla", salario = 32000)
df <- rbind(df, nueva_fila)
Filtrar y Ordenar Datos
Para filtrar y ordenar datos, puedes usar funciones como subset()
y order()
:
# Filtrar datos
df_filtrado <- subset(df, edad > 25)
# Ordenar datos
df_ordenado <- df[order(df$edad), ]
Aprendiendo Plot
La función plot()
en R es una herramienta muy versátil para crear gráficos.
Veamos sus usos y cómo configurarla:
Usos Básicos de plot()
La función plot()
se puede utilizar para crear diferentes tipos de gráficos dependiendo de los datos que le pases. Aquí tienes algunos ejemplos básicos:
Gráfico de Dispersión
# Datos de ejemplo
x <- rnorm(100)
y <- rnorm(100)
# Crear un gráfico de dispersión
plot(x, y, main="Gráfico de Dispersión", xlab="Eje X", ylab="Eje Y")
Gráfico de Líneas
# Datos de ejemplo
x <- 1:10
y <- x^2
# Crear un gráfico de líneas
plot(x, y, type="l", main="Gráfico de Líneas", xlab="Eje X", ylab="Eje Y")
Configuración de plot()
Puedes personalizar tus gráficos utilizando varios argumentos dentro de la función plot()
. Aquí tienes algunos de los más comunes:
Tipos de Gráficos (type
)
"p"
: Puntos (por defecto)"l"
: Líneas"b"
: Puntos y líneas"o"
: Líneas y puntos superpuestos"h"
: Barras verticales"s"
: Escalones
plot(x, y, type="b", main="Puntos y Líneas")
Colores y Símbolos
col
: Color de los puntos o líneaspch
: Tipo de símbolo para los puntos (1 a 25)cex
: Tamaño de los puntos
plot(x, y, col="blue", pch=19, cex=1.5, main="Personalización de Colores y Símbolos")
Ejes y Títulos
xlab
yylab
: Etiquetas de los ejesmain
: Título del gráficosub
: Subtítulo del gráfico
plot(x, y, xlab="Eje X", ylab="Eje Y", main="Título Principal", sub="Subtítulo")
Líneas y Leyendas
Puedes añadir líneas adicionales y leyendas a tus gráficos:
# Añadir una línea horizontal y una vertical
abline(h=50, col="red", lty=2)
abline(v=5, col="green", lty=2)
# Añadir una leyenda
legend("topright", legend=c("Línea Horizontal", "Línea Vertical"), col=c("red", "green"), lty=\
2)
Recursos Adicionales
Aprendiendo GGPLOT2
¿Qué es ggplot2?
ggplot2 es un paquete de R para la creación de gráficos de manera declarativa, basado en la “Gramática de los Gráficos” (The Grammar of Graphics).
Esto significa que puedes construir gráficos complejos a partir de componentes simples y reutilizables.
Con ggplot2, defines cómo los datos se mapean a las estéticas (como el color, la forma y el tamaño) y qué elementos gráficos (como puntos, líneas y barras) se deben usar para representar esos datos

Instalación
Para instalar ggplot2, puedes usar:
install.packages("ggplot2")
Ejemplos de Aplicación con la Base cars
La base de datos cars
en R contiene datos sobre la velocidad y la distancia de frenado de automóviles.
1. Gráfico de Dispersión
Un gráfico de dispersión muestra la relación entre dos variables cuantitativas.
# Cargar ggplot2
library(ggplot2)
# Crear un gráfico de dispersión
ggplot(cars, aes(x = speed, y = dist)) +
geom_point() +
labs(title = "Gráfico de Dispersión de Velocidad vs Distancia de Frenado",
x = "Velocidad (mph)",
y = "Distancia de Frenado (ft)")
2. Gráfico de Líneas
Un gráfico de líneas es útil para mostrar tendencias a lo largo de un rango continuo.
# Crear un gráfico de líneas
ggplot(cars, aes(x = speed, y = dist)) +
geom_line() +
labs(title = "Gráfico de Líneas de Velocidad vs Distancia de Frenado",
x = "Velocidad (mph)",
y = "Distancia de Frenado (ft)")
3. Gráfico de Barras
Aunque los gráficos de barras son más comunes para datos categóricos, también se pueden usar para mostrar la frecuencia de valores discretos.
# Crear un gráfico de barras
ggplot(cars, aes(x = factor(speed))) +
geom_bar() +
labs(title = "Frecuencia de Velocidades",
x = "Velocidad (mph)",
y = "Frecuencia")
Recursos Adicionales
Usando Boxplots
¿Qué es un Boxplot?
Un boxplot (o diagrama de caja y bigotes) es una representación gráfica que resume la distribución de un conjunto de datos numéricos a través de sus cuartiles.

Es una herramienta muy útil en el análisis exploratorio de datos porque permite identificar rápidamente la mediana, la dispersión, la asimetría y los valores atípicos (outliers) de los datos1.
Los boxplots son herramientas poderosas para el análisis exploratorio de datos, permitiéndote visualizar rápidamente la distribución y detectar posibles problemas en tus datos.
Componentes de un Boxplot
- Caja: Representa el rango intercuartílico (IQR), que es la distancia entre el primer cuartil (Q1, 25%) y el tercer cuartil (Q3, 75%).
- Línea dentro de la caja: Indica la mediana (Q2, 50%).
- Bigotes: Se extienden desde los cuartiles hasta el valor máximo y mínimo dentro de 1.5 veces el IQR.
- Puntos fuera de los bigotes: Representan los valores atípicos.
Importancia en el Análisis de Datos
- Identificación de Outliers: Los boxplots permiten detectar valores atípicos que pueden influir en el análisis.
- Comparación de Distribuciones: Facilitan la comparación de la distribución de datos entre diferentes grupos.
- Visualización de la Dispersión: Muestran la variabilidad de los datos y la presencia de asimetrías.
Ejemplos con mtcars
en R
La base de datos mtcars
contiene datos sobre diferentes modelos de automóviles, incluyendo variables como el consumo de combustible, la cilindrada, la potencia, etc. Aquí te dejo algunos ejemplos de cómo crear boxplots con esta base de datos usando R.
1. Boxplot de una Variable
# Cargar ggplot2
library(ggplot2)
# Crear un boxplot para la variable 'mpg' (millas por galón)
ggplot(mtcars, aes(y = mpg)) +
geom_boxplot() +
labs(title = "Boxplot de Millas por Galón (mpg)",
y = "Millas por Galón (mpg)")
2. Boxplot por Grupo
# Crear un boxplot de 'mpg' agrupado por el número de cilindros ('cyl')
ggplot(mtcars, aes(x = factor(cyl), y = mpg)) +
geom_boxplot() +
labs(title = "Boxplot de Millas por Galón (mpg) por Número de Cilindros",
x = "Número de Cilindros",
y = "Millas por Galón (mpg)")
3. Boxplot con Personalización
# Crear un boxplot personalizado
ggplot(mtcars, aes(x = factor(cyl), y = mpg, fill = factor(cyl))) +
geom_boxplot() +
labs(title = "Boxplot de Millas por Galón (mpg) por Número de Cilindros",
x = "Número de Cilindros",
y = "Millas por Galón (mpg)") +
theme_minimal() +
scale_fill_brewer(palette = "Set3")
Recursos Adicionales
1: R CODER 2: Datamentor
Ejemplo 1
Encabezado
title: "DataFrame"
output:
html_document:
# keep_md: true
df_print: paged
theme: flatly
toc: true
number_sections: true
toc_float:
collapsed: true
smooth_scroll: true
code_folding: hide
llamando mis librerias
library(ggplot2)
library(plotly)
Cargar los datos
data("mtcars") # dataframe multivariado
str(mtcars)
attach(mtcars)
Gráfica de consumo de combustible vs potencia
ggplot(mtcars, aes(x=mpg, y=hp, colour = am)) + geom_point()
Grafica de # de Cilindros vs consumo
grafica <- ggplot(mtcars,aes(x=mpg, y=hp, colour = factor(cyl))) + geom_point(size=3)+ labs(x=\
"millas por galon ", y="potencia en HP") + scale_color_discrete(labels = c("4 cyl", "6 cyl", "
8 cyl"))
ggplotly(grafica)
Analisis de Variables continuas multivariadas con BoxPlot y plotly
grafica2 <- ggplot(mtcars) + aes(factor(cyl), mpg) + geom_boxplot(fill="#00ff5f")
grafica2
ggplotly(grafica2)
Analisis de Variables continuas multivariadas con BoxPlot y jitter
grafica2 + geom_jitter(width = 0.5)
Analisis de Variables continuas multivariadas con BoxPlot facet
grafica2 + geom_jitter(width = 0.5) + facet_wrap((cyl~am))
medida de cuantiles
quantile(mpg)
Software
Software del Curso Análisis de Datos para la Investigación
Importante se deben instalar TODOS en INGLES !!
y seleccionar descarga DIRECTA
Familia de productos IRIS

Cargar Librerias
library(ggplot2)
library(plotly)
Cargar Base de Datos iris
data("iris")
str(iris)
## 'data.frame': 150 obs. of 5 variables:
## $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
## $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
## $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
## $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
## $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 .
attach(iris)
##Exploracion inical
summary(iris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
## 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
## Median :5.800 Median :3.000 Median :4.350 Median :1.300
## Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
## 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
## Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
## Species
## setosa :50
## versicolor:50
## virginica :50
##
Boxplot de especies longitud del petalo
ggplot(iris)+aes(Species,Petal.Length)+geom_boxplot(fill="#00ff5f")

Boxplot de especies ancho del sepalo
ggplot(iris)+aes(Species,Sepal.Length)+geom_boxplot(fill="#00ff9f")

Relacion entre Longitud y Ancho del Petalo
La grafica nos muestra que la especie setosa tiene una longitud del petalo mas corta y un ancho de petalo un poco mas bajo, la relacion entre el ancho de su petalo y la longitud de su petalo se muestra mas consistente en las especies Versicolor y Virginica.
ggplot(iris, aes(x = Petal.Length, y = Petal.Width)) +
geom_point(aes(color = Species), size = 3) +
labs(x = "Longitud del Petalo", y = "Ancho del Petalo", title = "Relacion entre Longitud y a\
ncho del Petalo") +
theme_minimal()

Relacion entre ancho del Sepalo y ancho del Petalo
La grafica nos muestra que los puntos estan dispersos, no se observa una relacion lineal entre las variables.Los valores para la especie Setosa indican un ancho de sepalo mas bajo y un ancho de petalos reducido permitiendo que sea mas facil diferenciarla.Las especies Versicolor y Virginica no muestran patrones claros, lo que sugiere que el ancho del sepalo y del petalo no son caracteristicas suficentemente determinantes para poder distinguirlas. Los puntos no siguen una linea recta ni curva, reforzando que no existe correlacion entre estas dos variables.
ggplot(iris, aes(x = Sepal.Width, y = Petal.Width)) +
geom_point(aes(color = Species), size = 3) +
labs(x = "Ancho del Sepalo", y = "Ancho del Petalo", title = "Relacion entre ancho del Sepal\
o y ancho del Petalo") +
theme_minimal()

Relacion entre longitud del Petalo y longitud del Sepalo
La grafica nos muestra que la longitud del petalo y la longitud del sepalo están positivamente correlacionadas, especialmente para Versicolor y Virginica. Sin embargo, Setosa se diferencia al tener tamaños mucho más pequeños en comparación con las otras especies. La linea de ajuste nos permite ver la relacion positiva, y su pendiente indica que a medida que el sépalo se alarga, también lo hace el pétalo.
ggplot(iris, aes(x = Sepal.Length, y = Petal.Length)) +
geom_point(aes(color = Species), size = 3) +
geom_smooth(method = "lm", se = FALSE, color = "black") + # Línea de ajuste
labs(x = "Longitud del Sepalo", y = "Longitud del Petalo", title = "Relacion con Linea de Aj\
uste") +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

Quitamos la columna especies
iris4 <- iris4[, -5]
Calculo de la Matriz de Distancias Euclidianas
distancias <- dist(iris4,method = "euclidean")
Calcula el dendograma de la matriz de distancias
(dendograma <- hclust(distancias, method = "ward.D2"))
Gráfica del Dendograma
plot(dendograma)
rect.hclust(dendograma, k=3, border = "blue")
Crear las etiquetas del cluster
(clusterespecies <- cutree(dendograma, k=3))
Creo el dataframe con los cluster
iris5 <- data.frame(iris4,clusterespecies)
head(iris5)
Graficar los clusters librerias
library(ggplot2)
library(GGally)