Autores: Valentina Palma De La Hoz, Daniel Esteban Chitan Palma , Juan David Delgado Africano , Danna Ariana Guzman Rivas.
library(dplyr)
library(datos)
library(ggplot2)
library(descriptr)
library(flextable)
library(modeest)
library(moments)
knitr::opts_chunk$set(echo = TRUE, fig.align = 'center')
En esta parte se desarrollará todo el análisis decriptivo numérico, esto significa que solo se puede realizar para variables cuantitativas.
Aquí se tratará con todas las medidas que permitirán describir un conjunto de datos. Estas son:
**1. Medidas de Tendencia Central
Primero se tomará una muestra de 1000 registros de la base de datos diamantes del paquete datos
Esta muestra aleatoria se usa tomando una semilla con valor de 258.
set.seed(258)
datos.d <- sample_n(diamantes, size = 1000,replace = FALSE)
str(datos.d)
## tibble [1,000 × 10] (S3: tbl_df/tbl/data.frame)
## $ precio : int [1:1000] 17068 8917 2738 5242 11365 2527 1774 1952 5939 9333 ...
## $ quilate : num [1:1000] 2.12 1.54 0.77 0.9 1.03 0.74 0.54 0.7 1.01 1.24 ...
## $ corte : Ord.factor w/ 5 levels "Regular"<"Bueno"<..: 5 4 5 5 5 4 5 3 4 5 ...
## $ color : Ord.factor w/ 7 levels "D"<"E"<"F"<"G"<..: 6 6 5 2 3 2 3 7 1 3 ...
## $ claridad : Ord.factor w/ 8 levels "I1"<"SI2"<"SI1"<..: 4 4 4 5 8 2 5 4 3 5 ...
## $ profundidad: num [1:1000] 62.7 61.7 62 61.3 61.3 61.3 61.1 61.1 62.3 62.2 ...
## $ tabla : num [1:1000] 56 59 56 57 56 59 57 61 60 55 ...
## $ x : num [1:1000] 8.16 7.4 5.86 6.24 6.53 5.83 5.28 5.64 6.4 6.89 ...
## $ y : num [1:1000] 8.24 7.34 5.89 6.2 6.55 5.78 5.3 5.69 6.35 6.87 ...
## $ z : num [1:1000] 5.14 4.55 3.64 3.81 4.01 3.56 3.23 3.46 3.97 4.28 ...
head(datos.d,c(5,5))
## # A tibble: 5 × 5
## precio quilate corte color claridad
## <int> <dbl> <ord> <ord> <ord>
## 1 17068 2.12 Ideal I VS2
## 2 8917 1.54 Premium I VS2
## 3 2738 0.77 Ideal H VS2
## 4 5242 0.9 Ideal E VS1
## 5 11365 1.03 Ideal F IF
Para obtener la media, la mediana y la moda se usan las funciones mean y median del paquete base de r y fmv del paquete modeest para encontrar la moda.
La fórmula para la media y la mediana son:
\[ \bar{x} = \frac{1}{n}\sum_{i =1}^n{x_i} \] La fórmula para posición en donde está la mediana, \(M\) es:
\[ M = \begin{cases} \ x_{(\frac {n+1}{2})} & \text{si n es impar} \\ \frac {x_{(\frac {n}{2})}+x_{(\frac {n+1}{2})}}{2} & \text{si n es par} \end{cases} \] La moda es el dato que más repite o el que tiene mayor frecuencia. Puede pasar que ewxistan más de una moda.
Ejemplo
Encontrar las medidas de tendencia central para la variable precio
## El promedio del precio de los diamantes en la muestra es: 4159.333
## La mediana del precio es: 2564.5
## la moda(s) del precio de los diamanmtes es: 911
Nota para la mediana se ordenan los datos y se aplica la fórmula
attach(datos.d)
o <- sort(precio)
(o[1000/2] +o[(1000/2+1)])/2
## [1] 2564.5
Medidas de variabilidad
Estas medidas cuantifican qué tan dispersos se encuentran los datos con respecto a una medida de tendencia central; la medida de tendencia central más usada es el promedio. La primera medida que se va a estudiar es el rango que la medida más simple y no tiene en cuenta el promedio, la mediana o la moda.
Se define como la diferencia entre el dato mayor y el dato menor.
\[ \small Rango = \text {dato mayor - dato menor} \] La varianza es la medida más usada para medir la dispersión de los datos. Se hace con respecto a la media y se simboliza con la letra \(S^2\) y su fórmula es:
\[ \small S^2 = \frac {1}{n-1}\sum_{i =1}^n{(x_i-\bar{x})^2} \] La desviación estándar es la raíz cuadrada de la varianza, su símbolo es \(S\).
\[ \small S = \sqrt {S^2} \] Por último, se define el coeficiente de variació como el cociente entre la desviación estandar y el promedio.
\[ \small CV = \frac {s}{\bar{x}}*100 \]
Ejemplo
Se encontrarán las medidas de variabilidad para el precio de los diamantes en la base de datos.
rango.d <- max(datos.d$precio)-min(precio)
cat("El rango del precio de los diamantes es:", rango.d)
## El rango del precio de los diamantes es: 18374
varianza.d <- var(precio)
cat("la varianza del precio de los diamantes es:", varianza.d)
## la varianza del precio de los diamantes es: 18008012
desv_est.d <- sd(precio)
cat("la desviación estándar del precio de los diamantes es:",desv_est.d)
## la desviación estándar del precio de los diamantes es: 4243.585
coef_var.d <- (desv_est.d/promedio.d)*100
cat("El coeficiente de variación del precio de los diamantes es:", coef_var.d)
## El coeficiente de variación del precio de los diamantes es: 102.0256
Medidas de posición
Cuantiles
*Cuartiles: Dividen un conjunto de datos ordenado en 4 partes iguales y lo que indica es la posición del datos que tiene hacia atrás un % de la información. Se simbolizan: \(Q_1, Q_2, Q_3\) El \(Q_i \text{, } i = 1,2,3\) es la posición del datos ordenado que tiene hacia atrás el $ 100%$ de la información y es superado por el \(1-\frac {i}{4}\ 100\%\)
primer cuartil, es el dato que tiene el 25%, el cuartil 2 es el que tiene hacia atrás el 50% de la información (coincide con la mediana) el tercer cuartil es el que tiene haia atrás el 75% de la información.
*Percentiles Dividen un conjunto de datos ordenado en 100 partes iguales y lo que indica es la posición del datos que tiene hacia atrás un porcentaje de la información. Se simbolizan: \(P_1, P_2,...,P_{100}\)
El \(P_i \text{, } i = 1,2,3..,100\) es la posición del datos ordenado que tiene hacia atrás el $ 100%$ de la información y es superado por el \((1-\frac {i}{100})\ 100\%\)
La fórmula para la posición del percentil \(k\):
\[ P_k = \frac {(n+1)k}{100}, \\ \] donde \(k\) es la posición y \(n\) el número de datos.
Ejemplo: Encontrar los percentiles, 10, 25, 30, 50, 75 y 80 del precio de los diamantes en la base de datos datos.d
percent <- quantile(x = datos.d$precio, probs = c(0.1,0.25,0.3,0.5,0.75,0.8), type = 6)
percent
## 10% 25% 30% 50% 75% 80%
## 670.1 1000.5 1125.3 2564.5 5741.5 6617.6
La formula para encontrar la posición de un percentil
ejemplo con la fórmula
Encontrar el percentil 25.
Primero encontramos la posición del percentil 25
set.seed(258)
n <- length(datos.d$precio)
pos.25 <- (n+1)*25/100
pos.25 #Mirar esto en la casa
## [1] 250.25
cat("La posición en donde se encuentra el percentil 25 es" , pos.25)
## La posición en donde se encuentra el percentil 25 es 250.25
Se observa que el percentil 25 esta en la posición 250.25, es decir, a 30 y a 0.25 de la distancia entre el 31 y el 30 de los datos ordenados.
ord <- sort(datos.d$precio)
ord[250] + 0.25*(ord[251] - ord[250])
## [1] 1000.5
pos.80 <- (120+1)*80/100
pos.80
## [1] 96.8
ord <- sort(datos.d$precio)
ord[96] + 0.8*(ord[97] - ord[96])
## [1] 667.6
Diagrama de caja El box-plot se construye usando 5 números que son: El \(Q_1,Q_2,Q_3\) , además de el límite inferior y el limite superior. Para encontrar estos limites, se utiliza el rango intercuartílico, que es la diferencia entre el terce o y el primer cuartil, \(RI = Q_3 - Q_1\) y las formulas para estos limites son:
\[ li=q_1-1.5*RI \\ ls=q_3+1.5*RI \]
q1 <- quantile(datos.d$precio,probs = 0.25);q1
## 25%
## 1001.5
q2 <- quantile(datos.d$precio,probs = 0.5);q2
## 50%
## 2564.5
q3 <- quantile(datos.d$precio,probs = 0.75);q3
## 75%
## 5732.5
ri <- q3-q1 ; ri #rango intercuartilico
## 75%
## 4731
li <- q1-1.5*ri;li #limite inferior
## 25%
## -6095
ls <- q3+1.5*ri;ls #limite superior
## 75%
## 12829
Así, para el precio de los diamantes, el diagrama de caja es:
boxplot(datos.d$precio, col = "skyblue" , horizontal=TRUE , main="Diagrama de caja para los diamantes:", xlab="precio de los diamantes")
q1 <- quantile(datos.d$precio,probs = 0.25);q1
## 25%
## 1001.5
q2 <- quantile(datos.d$precio,probs = 0.5);q2
## 50%
## 2564.5
q3 <- quantile(datos.d$precio,probs = 0.75);q3
## 75%
## 5732.5
ri <- q3-q1;ri
## 75%
## 4731
li <- q1-1.5*ri;li
## 25%
## -6095
ls <- q3+1.5*ri;ls
## 75%
## 12829
boxplot(datos.d$precio,horizontal = TRUE)
hist(datos.d$precio , main="Histograma del precio de los diamantes" , col = "gold")
Medidas de forma
La asimetría es la medida que indica la simetría de la distribución de una variable respecto a la media aritmética, sin necesidad de hacer la representación gráfica. Los coeficientes de asimetría indican si hay el mismo número de elementos a izquierda y derecha de la media.
Existen tres tipos de curva de distribución:
Asimetría negativa: la cola de la distribución se alarga para valores inferiores a la media.
Simétrica: hay el mismo número de elementos a izquierda y derecha de la media. En este caso, coinciden la media, la mediana y la moda. La distribución se adapta a la forma de la campana de Gauss, o distribución normal.
Asimetría positiva: la cola de la distribución se alarga (a la derecha) para valores superiores a la media.
COEFICIENTE DE ASIMETRIA DE FISHER: El coeficiente de asimetría de Fisher CAF evalúa la proximidad de los datos a su media x. Cuanto mayor sea la suma ∑(xi–x)3, mayor será el coeficiente. Sea el conjunto X=(x1, x2,…, xN), entonces la fórmula de la asimetría de Fisher es:
\[ CA_F = \frac{\sum_{i=1}^{N}(x_i - \bar{x})^3}{N \cdot S_x^3} \]
donde:
- \(\bar{x}\) es la media
- \(S_x\) es la desviación típica
Cuando los datos están agrupados en intervalos, la fórmula del coeficiente de asimetría de Fisher se convierte en:
\[ CA_F = \frac{\sum_{i=1}^{N}(x_i - \bar{x})^3 \cdot n_i}{N \cdot S_x^3} \]
donde:
- \(x_i\) es uno de los datos o, en
datos agrupados en intervalos, la marca de clase
- \(\bar{x}\) es la media
- \(n_i\) la frecuencia absoluta de
\(x_i\) o de cada intervalo \(i\)
- \(S_x\) la desviación típica
Interpretación:
COEFICIENTE DE ASIMETRIA DE PEARSON: \(CA_P\) mide la diferencia entre la media y la moda respecto a la dispersión del conjunto \(X=\{x_1, x_2, ..., x_N\}\).
Este procedimiento, menos usado, se emplea principalmente en distribuciones unimodales y poco asimétricas.
La fórmula es:
\[ CA_P = \frac{\bar{x} - Mo(X)}{S_x} \]
donde:
- \(\bar{x}\) es la media
- \(Mo(X)\) es la moda
- \(S_x\) es la desviación típica
Interpretación:
COEFICIENTE DE ASIMETRIA DE BOWLEY: \(CA_B\) toma como referencia los
cuartiles para determinar si la distribución es
simétrica o no.
Se supone que el comportamiento de la distribución en los extremos es
similar.
La fórmula es:
\[ CA_B = \frac{Q_3 + Q_1 - 2Me(X)}{Q_3 - Q_1} \]
donde:
- \(Q_3\) es el tercer cuartil
- \(Q_1\) es el primer cuartil
- \(Me(X)\) es la mediana
Esta fórmula proviene de:
\[ CA_B = \frac{(Q_3 - Me(X)) - (Me(X) - Q_1)}{Q_3 - Q_1} \]
Recordemos que la mediana (\(Me\)) equivale al segundo cuartil (\(Q_2\)).
Por lo tanto, la fórmula del coeficiente de asimetría de Bowley también puede escribirse como:
\[ CA_B = \frac{Q_3 + Q_1 - 2Q_2}{Q_3 - Q_1} \]
Interpretación:
La curtosis (o apuntamiento) es una medida de forma que mide cuán escarpada o achatada está una curva o distribución.
Este coeficiente indica la cantidad de datos que hay cercanos a la media, de manera que a mayor grado de curtosis, más escarpada (o apuntada) será la forma de la curva.
La curtosis se mide promediando la cuarta potencia de la diferencia entre cada elemento del conjunto y la media, dividido entre la desviación típica elevada también a la cuarta potencia.
Sea el conjunto \(X = (x_1, x_2, \ldots, x_N)\), entonces el coeficiente de curtosis será:
\[ g_2 = \frac{\sum_{i=1}^N (X_i - \overline{X})^4 \cdot n_i}{N \cdot S_x^4} \]
donde:
- \(n_i\) es la frecuencia absoluta del
dato \(x_i\)
- \(S_x\) es la desviación
estándar
- \(\overline{X}\) es la media
Cuando los datos están agrupados o agrupados en intervalos, la fórmula del coeficiente de curtosis se convierte en:
\[ Exceso \ de \ curtosis = \frac{\sum_{i=1}^N (X_i - \overline{X})^4 \cdot n_i}{N \cdot S_x^4} - 3 \]
Tipos de curtosis
Las curvas se pueden clasificar en tres grupos según el signo de su curtosis, es decir, según la forma de la distribución:
curtosis <- kurtosis(x =datos.d$precio) ; curtosis
## [1] 5.10721
asimetria <- skewness(x = datos.d$precio) ; asimetria
## [1] 1.626849
TAREA 2. ASIMETRIA Y CURTOSIS:
Añadir al documento en grupos, las medidas de forma con el ejemplo del precio de los diamantes en la base de datos, diamantes.
media <- mean(datos.d$precio)
desv <- sd(datos.d$precio)
n <- length(datos.d$precio)
CA_F <- sum((datos.d$precio - media)^3) / (n * (desv^3))
cat("Coeficiente de Asimetría de Fisher:", CA_F, "\n")
## Coeficiente de Asimetría de Fisher: 1.62441
moda <- as.numeric(mfv(datos.d$precio))
CA_P <- (media - moda) / desv
cat("Coeficiente de Asimetría de Pearson:", CA_P, "\n")
## Coeficiente de Asimetría de Pearson: 0.7654691
Q1 <- quantile(datos.d$precio, 0.25)
Q2 <- quantile(datos.d$precio, 0.5)
Q3 <- quantile(datos.d$precio, 0.75)
CA_B <- (Q3 + Q1 - 2*Q2) / (Q3 - Q1)
cat("Coeficiente de Asimetría de Bowley:", CA_B, "\n")
## Coeficiente de Asimetría de Bowley: 0.3392517
curtosis_m <- kurtosis(datos.d$precio)
cat("Curtosis:", curtosis_m, "\n")
## Curtosis: 5.10721
curtosis_m <- kurtosis(datos.d$precio) - 3
cat("Exceso de Curtosis:", curtosis_m, "\n")
## Exceso de Curtosis: 2.10721
# Histograma con curva de densidad
ggplot(datos.d, aes(x = precio)) +
geom_histogram(aes(y = ..density..), bins = 40, fill = "#00C5CD", color = "black", alpha = 0.7) +
geom_density(color = "red", size = 1) +
geom_vline(xintercept = media, color = "blue", linetype = "dashed", size = 1) +
geom_vline(xintercept = Q2, color = "green", linetype = "dashed", size = 1) +
labs(title = "Histograma del precio de diamantes",
subtitle = "Líneas: azul = media, verde = mediana",
x = "Precio", y = "Densidad")
ANÁLISIS DE LA GRÁFICA:
El histograma del precio de los diamantes muestra una distribución con asimetría positiva, ya que la mayoría de los diamantes se concentran en precios bajos mientras que unos pocos alcanzan valores muy elevados, lo que desplaza la media hacia la derecha de la mediana; además, la curva de densidad evidencia una curtosis leptocúrtica, es decir, gran concentración de datos cerca de la media y colas largas con valores extremos. En conclusión, el precio de los diamantes no sigue una distribución simétrica ni normal, sino que refleja un mercado donde predominan los precios bajos, pero con la presencia de valores muy altos que elevan el promedio y generan fuerte dispersión.
Fuentes: https://www.universoformulas.com/estadistica/descriptiva/asimetria/ https://www.universoformulas.com/estadistica/descriptiva/curtosis/ Chatgpt, para el color de fondo y estilo de letra del documento.