Estadística descriptiva para variables cuantitivas

Bioestadística básica/Posgrados CUCS

Pérez-Guerrero Edsaúl Emilio

Instituto de Investigación en Ciencias Biomédicas

2024-09-01

Antes de comenzar

Scripts

  • Es un archivo de texto que permite la edición y lectura de código

  • La recomendación es que las tareas, apuntes de clase sean creados aquí

Scripts

  • Ventajas:
    • Visualmente más fácil de hacer código
    • Podemos guardar nuestro trabajo. Es más importante un buen script que los resultado
    • Podemos insertar comentarios y leer varías líenas a la vez
  • Desventajas
    • Necesita ser leído de arriba abajo

    • A veces llamamos objetos que no se encuentra en nuestro script

    • Es necesario tener órden

Proyectos en Rstudio

Es un maletín que contiene:

  • Objetos

  • Scripts

  • Carpetas

  • Gráficas

  • Bases de datos

  • Etc

Proyectos en Rstudio

Para la clase deberán crear uno o varios proyectos

En cada proyecto deberán cuando mínimo crear las siguientes carpetas

  • Bases
  • Scripts o una carpeta para cada tema/clase
  • Gráficas

¿Dónde vive tu análisis?

R posee el poderoso concepto de directorio de trabajo (working directory en inglés). Aquí es donde R busca los archivos que le pides que lea y donde colocará todos los archivos que le pidas que guarde. RStudio muestra tu directorio de trabajo actual en la parte superior de la consola:

¿Dónde vive tu análisis?

¿Dónde vive tu análisis?

Para conocer en que carpeta están trabajando pueden utilizar el código:

getwd()

Proyecto ejemplo

Pipes

En R podemos encontrar varios operados conocidos conocidos como pipe. Los más utilizados es el símbolo %>% que se encuentra en el paquete dplyr y el símbolo |> que se encuentra en el paquete base de R.

Pipes

Un pipe puede definirse como un símbolo que permite realizar llamadas o funciones encadenadas. De una manera más simple se puede entender como un símbolo que le permite pasar un resultado intermedio a la siguiente función y el resultado de esta función a la siguiente.

Pipes

Pipes

Pipes

Operación1|>
  Operación2|>
  Operación|>

Un ejemplo del uso de pipes sería:

# Llamar la librería MASS para poder cargar la base melanoma
library(MASS)
data("Melanoma")

Melanoma$age |> # Llamar edad
  mean() |>     # Cacular la media
  round(2)      # Redondear a dos dígitos el resultado de la media
[1] 52.46

Estadística descriptiva para variables cuantitativas

Una visión general

Estadística descriptiva cuantitativas

Edades de un grupo de pacientes

ID EDAD ID EDAD ID EDAD
Paciente1 61 Paciente21 53 Paciente41 58
Paciente2 46 Paciente22 50 Paciente42 46
Paciente3 66 Paciente23 54 Paciente43 52
Paciente4 42 Paciente24 64 Paciente44 47
Paciente5 89 Paciente25 73 Paciente45 54
Paciente6 63 Paciente26 61 Paciente46 59
Paciente7 49 Paciente27 53 Paciente47 61

¿Cuál es la mejor manera de describir estos resultados?

Descripción de datos cuantitativos

  • Tabulación de los datos. Dividir la variable, obtener intervalos de clase y realizar una tabla de frecuencias
  • Hacer una representación gráfica (histograma, poligono de frecuencias etc.)
  • Cálculo de medidas de centralización (medidas de tendencia central)
  • Cálculo de medidas de dispersión (coeficiente de variación, rango etc.)
  • Cálculo de medidas de posición (percentiles, cuantiles, etc.)

Medidas de tendencia central

Cálculo de medidas de tendencia central

  • Media aritmética

  • Media goemétrica

  • Media armónica

  • Media cuadrática

  • Mediana

  • Moda

    Las unidades de medida de todos los parámetros de tendencia central son las mismas que la de los datos sobre los que se calculan

Media aritmética

