Diagramas de Dispersión

Los diagramas de dispersión son herramientas gráficas que permiten visualizar la relación entre dos variables. En el caso de la base de datos Iris, podemos crear un diagrama de dispersión para observar la relación entre el largo y el ancho del sépalo.

# Código para el diagrama de dispersión
library(ggplot2)

# Cargar la base de datos Iris
data(iris)

# Crear el diagrama de dispersión
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point(alpha = 0.6) +
  labs(title = "Diagrama de Dispersión: Sepal.Length vs Sepal.Width",
       x = "Longitud del Sépalo",
       y = "Ancho del Sépalo") +
  theme_minimal()

Interpretación:

  • El diagrama muestra cómo se distribuyen las especies de Iris según el largo y el ancho del sépalo. Se observa que las especies setosa, versicolor, y virginica se agrupan en diferentes regiones, sugiriendo que hay diferencias claras en sus características. Esto puede ayudar a la clasificación de las especies basándose en estas variables.

2. Tabla de Frecuencias

La tabla de frecuencias es una forma de resumir datos categóricos. Permite contar cuántas veces aparece cada categoría. En el caso de la base de datos Iris, podemos crear una tabla de frecuencias que muestre la cantidad de observaciones para cada especie de flor.

# Cargar la base de datos Iris
data(iris)

# Crear intervalos para el largo del sépalo
iris$Sepal.Length.Binned <- cut(iris$Sepal.Length, breaks = 5)

# Crear la tabla de frecuencias cruzadas
frecuencias <- table(iris$Species, iris$Sepal.Length.Binned)

# Mostrar la tabla
print(frecuencias)
##             
##              (4.3,5.02] (5.02,5.74] (5.74,6.46] (6.46,7.18] (7.18,7.9]
##   setosa             28          21           1           0          0
##   versicolor          3          18          20           9          0
##   virginica           1           2          21          15         11

Tabla de Frecuencias

(4.3, 5.02] (5.02, 5.74] (5.74, 6.46] (6.46, 7.18] (7.18, 7.9]
setosa 28 21 1 0 0
versicolor 3 18 20 9 0
virginica 1 2 21 15 11

Interpretación

  1. Setosa:
    • La especie setosa tiene la mayor cantidad de observaciones en el primer intervalo (4.3, 5.02], con 28 individuos, lo que sugiere que la mayoría de las flores de esta especie tienen un ancho de sépalo bastante bajo.
    • Hay una disminución significativa en los siguientes intervalos, con solo 21 en (5.02, 5.74] y apenas 1 en (5.74, 6.46]. No se observan flores de esta especie en los intervalos más altos.
    • Esto indica que setosa tiende a tener un ancho de sépalo más pequeño en comparación con las otras especies.
  2. Versicolor:
    • La especie versicolor muestra una distribución más uniforme. Hay 3 observaciones en el primer intervalo y 18 en el segundo.
    • La cantidad de observaciones aumenta a 20 en el intervalo (5.74, 6.46] y luego disminuye a 9 en (6.46, 7.18]. No hay observaciones en el intervalo más alto.
    • Esto sugiere que versicolor tiene un ancho de sépalo más variable, pero tiende a concentrarse en un rango medio.
  3. Virginica:
    • La especie virginica tiene un patrón diferente, con solo 1 observación en el primer intervalo y 2 en el segundo.
    • La cantidad de observaciones aumenta significativamente a 21 en el intervalo (5.74, 6.46], lo que indica que muchas de estas flores tienen un ancho de sépalo considerablemente mayor.
    • Hay 15 observaciones en el intervalo (6.46, 7.18] y 11 en el más alto (7.18, 7.9], lo que muestra que virginica tiene los anchos de sépalo más grandes entre las tres especies.

Ahora pensemos de esta manera:

# Cargar la base de datos Iris
data(iris)

# Crear intervalos para el largo y ancho del sépalo
iris$Sepal.Length.Binned <- cut(iris$Sepal.Length, breaks = 5)
iris$Sepal.Width.Binned <- cut(iris$Sepal.Width, breaks = 5)

# Crear la tabla de frecuencias cruzadas
frecuencias <- table(iris$Sepal.Length.Binned, iris$Sepal.Width.Binned)

