Desde un Histograma a una Distribución de Probabilidad Continua

# Cargar datos en formato CSV
df_diabetes <- read.csv("diabetes.csv")

# Histograma con ggplot2
library(ggplot2)
library(dplyr)

# Histograma de la variable 'glucose' filtrando ceros
df_diabetes %>%
  filter(Glucose != 0) %>%
  ggplot(aes(x = Glucose)) +
  geom_histogram(bins = 5, fill = "blue", color = "black", alpha = 0.7) +
  labs(title = "Histograma de Glucosa", x = "Glucosa", y = "Frecuencia")

# Histograma de la variable 'glucose' filtrando ceros con bins de 10
df_diabetes %>%
  filter(Glucose != 0) %>%
  ggplot(aes(x = Glucose)) +
  geom_histogram(bins = 10, fill = "blue", color = "black", alpha = 0.7) +
  labs(title = "Histograma de Glucosa", x = "Glucosa", y = "Frecuencia")

# Histograma de la variable 'glucose' filtrando ceros con bins de 2
df_diabetes %>%
  filter(Glucose != 0) %>%
  ggplot(aes(x = Glucose)) +
  geom_histogram(bins = 50, fill = "blue", color = "black", alpha = 0.7) +
  labs(title = "Histograma de Glucosa", x = "Glucosa", y = "Frecuencia")

# Histograma de la variable 'glucose' filtrando ceros con bins de 2 y curva de densidad
filtered_data <- df_diabetes %>%
  filter(Glucose != 0) # Filter out rows where Glucose is 0

bin_width <- (max(filtered_data$Glucose) - min(filtered_data$Glucose)) / 50 # Bin width for 50 bins
scaling_factor <- nrow(filtered_data) * bin_width # Scaling factor for the density plot

# Create the plot
filtered_data %>%
  ggplot(aes(x = Glucose)) +
  geom_histogram(bins = 50, fill = "blue", color = "black", alpha = 0.7) +
  geom_density(aes(y = ..density.. * scaling_factor), fill = "red", alpha = 0.3) +
  labs(title = "Histograma de Glucosa", x = "Glucosa", y = "Frecuencia")

Cálculos de probabilidades con la distribución normal estándar

  1. Cálculo de la probabilidad de que una variable aleatoria normal estándar sea menor que 1.5
# Cálculo de la probabilidad de que una variable aleatoria normal estándar sea menor que 1.5
p_menor_1.5 <- pnorm(1.5)

# Gráfica de la distribución normal estándar con ggplot2 con sombreado de la probabilidad p_menor_1.5
ggplot(data.frame(x = c(-3, 3)), aes(x)) +
  stat_function(fun = dnorm) +
  stat_function(fun = dnorm, xlim = c(-3, 1.5), geom = "area", fill = "blue", alpha = 0.5) +
  labs(title = "Distribución Normal Estándar", x = "x", y = "f(x)")

  1. Cálculo de la probabilidad de que una variable aleatoria normal estándar sea mayor que 1.5
# Cálculo de la probabilidad de que una variable aleatoria normal estándar sea mayor que 1.5
p_mayor_1.5 <- pnorm(1.5, lower.tail = FALSE)

# Gráfica de la distribución normal estándar con ggplot2 con sombreado de la probabilidad p_mayor_1.5
ggplot(data.frame(x = c(-3, 3)), aes(x)) +
  stat_function(fun = dnorm) +
  stat_function(fun = dnorm, xlim = c(1.5, 3), geom = "area", fill = "blue", alpha = 0.5) +
  labs(title = "Distribución Normal Estándar", x = "x", y = "f(x)")

  1. Cálculo de la probabilidad de que una variable aleatoria normal estándar esté entre -1 y 0.5
# Cálculo de la probabilidad de que una variable aleatoria normal estándar esté entre -1 y 0.5
p_entre_menos_1_y_0.5 <- pnorm(0.5) - pnorm(-1)

# Gráfica de la distribución normal estándar con ggplot2 con sombreado de la probabilidad p_entre_menos_1_y_0.5
ggplot(data.frame(x = c(-3, 3)), aes(x)) +
  stat_function(fun = dnorm) +
  stat_function(fun = dnorm, xlim = c(-1, 0.5), geom = "area", fill = "blue", alpha = 0.5) +
  labs(title = "Distribución Normal Estándar", x = "x", y = "f(x)")

Cálculos del valor de la variable aleatoria a partir de una probabilidad

  1. Cálculo del valor de la variable aleatoria normal estándar para una probabilidad de 0.977
# Cálculo del valor de la variable aleatoria normal estándar para una probabilidad de 0.977
p <- 0.977
valor1 <- qnorm(p)

valor1
## [1] 1.995393
  1. Cálculo del valor de la variable aleatoria normal estándar para una probabilidad de 0.025
# Cálculo del valor de la variable aleatoria normal estándar para una probabilidad de 0.025
p <- 0.025
valor2 <- qnorm(p)

valor2
## [1] -1.959964

Cálculos con el valor Z

  1. Las puntuaciones del SAT siguen una distribución casi normal con una media de 1500 puntos y una desviación estándar de 300 puntos. Las puntuaciones del ACT también siguen una distribución casi normal con una media de 21 puntos y una desviación estándar de 5 puntos. Supongamos que Nila obtuvo 1800 puntos en el SAT y Sean 24 puntos en el ACT.

¿Quién obtuvo un mejor resultado?

# Datos
mu_sat <- 1500
sigma_sat <- 300
x_sat <- 1800

mu_act <- 21
sigma_act <- 5
x_act <- 24

# Cálculo de Z-score
z_sat <- (x_sat - mu_sat) / sigma_sat
z_act <- (x_act - mu_act) / sigma_act

z_sat
## [1] 1
z_act
## [1] 0.6
p_sat <- pnorm(x_sat, mean = mu_sat, sd = sigma_sat, lower.tail = TRUE)
p_act <- pnorm(x_act, mean = mu_act, sd = sigma_act, lower.tail = TRUE)

p_sat
## [1] 0.8413447
p_act
## [1] 0.7257469

EJERCICIO 1. Para una muestra de 487 semillas de la especie Thespesia populnea la longitud ápice-base de las semillas tiene una 𝜇 = 10.15 mm y una 𝜎 = 1.60 mm. Asumiendo una distribución normal, ¿cuántas semillas tienen una longitud mayor de 11 mm?

EJERCICIO 2. De la muestra anterior, queremos extraer las 100 semillas más grandes. ¿Cuál es el tamaño menor aceptable de semilla para seleccionar las 100 más grandes?

```