Se refiere al valor que tendría cada elemento de la serie de datos si todos tuvieran el mismo valor

  • Es el parámetro de centralización más utilizado, su valor es el centro aritmético de los datos
  • Se suele emplear el símbolo \(\mu\) para la media poblacional
  • Se emplea \(\bar{x}\) muestral
  • Su formula es:
    • \(\bar{x}=\displaystyle\sum_{i=1}^n \frac{x_i}{n}\)

Media aritmética

  • Su formula es:
    • \(\bar{x}=\displaystyle\sum_{i=1}^n \frac{x_i}{n}\)
  • Donde: \({x_i}\) es el i-ésimo dato; si la suma es desde \(i\) es igual a 1 hasta \(n\)

La media aritmética de los datos: 2,4,6,8 y 9 es:

\(\bar{x}=\displaystyle\sum_{i=1}^n \frac{x_i}{n}=\frac{(2+4+6+8+9)}{5}=5.8\)

Media aritmética en R

Se puede utilizar la función mean(), la cual contiene los siguiente estructura:

mean(x, trim = 0, na.rm = FALSE, ...)

Media aritmética en R

# Sembrando una semilla
set.seed(123)

# Generar 200 edades aleatorias entre 18 y 65 años
edades <- sample(18:65, 200, replace = TRUE)

# Añadir valores perdidos

edades <- c(edades, rep(NA,times=20))

# Se reemplazó el objeto original 
# Se utilizó la función rep para añadir 20 NA

Media aritmética en R

mean(edades)
mean(edades, na.rm = T)
[1] 42.34
# Se omitieron los valores perdidos

Media aritmética ponderada

  • En algunas ocasiones no todos los datos de una serie tienen la misma importancia por lo que se hace una Ponderacion
  • Si se tiene un conjunto de datos \({x_1}, {x_2},{x_3},...,{x_n}\) y cada uno de ellos tiene los pesos: \({k_1}, {k_2},{k_3},...,{k_n}\) la media aritmética ponderada se puede calcular:

\(\bar{x_p}= \frac {\displaystyle\sum_{i=1}^n {k_i}{x_i}}{\displaystyle\sum_{i=1}^n {k_i}} = \frac{{{k_1}{k_1}}+{{k_2}{k_2}}...{{k_n}{k_in}}}{{k_1}+{k_2}...{k_n}}\)

Media aritmética ponderada. Ejemplo

  • En la evaluación de un servicio sanitario, han sido calculados tres índices. La evaluación total del servicio se obtiene calculando la media ponderada de los índices ya que no tienen el mismo valor. Los pesos asignados son 3 al primer índice, 5 al segundo y 9 al tercero

  • Los datos que se obtuvieron son los siguientes:

Primer índice 7
Segundo índice 8
Tercer índice 7

Media aritmética ponderada. Ejemplo

Primer índice 7
Segundo índice 8
Tercer índice 7
  • \(\bar{x_p}= \frac{(3x7+5x8+9x7)}{3+5+9}=7.29\)

Media geométrica

  • La media geométrica de un conjunto de datos de \(n\) datos se calcula obteniendo la ríaz enésima del producto de todos los datos:
    • \({\bar{x_G}}=\sqrt[n]{x_1}{x_2}...{x_n}\)
  • En la expresión anterior \(n\) debe ser igual a la suma de todas la frecuencias

Media geométrica. Ejemplo

Calcular la media geométrica de los datos siguientes: 4, 5, 6, 8, 9, 12

  • \({\bar{x_G}}=\sqrt[6] (4 \cdot\ 5\cdot\ 6\cdot\ 8\cdot\ 9\cdot\ 12) =6.85\)

La media geométrica sólo es preferible a la aritmética en los casos que se presentan progresión geométricas. por ejemplo (cromatografía líquidos, citometría)

Otras medias

  • Media armónica
    • Es al inversa de la media aritmética de los inversos de una serie de datos. Se calcula mediante la siguiente expresión:
    • \({\bar{X_a}}=\frac{n}{\sum_{i=1}^n \frac{1}{x_i}}\)
    • útil para el caso de parámetros como velocidades
  • Media cuadrática
    • Es la raíz cuadrada de media aritmética
    • útil para promediar series de números al cuadrado