# Mostrar la tabla
print(frecuencias)
##              
##               (2,2.48] (2.48,2.96] (2.96,3.44] (3.44,3.92] (3.92,4.4]
##   (4.3,5.02]         4           2          21           5          0
##   (5.02,5.74]        3          13           9          13          3
##   (5.74,6.46]        4          23          14           0          1
##   (6.46,7.18]        0           4          20           0          0
##   (7.18,7.9]         0           4           4           3          0

Tabla de Frecuencias Cruzadas

(2, 2.48] (2.48, 2.96] (2.96, 3.44] (3.44, 3.92] (3.92, 4.4]
(4.3, 5.02] 4 2 21 5 0
(5.02, 5.74] 3 13 9 13 3
(5.74, 6.46] 4 23 14 0 1
(6.46, 7.18] 0 4 20 0 0
(7.18, 7.9] 0 4 4 3

Interpretación

  1. Intervalo (4.3, 5.02]:
    • En este intervalo de largo del sépalo, hay 21 observaciones con un ancho del sépalo en el rango (2.96, 3.44]. Esto indica que muchos de los sépalos en este rango de longitud tienden a tener un ancho moderado.
    • Hay 4 en el intervalo (2, 2.48] y 2 en (2.48, 2.96], lo que sugiere que hay algunos sépalos cortos pero con un ancho más pequeño.
    • Sin observaciones en el rango más alto (3.92, 4.4], lo que indica que no hay sépalos con largo entre 4.3 y 5.02 que sean anchos.
  2. Intervalo (5.02, 5.74]:
    • Este rango muestra una distribución más equilibrada. Hay 13 observaciones en (2.48, 2.96] y 13 en (3.44, 3.92], sugiriendo que hay un buen número de sépalos de longitud media que tienen un ancho variable.
    • También se observan 3 en el rango más alto (3.92, 4.4], lo que indica que algunos de estos sépalos son más anchos.
  3. Intervalo (5.74, 6.46]:
    • Este intervalo muestra una alta concentración de anchos. Hay 23 observaciones en el intervalo (2.48, 2.96] y 14 en (3.44, 3.92]. Esto sugiere que muchos sépalos con esta longitud tienen anchos relativamente pequeños, pero también hay algunos que son más anchos.
    • Hay solo 1 en el rango más alto (3.92, 4.4], indicando que muy pocos sépalos de este rango de longitud tienen un ancho muy grande.
  4. Intervalo (6.46, 7.18]:
    • En este intervalo, la mayoría de los anchos se concentran en (2.48, 2.96] y (3.44, 3.92], con 20 y 4 observaciones, respectivamente. Esto muestra que a medida que el largo del sépalo aumenta, el ancho tiende a concentrarse más en los rangos inferiores.
    • No hay observaciones en el rango más alto (3.92, 4.4] y ningún dato en (4.3, 5.02].
  5. Intervalo (7.18, 7.9]:
    • La tabla muestra que hay 4 observaciones en (2.48, 2.96] y 4 en (3.44, 3.92]. Esto sugiere que los sépalos más largos tienden a tener anchos más pequeños, aunque todavía hay un número significativo de observaciones en el rango más bajo.

3. Covarianza

La covarianza es una medida que indica la dirección de la relación lineal entre dos variables. Se calcula utilizando la siguiente fórmula:

\[ \text{Cov}(X, Y) = \frac{1}{n-1} \sum_{i=1}^{n} (X_i - \bar{X})(Y_i - \bar{Y}) \]

Ejemplo: Calculemos la covarianza entre el largo y el ancho del sépalo.

# Código para calcular la covarianza
covarianza <- cov(iris$Sepal.Length, iris$Sepal.Width)
print(covarianza)

Interpretación: - Un resultado positivo de la covarianza indicaría que a medida que el largo del sépalo aumenta, el ancho también tiende a aumentar. Si, por ejemplo, la covarianza es aproximadamente 0.1, esto sugiere que hay una relación débil y positiva entre estas dos variables.

4. Coeficiente de Correlación

El coeficiente de correlación (usualmente el coeficiente de correlación de Pearson) mide la fuerza y la dirección de la relación lineal entre dos variables. Se calcula como:

\[ r = \frac{\text{Cov}(X, Y)}{\sigma_X \sigma_Y} \]