Mediana

  • Es el valor central de un conjunto de datos de \(n\) datos ordenados de menor a mayor
  • Divde al conjunto de datos ordenados en dos partes iguales
  • Cuando se trabaja con una \(n\) impar la formula es la siguiente:
    • \(M= \frac{X(n+1)}{2}\)
  • Si \(n\) es par, al mediana es la media aritmética de los dos valores centrales:
    • \(M=\frac{{X_{\frac{n}{2}}}+{X_{\frac{n}{2}+1}}}{2}\)

Mediana. Ejemplo

  • Calcular la mediana de los conjuntos de datos siguientes: 2, 4, 6, 8, 9, 10, 11, 12, 13, 14, 20
    • Es un número impar por lo tanto la mediana es: 10
  • Calcular la mediana de: 3, 6, 8, 12, 17, 38, 32, 34
    • Número par de datos, se toma el promedio. \(M=14.5\)

Mediana. Cálculo en R

median(x, na.rm = FALSE, ...)
median(edades, na.rm = T)
[1] 42

Moda

  • La moda de un conjunto de datos es el valor que más veces se repite.
  • La moda absoluta es el valor que más veces se repite
  • La moda relativa es le valor que sin ser el que más veces se repite, se repite más veces que el resto de los datos.

Moda. Ejemplo

  • En el siguiente conjunto de datos: 2, 2, 2, 3, 7, 8, 9, 11, 11, 11, 11, 34, 56, 78.
  • Identifique:
    • Moda absoluta
    • Moda relativa

Moda. Ejemplo

  • En el siguiente conjunto de datos: 2, 2, 2, 3, 7, 8, 9, 11, 11, 11, 11, 34, 56, 78.
  • Identifique:
    • Moda absoluta= 11
    • Moda relativa= 2

¿Cómo podría estimar la moda en R?

table(edades)
edades
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 
 1  1  3  2  4  3  8  7  5  4  3  4  4  5  6  4  3  2  3  3  4  5  6  3  9  5 
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 
 6  1  5  6  4  7  2  4  4  4  2  3  4  6  2  6  5  4  3  9  2  4 

Propiedades de la media

  1. Unicidad. Para un conjunto determinado de datos, sólo existe una media aritmética.

  2. Simplicidad. La media aritmética es fácil de comprender y calcular.

  3. Todos los valores en la serie de datos se utilizan para su cálculo. Por ello, los valores extremos pueden sesgar el resultado.

  4. Se puede estimar una media de varios grupos.

Propiedades de la mediana

  1. Única.

  2. Simple.

  3. Los valores extremos no le afectan como a la media.

  4. Divide al grupo de valores en dos partes iguales, cada una con el 50% de las observaciones.

Propiedades de la mediana

Sus desventajas en relación con el promedio son:

  1. Desprecia información, porque sólo considera los valores de 1 o 2 observaciones.

  2. Cuando dos o más grupos se unen en uno solo, no es posible calcularla a partir de la mediana de cada grupo.

Medidas de dispersión

Medidas de dispersión

  • Ofrecen información sobre el grado de variabilidad de una variable
  • Indican si una variable tiene datos más dispersos (variación) que otra

Medidas de dispersión

  • Junto con las medidas de tendencia central y dispersión son las medidas que se utilizan para presentar una variable cuantitativa.
  • Las importantes son:
    • rango
    • Varianza
    • Desviación estándar
    • Coeficiente de variación

Rango

  • Es la diferencia entre el valor máximo y el valor mínimo de los datos observados.
  • Aporta información sobre el recorrido de una variable
  • Puede ser engañosa con datos extremos
  • Nunca se debe evaluar solo, se necesitan de otras medidas de dispersión

Rango. Ejemplo

En la medidas de presión arterial sistólica en milímetros de mercurio en un grupo de pacientes se obtiene los siguientes resultados: 120, 135, 160, 100, 155, 115, 165, 125, 130.

  • Calcular el rango:

  • \(Máximo=165\)

  • \(Mínimo=100\)

  • \(Rango= 165-100=65\)

Estimación del rango en R

  • En R el rango se estima con la función:
range(..., na.rm = FALSE, finite = FALSE)
range(edades, na.rm = T)
[1] 18 65

Desviación media

  • \({D_m}=\displaystyle\sum_{i=1}^n \frac{|{X_i}-\bar{X}|}{n}\)

  • Características:

    • Da buena información de la desviación con respecto a la media
    • Se eliminan valores negativos
    • El valor absoluto dificulta su trabajo

Desviación media. Ejemplo

  • Las tallas en centímetros de un grupo de personas se detallan a continuación: 180, 165, 160, 175

\({D_m}=\displaystyle\sum_{i=1}^n \frac{|{X_i}-\bar{X}|}{n}\)

  • \(\bar{x}=170\)
  • \({D_m}= 7.5\)

Desviación media. Ejemplo

  • Las tallas en centímetros de un grupo de personas se detallan a continuación: 180, 165, 160, 175

\[{D_m}=\frac{|180-170|+|165-170|+|160-170|+|175-170|}{4}\]

  • \(\bar{x}=170\)
  • \({D_m}= 7.5\)

Desviación media en R. Ejemplo

  • \({D_m}=\displaystyle\sum_{i=1}^n \frac{|{X_i}-\bar{X}|}{n}\)

No hay una función para la desviación media

y<-c(180,165,160,175)#un objeto con los datos
z<-mean(180,165,160,175)# un objeto de la media de los datos
sum(abs(y-z)/length(y))
[1] 10

Varianza

  • Es el promedio de las diferencias cuadráticas de los datos respecto a la media
  • Sus unidades son las de los datos al cuadrado
  • Se representa por:\(\sigma^2\)
  • Para una población su formula es:
    • \(\sigma^2 = \displaystyle\sum_{i=1}^{n}\frac{(x_i - \mu)^2} {N}\)

Varianza

  • Se representa por:\(S^2\)
  • Para una muestra su formula es:
    • \(s^2 = \displaystyle\sum_{i=1}^{n}\frac{(x_i - \bar{x})^2} {n}\)
  • Cuando se utiliza como estimador población se utiliza \(n-1\):
    • \(s^2_{n-1} = \displaystyle\sum_{i=1}^{n}\frac{(x_i - \bar{x})^2} {n-1}\)

Varianza en R

var(x, y = NULL, na.rm = FALSE, use)
var(edades, na.rm = T)
[1] 178.1652

Desviación estándar

  • Es la raíz cuadrada de la varianza
    • Población \(\sigma=\sqrt{\displaystyle\sum_{i=1}^{n}\frac{(x_i - \mu)^2} {N}}\)
    • Muestra \(s=\sqrt{\displaystyle\sum_{i=1}^{n}\frac{(x_i - \bar{x})^2} {n-1}}\)

Desviación estándar

  • Más fácil de manejar que la varianza
  • Mide que tanto se desvían los datos con respecto a su media
  • Mientras mayor sea la desviación estándar, mayor será la dispersión de los datos

Desviación estándar R

sd(x, na.rm = FALSE)
sd(edades, na.rm = T)
[1] 13.34785

Coeficiente de variación

  • Es una medida de dispersión sin unidades y es el cociente de la desviación estándar respecto a la media, multiplicado por 100 \(CV=\frac{s}{\bar{x}} 100\)
  • Permite la comparación de datos en distintas unidades y en distintas poblaciones o muestras. Incluso con diferentes unidades

Coeficiente de variación en R

No hay una función en especifico para estimar el CV

sd(edades, na.rm = T)/mean(edades, na.rm = T)*100
[1] 31.5254

Coeficiente de variación en R creando una función

Es necesario crear una función

CV<-function(x){
  (sd(x)/mean(x))*100
}
x<-c(18,22,24,26,27,29,30,32,37,40,
     43,47,19,23,24,26,27,29,31,33,
     37,40,43,48,20,23,25,26,28,29)
CV(x)
[1] 27.21379

Coeficiente de variación en R creando una función

Explicación de la función

  • CV: Es el nombre de la función que estás creando. Una vez definida, puedes llamar a esta función usando CV(x), donde x es un vector numérico.

Coeficiente de variación en R creando una función

Explicación de la función

  • function(x): Esto define una nueva función en R. x es el argumento de la función, y se espera que sea un vector numérico. Dentro de los paréntesis de function(), puedes definir múltiples argumentos si fuera necesario, pero en este caso, solo se necesita un conjunto de datos (x) para calcular el CV.

Coeficiente de variación en R creando una función

Explicación de la función

  • {: Inicia el cuerpo de la función, donde se define lo que hace la función. (sd(x) / mean(x)) * 100: Esta es la operación central de la función. Calcula el coeficiente de variación con la siguiente lógica:

Coeficiente de variación en R creando una función

Explicación de la función

  • sd(x): Calcula la desviación estándar de los datos en x. La desviación estándar es una medida de la cantidad de variación o dispersión de un conjunto de valores.

Coeficiente de variación en R creando una función

Explicación de la función

  • mean(x): Calcula la media (el promedio) de los datos en x.
  • sd(x) / mean(x): Divide la desviación estándar por la media para obtener la variación relativa de los datos.

Coeficiente de variación en R creando una función

Explicación de la función

  • 100: Multiplica el resultado por 100 para convertirlo en un porcentaje. Esto hace que el coeficiente de variación sea más fácil de interpretar, especialmente cuando se compara entre diferentes conjuntos de datos.
  • }: Cierra el cuerpo de la función.

Propiedades de la varianza y la desviación típica

  1. Son mayores o iguales a cero

  2. A mayor dispersión de los datos mayor varianza y mayor desviación estándar

Medidas de posición

Medidas de posición

Medidas de posición

Medidas de posición

\(n-\)tiles

  • Los \(n-\)tiles dividen al conjunto de datos en un número determinado de grupos con el mismo número de datos cada uno de ellos.
  • El término \(n-\)tiles se refiere a \(n\) grupos:
    • Los Terciles dividen a un conjunto de datos en 3
    • Los cuartiles lo dividen en 4 partes iguales
    • Los quintiles en 5
  • Los más importantes son los cuartiles, los deciles y percentiles

Cuartiles

  • Dividen al conjunto de datos en cuatro partes iguales, en cada una de ella hay 25% de los datos
25% \(Q_1\) 25% \(Q_2\) 25% \(Q_3\) 25%

Deciles

  • Se consideran como medidas de dispersión o de posición, las cuales dividen un conjunto de datos en 10 partes iguales en cuanto al número de datos.
10% 10% 10% 10% 10% 10% 10% 10% 10%
\(D_1\) \(D_2\) \(D_3\) \(D_4\) \(D_5\) \(D_6\) \(D_7\) \(D_8\) \(D9\)
10% 20% 30% 40% 50% 60% 70% 80% 90%

Deciles

  • Se consideran como medidas de dispersión o de posición, las cuales dividen un conjunto de datos en 10 partes iguales en cuanto al número de datos

Deciles

Cuartil Decil Percentil
10 10%
20 20%
Q1 25%
30 30%
40 40%
Mediana Q2 50 50%

¿Cómo calcularlos?

  • Hay muchas formas de calcularlos

    • \(P(n +1)\) es la que utilizan normalmente los programas estadísticos
    • Donde:
      • \(P=\) al percentil que se desea calcular divido entre 100
      • \(n=\) es el número de datos

¿Cómo calcularlos?

  • Dado el siguiente conjunto de datos calcule el percentil 25
    • 2, 3, 5, 6, 7, 8, 9 y 10
  • \(P(n +1)\) Sustituyendo \(0.25(8+1)=2.25\)

¿Cómo calcularlos?

  • El primer cuartil está situado entre el segundo y tercer dato

  • Dado que la distancia entre el segundo (3) y el tercer dato (5) es de dos, 0.25 corresponde a 0.5

  • El primer cuartil es 3.5

¿Cómo calcularlos?

  • Dado el siguiente conjunto de datos calcule el percentil 25
    • 22, 43, 65, 76, 87, 98, 109 y 210
  • Determine:
    • Percentil 80
    • Percentil 50
    • Percentil 14