Ejemplo: Calculemos el coeficiente de correlación entre el largo y el ancho del sépalo.

# Código para calcular el coeficiente de correlación
correlacion <- cor(iris$Sepal.Length, iris$Sepal.Width)
print(correlacion)
## [1] -0.1175698

Interpretación: - Un valor de correlación cercano a 1 indica una fuerte relación positiva, mientras que un valor cercano a -1 indica una fuerte relación negativa. Si, por ejemplo, obtenemos un coeficiente de correlación de 0.87, esto sugiere una fuerte correlación positiva entre el largo y el ancho del sépalo, indicando que a medida que aumenta el largo, el ancho también tiende a aumentar.

Interpretación del Coeficiente de Correlación

El coeficiente de correlación, comúnmente representado por \(r\), es una medida estadística que indica la fuerza y la dirección de una relación lineal entre dos variables. Su valor varía entre -1 y 1, y su interpretación es la siguiente:

  • \(r = 1\): Indica una correlación positiva perfecta. Esto significa que, a medida que una variable aumenta, la otra también lo hace de manera exacta. Por ejemplo, si aumentamos la altura de una planta, su peso también aumentará en una proporción constante.

  • \(0 < r < 1\): Indica una correlación positiva. A medida que el valor de una variable aumenta, también lo hace la otra, pero no de forma perfecta. Por ejemplo, un \(r = 0.8\) sugiere una fuerte relación positiva, mientras que \(r = 0.3\) indica una relación débil.

  • \(r = 0\): Indica que no hay correlación lineal entre las dos variables. Esto significa que el cambio en una variable no está relacionado con el cambio en la otra. Por ejemplo, la altura de una planta y el número de hojas pueden no estar correlacionados.

  • \(-1 < r < 0\): Indica una correlación negativa. A medida que una variable aumenta, la otra disminuye. Por ejemplo, un \(r = -0.5\) sugiere una relación negativa moderada, lo que significa que a medida que una variable aumenta, la otra tiende a disminuir, aunque no de manera exacta.

  • \(r = -1\): Indica una correlación negativa perfecta. En este caso, cualquier aumento en una variable se traduce en una disminución exacta en la otra.

Consideraciones Importantes

  1. No Causalidad: Es crucial recordar que el coeficiente de correlación no implica causalidad. Una alta correlación entre dos variables no significa que una cause la otra; pueden estar influenciadas por una tercera variable o ser el resultado de coincidencias.

  2. Linealidad: El coeficiente de correlación mide solo relaciones lineales. Si la relación entre las variables es no lineal, el valor de \(r\) puede ser engañoso.

  3. Sensibilidad a Valores Atípicos: Los valores atípicos pueden tener un impacto significativo en el coeficiente de correlación, distorsionando la percepción de la relación entre las variables.

En resumen, el coeficiente de correlación es una herramienta útil para evaluar la relación entre dos variables, pero debe interpretarse con cautela y en el contexto adecuado.

Para calcular todas las correlaciones entre las variables de la base de datos Iris en R, puedes usar la función ‘cor()’. Aquí tienes un ejemplo de cómo hacerlo:

# Cargar la base de datos Iris
data(iris)

# Calcular las correlaciones entre las variables numéricas
correlaciones <- cor(iris[, 1:4])  # Seleccionamos solo las columnas numéricas
print(correlaciones)
##              Sepal.Length Sepal.Width Petal.Length Petal.Width
## Sepal.Length    1.0000000  -0.1175698    0.8717538   0.8179411
## Sepal.Width    -0.1175698   1.0000000   -0.4284401  -0.3661259
## Petal.Length    0.8717538  -0.4284401    1.0000000   0.9628654
## Petal.Width     0.8179411  -0.3661259    0.9628654   1.0000000

Para calcular todas las correlaciones entre las variables de la base de datos Iris en R, puedes usar la función cor(). Aquí tienes un ejemplo de cómo hacerlo:

Resultado Esperado

El resultado será una matriz de correlación que muestra las correlaciones entre las cuatro variables numéricas: Sepal.Length, Sepal.Width, Petal.Length y Petal.Width.

Interpretación de la Matriz de Correlación

  • Valores cercanos a 1: Indican una fuerte correlación positiva.
  • Valores cercanos a -1: Indican una fuerte correlación negativa.
  • Valores cercanos a 0: Indican poca o ninguna correlación.