¿Cómo calcularlos?

  • Percentil 80: \(0.80(8+1)=7.2\)
    • Corresponde a un valor entre el valor 7 y 8 a una distancia de 0.2
    • \(210-109=101\)
    • por lo tanto \(0.2*101=20.2\)
    • por lo tanto el percentil 80 corresponde: \(109+20.2=129.2\)
  • Percentil 50: \(0.50(8+1)=4.5\)
  • Percentil 14: \(0.14(8+1)=1.26\)

¿Cómo calcularlo en R?

  • Utilice la función:
quantile(x, probs = seq(0, 1, 0.25), na.rm = FALSE,
         names = TRUE, type = 7, digits = 7, ...)
  • Calcule el percentil 80
quantile(edades, 0.80, na.rm = T)
80% 
 57 

¿Cómo calcularlo en R?

  • R tiene varios algoritmos para calcular los percentiles
  • Utilizando el argumento type se pueden cambias
quantile(x, 0.80, type=6, na.rm = T)
 80% 
39.4 
# El tipo 6 fue el que utilizamos en la clase 
# Para estimar el percentil manualmente

https://www.rdocumentation.org/packages/stats/versions/3.6.2/topics/quantile

Discrepancias en el cálculo de los percentiles

  • No existe unanimidad para el cálculo de los percentiles
  • Es común que el cálculo de los percentiles no coincida
  • Otra manera de calcularlos es como sigue:
    • \(P(n-1)+1\)
    • Dividir la \(n\) entre el percentil que se desea buscar
    • Para el ejemplo anterior:
      • \(25/8=3.12\) se busca el dato de la posición \(3 \sim 4\). El dato de la posición 4 corresponde a \(76\)

Calcular varios percentiles en R

  • Utilizando el objeto edades
quantile(edades, c(0.10,0.30,0.40,0.50,0.75, 0.99), type=6, na.rm = T)

Calcular varios percentiles en R

quantile(edades, c(0.10,0.30,0.40,0.50,0.75, 0.99), type=6, na.rm = T)
  10%   30%   40%   50%   75%   99% 
24.00 32.30 39.00 42.00 53.75 65.00 

De ahora en adelante no cambiaremos el argumento type

Recorrido intercuartil

  • El rango intercuartílico IQR (o rango intercuartil) es una estimación estadística de la dispersión de una distribución de datos.
  • Consiste en la diferencia entre el tercer y el primer cuartil. Mediante esta medida se eliminan los valores extremadamente alejados.
  • El rango intercuartílico es altamente recomendable cuando la medida de tendencia central utilizada es la mediana (ya que este estadístico es insensible a posibles irregularidades en los extremos).

Recorrido intercuartil

Recorrido intercuartil

  • Se calcula de la siguiente manera:

\(IQR=Q_3-Q_1\)

  • Por ejemplo, para el conjunto de datos x
    • Obtenemos el \(Q_3=\) 37
    • Obtenemos el \(Q_1=\) 24
    • Realizamos la resta \(Q_3-Q_1=\) 13

Recorrido intercuartil en R

  • Utilice la función:
IQR(x, na.rm = FALSE, type = 7)
  • Calcule el IQR con el objeto edades
IQR(edades, na.rm = T)
[1] 22.25

Funciones para obtener varías medidas descriptivas

Función describe de la librería pshych

install.packages("psych")
psych::describe(edades)
   vars   n  mean    sd median trimmed   mad min max range skew kurtosis   se
X1    1 200 42.34 13.35     42   42.28 16.31  18  65    47 0.01    -1.21 0.94
# La utilización de los cuatro puntos permite acceder a las
# funciones de un librería sin llamarla

Función ds_tidy_stats() de la librería descriptr

install.packages("descriptr")# Instalar librería
library(MASS)
data(Pima.tr)
Pima.tr |>
  descriptr::ds_tidy_stats(glu)
# A tibble: 1 × 16
  vars    min   max  mean t_mean median  mode range variance stdev  skew
  <chr> <int> <int> <dbl>  <dbl>  <dbl> <dbl> <int>    <dbl> <dbl> <dbl>