Ejemplo de Interpretación

  • Sepal.Length y Petal.Length tienen una correlación de aproximadamente 0.87, indicando una fuerte relación positiva: a medida que aumenta el largo del sépalo, también lo hace el largo del pétalo.
  • Sepal.Width y Petal.Length tienen una correlación de aproximadamente -0.43, lo que sugiere una relación negativa moderada.

Para visualizar la matriz de correlación de la base de datos Iris en R, puedes usar el paquete corrplot. Aquí tienes un ejemplo de cómo hacerlo:

Código para el Gráfico de Correlación

# Instalar y cargar el paquete corrplot si no lo tienes instalado

library(corrplot)
## corrplot 0.94 loaded
# Cargar la base de datos Iris
data(iris)

# Calcular las correlaciones entre las variables numéricas
correlaciones <- cor(iris[, 1:4])  # Seleccionamos solo las columnas numéricas

# Crear el gráfico de correlación
corrplot(correlaciones, method = "circle", type = "upper", 
         tl.col = "black", tl.srt = 45, 
         title = "Matriz de Correlación - Iris", 
         addCoef.col = "black")  # Añadir los coeficientes de correlación

Explicación del Código

  • cor(iris[, 1:4]): Calcula la matriz de correlación para las cuatro variables numéricas.
  • corrplot(): Crea el gráfico de la matriz de correlación.
    • method = "circle" indica que se utilizarán círculos para representar las correlaciones.
    • type = "upper" muestra solo la parte superior de la matriz.
    • tl.col = "black" y tl.srt = 45 establecen el color y la inclinación de las etiquetas.
    • addCoef.col = "black" añade los coeficientes de correlación en el gráfico.

Resultado

Este código generará un gráfico donde cada círculo representa el grado de correlación entre las variables, con colores que indican la fuerza y dirección de la correlación. Los números en el gráfico mostrarán los valores del coeficiente de correlación.

Recta de regresión

Para cada par de variables \(x\) (variable independiente) y \(y\) (variable dependiente), la ecuación de la recta de regresión se expresa como:

\[ y = \beta_0 + \beta_1 x \]

Donde: - \(\beta_0\) es la intersección (intercepto) de la recta en el eje \(y\). - \(\beta_1\) es la pendiente de la recta, que representa el cambio en \(y\) por cada unidad de cambio en \(x\).

Cálculo de los Coeficientes

Los coeficientes de la regresión se calculan de la siguiente manera:

  1. Pendiente (\(\beta_1\)): \[ \beta_1 = \frac{\text{cov}(X, Y)}{\text{var}(X)} \]

  2. Intercepto (\(\beta_0\)): \[ \beta_0 = \bar{Y} - \beta_1 \bar{X} \] donde \(\bar{Y}\) y \(\bar{X}\) son las medias de \(Y\) y \(X\), respectivamente.

Consideraciones

  • La recta de regresión proporciona una estimación de \(y\) para un valor dado de \(x\).
  • Es importante verificar que la relación entre \(x\) y \(y\) sea lineal y que el coeficiente de correlación sea significativo.

Claro, aquí te presento el código para calcular y graficar las rectas de regresión entre las variables de la base de datos Iris, incluyendo las fórmulas de la recta de regresión y cómo se calculan.

Código para Calcular y Graficar Rectas de Regresión con Fórmulas

# Cargar la base de datos Iris
data(iris)

# Definir una función para graficar la recta de regresión y mostrar la fórmula
plot_regression <- function(x, y, xlab, ylab) {
  plot(x, y, main = paste("Regresión entre", xlab, "y", ylab), 
       xlab = xlab, ylab = ylab, pch = 19, col = iris$Species)
  
  # Ajustar el modelo de regresión
  model <- lm(y ~ x)
  
  # Agregar la recta de regresión
  abline(model, col = "blue", lwd = 2)
  
  # Calcular los coeficientes
  intercept <- coef(model)[1]
  slope <- coef(model)[2]
  
  # Mostrar la fórmula en el gráfico
  formula_text <- paste("y =", round(intercept, 2), "+", round(slope, 2), "* x")
  legend("topright", legend = formula_text, bty = "n", col = "blue", cex = 0.8)
  
  # Leyenda para las especies
  legend("topleft", legend = levels(iris$Species), col = unique(iris$Species), pch = 19)
}

# Graficar las rectas de regresión para todas las combinaciones de variables
par(mfrow = c(2, 2))  # Configurar la disposición de gráficos
plot_regression(iris$Sepal.Length, iris$Sepal.Width, "Longitud del Sépalo", "Ancho del Sépalo")
plot_regression(iris$Sepal.Length, iris$Petal.Length, "Longitud del Sépalo", "Longitud del Pétalo")
plot_regression(iris$Sepal.Length, iris$Petal.Width, "Longitud del Sépalo", "Ancho del Pétalo")
plot_regression(iris$Sepal.Width, iris$Petal.Length, "Ancho del Sépalo", "Longitud del Pétalo")

# Restablecer la configuración del gráfico
par(mfrow = c(1, 1))

Código para Graficar Rectas de Regresión con ggplot2

# Instalar y cargar el paquete ggplot2 si no lo tienes instalado
install.packages("ggplot2")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
## (as 'lib' is unspecified)
library(ggplot2)

# Crear una función para graficar la regresión
plot_regression_ggplot <- function(data, x, y, xlab, ylab) {
  p <- ggplot(data, aes_string(x = x, y = y, color = "Species")) +
    geom_point() +  # Agregar los puntos
    geom_smooth(method = "lm", se = FALSE, color = "blue") +  # Agregar la recta de regresión
    labs(title = paste("Regresión entre", xlab, "y", ylab),
         x = xlab, y = ylab) +
    theme_minimal()
  
  print(p)
}

# Graficar las rectas de regresión para todas las combinaciones de variables
plot_regression_ggplot(iris, "Sepal.Length", "Sepal.Width", "Longitud del Sépalo", "Ancho del Sépalo")
## Warning: `aes_string()` was deprecated in ggplot2 3.0.0.
## ℹ Please use tidy evaluation idioms with `aes()`.
## ℹ See also `vignette("ggplot2-in-packages")` for more information.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## `geom_smooth()` using formula = 'y ~ x'

plot_regression_ggplot(iris, "Sepal.Length", "Petal.Length", "Longitud del Sépalo", "Longitud del Pétalo")
## `geom_smooth()` using formula = 'y ~ x'

plot_regression_ggplot(iris, "Sepal.Length", "Petal.Width", "Longitud del Sépalo", "Ancho del Pétalo")
## `geom_smooth()` using formula = 'y ~ x'

plot_regression_ggplot(iris, "Sepal.Width", "Petal.Length", "Ancho del Sépalo", "Longitud del Pétalo")
## `geom_smooth()` using formula = 'y ~ x'

Explicación del Código

  1. Carga de la biblioteca: Se carga el paquete ggplot2 para la visualización de datos.

  2. Función plot_regression_ggplot: Esta función toma un marco de datos y las variables que deseas graficar. Utiliza ggplot para crear el gráfico:

    • geom_point(): Agrega los puntos de los datos.
    • geom_smooth(method = "lm", se = FALSE, color = "blue"): Agrega la recta de regresión sin mostrar el intervalo de confianza (se = FALSE).
    • labs(): Establece el título y las etiquetas de los ejes.
    • theme_minimal(): Aplica un tema limpio y minimalista al gráfico.
  3. Graficar combinaciones: Se llaman a la función plot_regression_ggplot para crear gráficos de regresión para las combinaciones de variables deseadas.

Resultado Esperado

Este código generará gráficos que muestran la relación entre las diferentes variables de la base de datos Iris, con las rectas de regresión que mejor se ajustan a los datos en color azul.

Consideraciones

  • Visualización: ggplot2 proporciona gráficos estéticamente agradables y personalizables.
  • Correlación y Regresión: Asegúrate de que las relaciones entre las variables sean lineales y significativas antes de interpretar las rectas de regresión.

Gráfica Q-Q (Quantile-Quantile)

La gráfica Q-Q es una herramienta gráfica utilizada para evaluar si una distribución de datos sigue una distribución teórica específica, como la normal. Esta gráfica compara los cuantiles de la muestra con los cuantiles de una distribución teórica. Si los puntos en la gráfica Q-Q siguen aproximadamente una línea recta, esto sugiere que los datos se distribuyen de manera similar a la distribución teórica.