1 glu      56   199  124.   123.   120.   100   143    1003.  31.7 0.456
# ℹ 5 more variables: kurtosis <dbl>, coeff_var <dbl>, q1 <dbl>, q3 <dbl>,
#   iqrange <dbl>
# Necesita un data frame

Gráficos

Gráficos

  • Tallo y hojas
  • Histogramas
  • Boxplot
  • Densidad
  • Diagramas de dispersión
  • Gráfico de violín

Gráfico de tallo y hojas

  • Utilice la función stem
stem(x, scale = 1, width = 80, atom = 1e-08)
stem (edades)

Gráfico de tallo y hojas


  The decimal point is at the |

  18 | 00
  20 | 00000
  22 | 0000000
  24 | 000000000000000
  26 | 000000000
  28 | 0000000
  30 | 000000000
  32 | 0000000000
  34 | 00000
  36 | 000000
  38 | 000000000
  40 | 000000000
  42 | 00000000000000
  44 | 0000000
  46 | 00000000000
  48 | 00000000000
  50 | 000000
  52 | 00000000
  54 | 00000
  56 | 0000000000
  58 | 00000000
  60 | 000000000
  62 | 000000000000
  64 | 000000

¿Cómo interpretar un gráfico de tallo y de hojas?

  1 | 256                 # <-- 12, 15, 16
  2 | 149                 # <-- 21, 24, 29
  3 | 0123                # <-- 30, 31, 32, 33
  4 | 569                 # <-- 45, 46, 49
  5 | 028                 # <-- 50, 52, 58
  6 | 0345                # <-- 60, 63, 64, 65

Histogramas

Un histograma es un tipo de gráfico que se utiliza en estadística para representar la distribución de frecuencias de una variable cuantitativa. En un histograma, el eje horizontal representa los valores posibles de la variable y se dividen en intervalos o “bins”, mientras que el eje vertical representa la frecuencia o la densidad de ocurrencia de esos valore

Histogramas en R

hist(x, breaks = "Sturges",
     freq = NULL, probability = !freq,
     include.lowest = TRUE, right = TRUE, fuzz = 1e-7,
     density = NULL, angle = 45, col = "lightgray", border = NULL,
     main = paste("Histogram of" , xname),
     xlim = range(breaks), ylim = NULL,
     xlab = xname, ylab,
     axes = TRUE, plot = TRUE, labels = FALSE,
     nclass = NULL, warn.unused = TRUE, ...)

Histograma en R

hist(edades, col = "cyan4",
     ylab="Edad (años)", xlab = "Intervalos de clase")

Histograma en R

Histograma con diferentes intervalos de clase

hist(edades, col="cyan4",
     ylab = "Edad (años)", xlab="Muchos intervalos de clase",
     breaks=50)

Histograma con diferentes intervalos de clase

Histograma. Reto

Construya un histograma para el obejto edades con 10 intervalos de clase y que cada uno de ellos tenga un color diferente

03:00

Histograma. Reto

hist(edades, col = c("red", "orange", "yellow", 
               "green", "blue", "purple", 
               "pink", "brown", "gray", "black"),
     ylab = "Edad (años)", xlab="Muchos intervalos de clase",
     breaks=10)

Histograma. Reto

hist(edades, col = c("#E5C2C0", "#BACCB3", "#A5D1AD", 
               "#8FD5A6", "#61BA81", "#329F5B", 
               "#1F9151", "#0C8346", "#0D704E", "#0D5D56"),
     ylab = "Edad (años)", xlab="Muchos intervalos de clase",
     breaks=10)

Histograma. Reto

colores <- c("#E5C2C0", "#BACCB3", "#A5D1AD", 
               "#8FD5A6", "#61BA81", "#329F5B", 
               "#1F9151", "#0C8346", "#0D704E", "#0D5D56")

hist(edades, col = colores,
     ylab = "Edad (años)", xlab="Muchos intervalos de clase",
     breaks=10)

Histograma. Reto

Histograma en ggplot2

Datos_Edades <- data.frame(edades, ID=1:length(edades))
library(ggplot2)
Datos_Edades|>
  ggplot(aes(x=edades)) + # Note como declaramos el df
  geom_histogram(fill = "cyan4", color = "black") +
  labs(title = "Histograma de edades", x = "Edades", y = "Frecuencia")