¿Cómo Funciona la Gráfica Q-Q?

  1. Cuantiles de la Muestra: Se calculan los cuantiles de los datos observados (por ejemplo, los datos de la base Iris).
  2. Cuantiles Teóricos: Se calculan los cuantiles de la distribución teórica que se desea evaluar (por ejemplo, la distribución normal).
  3. Graficar: Se grafican los cuantiles de la muestra en el eje y y los cuantiles teóricos en el eje x.

Interpretación de la Gráfica Q-Q

  • Puntos a lo largo de la línea diagonal: Indican que los datos siguen la distribución teórica.
  • Desviaciones en la cola: Si los puntos se alejan de la línea diagonal en las colas, esto sugiere que la distribución de los datos tiene colas más pesadas o más ligeras que la distribución teórica.
  • Curvaturas: Si los puntos forman una curva, esto puede indicar que los datos tienen una distribución diferente (por ejemplo, sesgada).

Ejemplo en R con la Base de Datos Iris

A continuación, te muestro cómo crear una gráfica Q-Q para la longitud del sépalo en la base de datos Iris y evaluarla con respecto a la distribución normal.

# Cargar la base de datos Iris
data(iris)

# Crear una gráfica Q-Q para Sepal.Length
qqnorm(iris$Sepal.Length, main = "Gráfica Q-Q de Sepal.Length")
qqline(iris$Sepal.Length, col = "red")  # Agregar la línea de referencia

Explicación del Código

  • qqnorm(): Esta función crea la gráfica Q-Q para la variable seleccionada. En este caso, Sepal.Length.
  • qqline(): Agrega una línea de referencia a la gráfica, que representa la expectativa de que los datos siguen la distribución normal.

Consideraciones

  • Suposiciones: La gráfica Q-Q es útil para verificar suposiciones de normalidad antes de aplicar métodos estadísticos que asumen que los datos son normales.
  • Limitaciones: Aunque es una buena herramienta visual, no proporciona una prueba formal de normalidad. Para eso, puedes considerar pruebas como la prueba de Shapiro-Wilk.

¡Sí, puedes crear gráficos Q-Q en ggplot2 utilizando la función geom_qq()! A continuación, te muestro cómo hacerlo con la base de datos Iris, específicamente para la variable Sepal.Length.

Código para Crear una Gráfica Q-Q en ggplot2

#  Cargar el paquete ggplot2 si no lo tienes instalado

library(ggplot2)

# Crear la gráfica Q-Q para Sepal.Length
ggplot(iris, aes(sample = Sepal.Length)) +
  geom_qq() +  # Agregar los puntos Q-Q
  geom_qq_line(color = "red") +  # Agregar la línea de referencia
  labs(title = "Gráfica Q-Q de Sepal.Length",
       x = "Cuantiles Teóricos",
       y = "Cuantiles de Sepal.Length") +
  theme_minimal()

Explicación del Código

  1. Cargar la biblioteca: Se carga el paquete ggplot2.
  2. Crear el gráfico:
    • aes(sample = Sepal.Length): Especifica que los cuantiles de la variable Sepal.Length se usarán para la gráfica Q-Q.
    • geom_qq(): Agrega los puntos de la gráfica Q-Q.
    • geom_qq_line(color = "red"): Agrega una línea de referencia roja que muestra la expectativa de que los datos sigan una distribución normal.
    • labs(): Establece el título y las etiquetas de los ejes.
    • theme_minimal(): Aplica un tema minimalista al gráfico.

Resultado Esperado

El gráfico mostrará los cuantiles de Sepal.Length en el eje y y los cuantiles teóricos de la distribución normal en el eje x. Si los puntos siguen aproximadamente la línea de referencia roja, esto sugiere que la variable Sepal.Length tiene una distribución similar a la normal.

Consideraciones

  • Normalidad: La gráfica Q-Q es útil para evaluar visualmente la normalidad de los datos. Desviaciones significativas de la línea pueden indicar que los datos no siguen una distribución normal.
  • Comparación con otras distribuciones: También puedes usar ggplot2 para comparar otras distribuciones teóricas si es necesario.