Histograma en ggplot2

Boxplot

Boxplot

Boxplot

Boxplot

Boxplot con datos atípicos

Valores atípicos del boxplot

  • Un valor atípico es una observación extrañamente grande o pequeña.
  • Los valores atípicos pueden tener un efecto desproporcionado en los resultados estadísticos, como la media, lo que puede conducir a interpretaciones engañosas.
  • Estos valores atípicos son observaciones que están a por lo menos 1.5 veces el rango intercuartil (Q3 – Q1) del borde de la caja.

Valores atípicos

  • En R:
    • upper whisker = min(max(x), Q_3 + 1.5 * IQR)
    • lower whisker = max(min(x), Q_1 – 1.5 * IQR)

Boxplot en R

boxplot(formula, data = NULL, ..., subset, na.action = NULL,
        xlab = mklab(y_var = horizontal),
        ylab = mklab(y_var =!horizontal),
        add = FALSE, ann = !add, horizontal = FALSE,
        drop = FALSE, sep = ".", lex.order = FALSE)

Boxplot en R

boxplot(edades, main="Sustituir por el título", ylab="Nombre del eje de las y",
        xlab="Nombre del eje de las x", col="sustituir por el nombre del color")
  • Interprete

  • ¿A partir de que números se consideraría un valor extremo?

Boxplot en R

Boxplot en ggplot2

Datos_Edades |>
  ggplot(aes(x="", y=edades)) +
  geom_boxplot(fill = "cyan4", alpha=0.5) +
  labs(title = "Boxplot de edades", x = "", y = "Edad años")+
  theme_linedraw()

Graficos de densidad

Un gráfico de densidad es una representación visual de la distribución de una variable cuantitativa. A diferencia de un histograma, que utiliza barras para representar la frecuencia de observaciones en intervalos de valores, un gráfico de densidad utiliza una curva suavizada para mostrar la densidad de probabilidad de los datos en diferentes valores de la variable

Gráfico de densidad en R

# Calcular la densidad de kernel
densidad <- density(edades, na.rm = T)

# Trazar el gráfico de densidad
plot(densidad, main = "Gráfico de Densidad de Edades", xlab = "Edad", ylab = "Densidad")

Gráfico de densidad en R

Gráfico de densidad utilizando pipes

edades|>
  density(na.rm = T)|>
  plot(main = "Gráfico de Densidad de Edades", xlab = "Edad", ylab = "Densidad")

Gráfico de densidad utilizando ggplot2

Datos_Edades |>
  ggplot(aes(x=edades)) +
  geom_density(fill = "cyan4", alpha=0.5) +
  labs(title = "Gráfico de densidad de edades", x = "Edades", y = "Densidad")

Gráfico de densidad utilizando ggplot2

Gráficos de violín

Un gráfico de violín es un tipo de visualización que combina un diagrama de caja (boxplot) con una representación de la densidad de probabilidad de los datos. Esta combinación proporciona una representación más completa de la distribución de los datos que un diagrama de caja y bigotes tradicional.

Gráfico de violín utilizando R

install.packages("vioplot")
vioplot::vioplot(edades, main="Mi primer gráfico de violín",
                 xlab="", ylab="Edad (años)", col=colores)

Gráfico de violín utilizando R

Gráfico de violín utilizando ggplot2

Datos_Edades |>
  ggplot(aes(x="", y=edades)) +
  geom_boxplot(fill="cyan4")+
  geom_violin(fill = "cyan4", alpha=0.3) +
  labs(title = "Gráfico de violín de edades", x = "", y = "Edad años")+
  theme_linedraw()

Gráfico de violín utilizando ggplot2

Gráfico de violín utilizando ggplot2

Datos_Edades |>
  ggplot(aes(x="", y=edades)) +
  geom_boxplot(fill="cyan4")+
  geom_violin(fill = "cyan4", alpha=0.3) +
  geom_jitter(width = 0.1, color = "black")+
  labs(title = "Gráfico de violín de edades", x = "", y = "Edad años")+
  theme_linedraw()

Gráfico de violín utilizando ggplot2