VARIABLE ALEATORIA Y
DISTRIBUCIONES DE PROBABILIDAD

Taller

Autor/a
Afiliación

Martha Liseth Giraldo Ruiz
Daniela Palma Bolaños
Yannys Margarita Velasco Alarcon

Fecha de publicación

6 de abril de 2026

Ver código
options(
  knitr.table.format = "html",
  scipen = 999
)

1 .Cargar paquetes

Ver código
ipak <- function(pkg){

  options(repos = c(CRAN="https://cloud.r-project.org"))

  new.pkg <- pkg[!(pkg %in% rownames(installed.packages()))]

  if(length(new.pkg)) install.packages(new.pkg, dependencies = TRUE)

  invisible(lapply(pkg, function(p)
    suppressPackageStartupMessages(library(p, character.only = TRUE))
  ))
}

packages <- c("tidyverse","kableExtra","psych","readxl")

ipak(packages)

2 .EJERCICIO 4

Una organización de consumidores anota regularmente el número de defectos importantes que se encuentran en un automóvil nuevo. De sus estudios ha encontrado que la función de distribución de la variable aleatoria X anteriormente mencionada es:

2.1 Punto A

Calcular P(x=2)

P(x=2)=F(2)−F(1)

=0.39−0.19=0.20

Ver código
# Valores de la función de distribución F(x)
F_1 <- 0.19
F_2 <- 0.39

# Probabilidad P(X = 2)
P_X_2 <- F_2 - F_1

# Mostrar resultado
P_X_2
[1] 0.2

Respuesta -> La probabilidad de que X=2 es 0.20 => 20%

Ver código
x <- c(0,1,2,3,4,5,6)
p <- c(0.06,0.13,0.20,0.37,0.16,0.05,0.03)

colores <- ifelse(x == 2, "purple", "pink")

barplot(p, names.arg = x, col = colores,
        main = "P(X = 2)",
        xlab = "x", ylab = "P(X=x)")

grid()

Interpretación -> La gráfica muestra que el número de defectos en un automóvil suele concentrarse en valores intermedios, siendo 3 defectos el más probable. También es común encontrar entre 2 y 4 defectos, mientras que tener muy pocos o demasiados defectos es poco frecuente. En particular, hay un 20% de probabilidad de que un auto tenga exactamente 2 defectos.

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

2.2 Punto B

Calcular P(X≥3)

P(X≥3)=1−P(X<3)

P(X≥3)=1−P(X≤2)

P(X≥3)=1−F(2)

=1−0.39=0.61

Ver código
# Valor de la función de distribución en x = 2
F_2 <- 0.39

# Probabilidad P(X >= 3)
P_X_mayor_igual_3 <- 1 - F_2

# Mostrar resultado
P_X_mayor_igual_3
[1] 0.61

Respuesta -> La probabilidad de que X sea mayor o igual que 3 es 0.61 => 61%

Ver código
x <- c(0,1,2,3,4,5,6)
p <- c(0.06,0.13,0.20,0.37,0.16,0.05,0.03)

colores <- ifelse(x >= 3, "purple", "pink")

barplot(p, names.arg = x, col = colores,
        main = "P(X ≥ 3)",
        xlab = "x", ylab = "P(X=x)")

grid()

Interpretación -> La gráfica muestra la probabilidad de que el número de defectos sea mayor o igual a 3. Se observa que la mayor parte de la probabilidad se concentra a partir de 3 defectos, destacándose especialmente el valor 3 como el más frecuente dentro de este grupo. Esto indica que es más común que un automóvil tenga 3 o más defectos que menos de 3. En cambio, los valores menores a 3 presentan probabilidades más bajas, por lo que son menos frecuentes. En general, la gráfica sugiere que los automóviles tienden a presentar una cantidad moderada a alta de defectos.

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

2.3 Punto C

Calcular P(2≤X≤5)

P(2≤X≤5)=F(X≤5)−F(X≥2) P(2≤X≤5)=F(X≤5)−F(X<2) P(2≤X≤5)=F(X≤5)−F(X≤1) P(2≤X≤5)=F(5)−F(1)

=0.97−0.19=0.78

Ver código
# Valores de la función de distribución
F_5 <- 0.97
F_1 <- 0.19

# Probabilidad P(2 ≤ X ≤ 5)
P_2_5 <- F_5 - F_1

# Mostrar resultado
P_2_5
[1] 0.78

Respuesta -> La probabilidad de que X esté entre 2 y 5 (incluidos) es 0.78 => 78%

Ver código
x <- c(0,1,2,3,4,5,6)
p <- c(0.06,0.13,0.20,0.37,0.16,0.05,0.03)

colores <- ifelse(x >= 2 & x <= 5, "purple", "pink")

barplot(p, names.arg = x, col = colores,
        main = "P(2 ≤ X ≤ 5)",
        xlab = "x", ylab = "P(X=x)")

grid()

Interpretación -> La gráfica muestra la probabilidad de que el número de defectos esté entre 2 y 5, es decir, en el intervalo 2 X . Se observa que la mayor concentración de probabilidad se encuentra en estos valores, especialmente en x = 3, que es el más probable dentro del rango. Esto indica que es muy común que un automóvil tenga entre 2 y 5 defectos. Por otro lado, los valores fuera de este intervalo (como 0, 1 y 6) presentan probabilidades más bajas, por lo que son menos frecuentes. En general, la gráfica sugiere que la mayoría de los automóviles tienen una cantidad moderada de defectos dentro de ese rango.

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

2.4 Punto D

Calcular P(2<X<5)

P=F(X<5)−F(X>2)

P=F(X≤4)−F(X≤2) P=F(4)−F(2) =0.92−0.39=0.53

Ver código
# Valores de la función de distribución
F_4 <- 0.92
F_2 <- 0.39

# Probabilidad P(2 < X < 5)
P_2_5_abierto <- F_4 - F_2

# Mostrar resultado
P_2_5_abierto
[1] 0.53

Respuesta -> La probabilidad de que X esté estrictamente entre 2 y 5 es 0.53 => 53%

Ver código
x <- c(0,1,2,3,4,5,6)
p <- c(0.06,0.13,0.20,0.37,0.16,0.05,0.03)

colores <- ifelse(x > 2 & x < 5, "purple", "pink")

barplot(p, names.arg = x, col = colores,
        main = "P(2 < X < 5)",
        xlab = "x", ylab = "P(X=x)")

grid()

Interpretación -> La gráfica muestra la probabilidad de que el número de defectos esté entre 2 y 5 sin incluirlos, es decir, 2 < X < 5. Se observa que la mayor parte de la probabilidad se concentra en los valores 3 y 4, siendo 3 el más probable. Esto indica que, dentro de ese rango, lo más común es que un automóvil tenga 3 o 4 defectos. Por otro lado, los valores fuera de este intervalo tienen menor probabilidad, por lo que son menos frecuentes. En general, la gráfica sugiere que los autos tienden a presentar una cantidad moderada de defectos, principalmente en esos valores intermedios.

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

2.5 Punto E

Obtener la esperanza, la varianza y la desviacion tipica de X

Esperanza

E(X)=∑xP(x)

=0(0.06)+1(0.13)+2(0.20)+3(0.28)+4(0.25)+5(0.05)+6(0.03)

=0+0.13+0.40+0.84+1+0.25+0.18=2.80

Segundo momento

E(X^2)=∑X^2P(x) =0+0.13+0.80+2.52+4+1.25+1.08=9.78

Ver código
# Valores de X
x <- c(0,1,2,3,4,5,6)

# Probabilidades P(X=x)
p <- c(0.06, 0.13, 0.20, 0.28, 0.25, 0.05, 0.03)

# Esperanza E(X)
E <- sum(x * p)

# Esperanza de X^2
E2 <- sum((x^2) * p)

# Mostrar resultados
E
[1] 2.8
Ver código
E2
[1] 9.78

Respuesta -> El valor esperado es 2.80

Ver código
cat("\n─────────────────────────────────────────────────────────────────────────\n\n")

─────────────────────────────────────────────────────────────────────────

Varianza

Var(X)=E(X^2)−[E(X)]^2

=9.78−(2.80)^2 =9.78−7.84=1.94

Ver código
x <- c(0,1,2,3,4,5,6)
p <- c(0.06, 0.13, 0.20, 0.28, 0.25, 0.05, 0.03)

sum((x^2)*p) - (sum(x*p))^2
[1] 1.94

Respuesta -> La varianza es 1.94

Ver código
cat("\n─────────────────────────────────────────────────────────────────────────\n\n")

─────────────────────────────────────────────────────────────────────────

Desviación típica

σ=\sqrt{Var\:\left(X\right)} \sqrt{1.94}≈1.39

Ver código
x <- c(0,1,2,3,4,5,6)
p <- c(0.06, 0.13, 0.20, 0.28, 0.25, 0.05, 0.03)

sqrt(sum((x^2)*p) - (sum(x*p))^2)
[1] 1.392839

Respuesta -> La desviación típica es aproximadamente 1.39

Ver código
cat("\n══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ═══════\n\n")

══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ═══════

3 .EJERCICIO 5

Sea X la variable aleatoria que representa la suma de resultados al lanzar dos dados.

3.1 Punto A

¿Cuál es el soporte de la variable aleatoria X?

Ver código
# Soporte de la variable aleatoria X (suma de dos dados)

# Valores posibles de cada dado
dado1 <- 1:6
dado2 <- 1:6

# Todas las combinaciones posibles
combinaciones <- expand.grid(dado1, dado2)

# Calcular la suma
suma <- combinaciones$Var1 + combinaciones$Var2

# Obtener el soporte (valores únicos ordenados)
soporte_X <- sort(unique(suma))

# Mostrar resultado
soporte_X
 [1]  2  3  4  5  6  7  8  9 10 11 12

Respuesta -> El soporte de la variable aleatoria es el conjunto de valores desde 2 hasta 12

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

3.2 Punto B

Obtener la función de probabilidad de la variable y su diagrama de barras.

Hay 36 resultados posibles (6×6)

P(X=x)=\frac{Número\:de\:formas​}{36}

Ver código
# Instalar paquetes si no los tienes
# install.packages("knitr")
# install.packages("kableExtra")

library(knitr)
library(kableExtra)

# Datos
X <- 2:12
formas <- c(1,2,3,4,5,6,5,4,3,2,1)
total <- 36

fraccion <- paste0(formas, "/", total)
decimal <- formas / total

tabla <- data.frame(
  X = X,
  Formas = formas,
  Fraccion = fraccion,
  Decimal = round(decimal, 4)
)

# Tabla con color
kable(tabla, caption = "Distribución de probabilidad de la suma de dos dados") %>%
  kable_styling(bootstrap_options = c("striped", "bordered", "hover"),
                full_width = FALSE) %>%
  row_spec(0, bold = TRUE, background = "#C80959", color = "#0D0301") %>%  # encabezado verde
  column_spec(1:4, background = "#ECCBE6")  # fondo suave verde
Distribución de probabilidad de la suma de dos dados
X Formas Fraccion Decimal
2 1 1/36 0.0278
3 2 2/36 0.0556
4 3 3/36 0.0833
5 4 4/36 0.1111
6 5 5/36 0.1389
7 6 6/36 0.1667
8 5 5/36 0.1389
9 4 4/36 0.1111
10 3 3/36 0.0833
11 2 2/36 0.0556
12 1 1/36 0.0278

La función de probabilidad se obtiene dividiendo el número de formas de cada suma entre 36, la distribución es simétrica.

Ver código
# Valores de los dados
dado1 <- 1:6
dado2 <- 1:6

# Combinaciones
combinaciones <- expand.grid(dado1, dado2)

# Suma
suma <- combinaciones$Var1 + combinaciones$Var2

# Frecuencias y probabilidades
frecuencias <- table(suma)
probabilidades <- frecuencias / 36

# Crear gráfico y guardar posiciones de las barras
barras <- barplot(probabilidades,
                  main = "Distribución de probabilidad de la suma de dos dados",
                  xlab = "Suma (X)",
                  ylab = "Probabilidad",
                  col = "#C80959",
                  border = "black",
                  ylim = c(0, max(probabilidades) + 0.05))

# Agregar etiquetas dentro de las barras
text(x = barras,
     y = probabilidades / 2,   # mitad de la barra
     labels = round(probabilidades, 3),
     col = "black",
     cex = 0.8)

Interpretación -> La gráfica de la función de probabilidad muestra que la distribución de la suma de dos dados es simétrica y tiene su valor máximo en X=7, lo que indica que esta es la suma más probable. A medida que los valores se alejan de 7 hacia los extremos (2 y 12), la probabilidad disminuye progresivamente. Esto se debe a que existen menos combinaciones posibles que producen esos valores extremos. En general, la gráfica evidencia que las sumas intermedias son más probables que las más bajas o más altas.

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

3.3 Punto C

Hallar la función de distribución de X y representarla gráficamente.

Ver código
# Instalar si no los tienes
# install.packages("knitr")
# install.packages("kableExtra")

library(knitr)
library(kableExtra)

# Valores de X
X <- 2:12

# Número de formas
formas <- c(1,2,3,4,5,6,5,4,3,2,1)

# Total de resultados
total <- 36

# Frecuencia relativa
fr_rel_decimal <- formas / total
fr_rel_fraccion <- paste0(formas, "/", total)

# Frecuencia acumulada
formas_acum <- cumsum(formas)
fr_acum_decimal <- cumsum(fr_rel_decimal)
fr_acum_fraccion <- paste0(formas_acum, "/", total)

# Crear tabla
tabla <- data.frame(
  X = X,
  Formas = formas,
  "Frecuencia Relativa" = fr_rel_fraccion,
  "Decimal Relativa" = round(fr_rel_decimal, 4),
  "Frecuencia Acumulada" = fr_acum_fraccion,
  "Decimal Acumulada" = round(fr_acum_decimal, 4)
)

# Mostrar tabla con estilo
kable(tabla, align = "c",
      caption = "Distribución completa: frecuencias relativa y acumulada") %>%
  kable_styling(bootstrap_options = c("striped", "bordered", "hover"),
                full_width = FALSE) %>%
  row_spec(0, bold = TRUE, background = "#C80959", color = "#130711") %>%  # encabezado naranja
  column_spec(1:6, background = "#ECCBE6")
Distribución completa: frecuencias relativa y acumulada
X Formas Frecuencia.Relativa Decimal.Relativa Frecuencia.Acumulada Decimal.Acumulada
2 1 1/36 0.0278 1/36 0.0278
3 2 2/36 0.0556 3/36 0.0833
4 3 3/36 0.0833 6/36 0.1667
5 4 4/36 0.1111 10/36 0.2778
6 5 5/36 0.1389 15/36 0.4167
7 6 6/36 0.1667 21/36 0.5833
8 5 5/36 0.1389 26/36 0.7222
9 4 4/36 0.1111 30/36 0.8333
10 3 3/36 0.0833 33/36 0.9167
11 2 2/36 0.0556 35/36 0.9722
12 1 1/36 0.0278 36/36 1.0000

La función de distribución se obtiene acumulando las probabilidades desde 2 hasta el valor de interés.

Ver código
# Instalar si no lo tienes
# install.packages("ggplot2")

library(ggplot2)

# Datos
dado1 <- 1:6
dado2 <- 1:6
combinaciones <- expand.grid(dado1, dado2)
suma <- combinaciones$Var1 + combinaciones$Var2

frecuencias <- table(suma)
probabilidades <- frecuencias / 36
acumulada <- cumsum(probabilidades)

# Data frame
tabla_acum <- data.frame(
  X = as.numeric(names(probabilidades)),
  F_X = as.vector(acumulada)
)

# Gráfica
ggplot(tabla_acum, aes(x = X, y = F_X)) +
  geom_step(size = 1.2, color = "#C80959") +     # escalones
  geom_point(size = 2, color = "#130711") +       # puntos
  labs(
    title = "Función de distribución acumulada",
    x = "Suma de los dados (X)",
    y = "F(X)"
  ) +
  theme_minimal()

Interpretación -> La gráfica de la función de distribución acumulada es creciente y escalonada, propia de una variable discreta. Cada salto representa la probabilidad de un valor específico, siendo mayores alrededor de 7 y menores en los extremos. La función inicia cerca de 0 en 2 y aumenta hasta 1 en 12, mostrando que la mayor acumulación de probabilidad se concentra en los valores intermedios.

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

3.4 Punto D

Calcular la probabilidad de que la suma de los resultados obtenidos al lanzar dos dados sea mayor que 4 y menor que 8.

P=\frac{4+5+6}{36} = \frac{15}{36} =\:\frac{5}{12}≈0.4167

Ver código
# Valores de los dados
dado1 <- 1:6
dado2 <- 1:6

# Combinaciones
combinaciones <- expand.grid(dado1, dado2)

# Suma
suma <- combinaciones$Var1 + combinaciones$Var2

# Probabilidad de 4 < X < 8
prob_d <- sum(suma > 4 & suma < 8) / length(suma)

# Mostrar resultado
prob_d
[1] 0.4166667

Respuesta -> La probabilidad de que la suma sea mayor que 4 y menor que 8 es 5/12 => 41.67%

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

3.5 Punto E

Calcular la probabilidad de que la suma de los resultados obtenidos al lanzar dos dados sea mayor o igual que 4 y menor o igual que 8.

P=\frac{3+4+5+6+5}{36}

=\frac{23}{36}≈0.639

Ver código
# Valores de los dados
dado1 <- 1:6
dado2 <- 1:6

# Combinaciones
combinaciones <- expand.grid(dado1, dado2)

# Suma
suma <- combinaciones$Var1 + combinaciones$Var2

# Probabilidad de 4 <= X <= 8
prob_e <- sum(suma >= 4 & suma <= 8) / length(suma)

# Mostrar resultado
prob_e
[1] 0.6388889

Respuesta -> La probabilidad de que la suma sea mayor o igual que 4 y menor o igual que 8 es 23/36 => 63.9%

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

3.6 Punto F

¿Cuál es el valor esperado de la suma de los resultados al lanzar dos dados? ¿Y su desviación típica?

Valor esperado

E[X]=∑xP(X=x) Para un dado: E(D) = \frac{1+2+3+4+5+6}{6} = \frac{21}{6} = 3.5

Para dos dados:

E(X)=E(dado1)+E(dado2)=3.5+3.5

E[X]=7

Ver código
# Datos
dado1 <- 1:6
dado2 <- 1:6
combinaciones <- expand.grid(dado1, dado2)
suma <- combinaciones$Var1 + combinaciones$Var2

frecuencias <- table(suma)
probabilidades <- frecuencias / 36
x <- as.numeric(names(probabilidades))

# Valor esperado
esperanza <- sum(x * probabilidades)
esperanza
[1] 7

Respuesta -> El valor esperado de la suma es 7

Ver código
cat("\n─────────────────────────────────────────────────────────────────────────\n\n")

─────────────────────────────────────────────────────────────────────────

Varianza para un dado

Var(X)=∑(x−μ)^2P(X=x) E(D2) = \frac{1^2+2^2+3^2+4^2+5^2+6^2}{6} = \frac{91}{6} Var(D)=E(D^2)−[E(D)]^2 Var(D)=\frac{91}{6}−(3.5)^2=\frac{91}{6}-\frac{49}{4} = \frac{35}{12}

Var(X)=2(\frac{35}{12})=\frac{35}{6}≈5.8333

Ver código
# Datos
dado1 <- 1:6
dado2 <- 1:6
combinaciones <- expand.grid(dado1, dado2)
suma <- combinaciones$Var1 + combinaciones$Var2

frecuencias <- table(suma)
probabilidades <- frecuencias / 36
x <- as.numeric(names(probabilidades))

# Valor esperado
esperanza <- sum(x * probabilidades)

# Varianza
varianza <- sum((x - esperanza)^2 * probabilidades)
varianza
[1] 5.833333

Respuesta -> La varianza es 35/6

Ver código
cat("\n─────────────────────────────────────────────────────────────────────────\n\n")

─────────────────────────────────────────────────────────────────────────

Desviación típica

σ=√Var(X)

σ= \sqrt{\frac{35}{6}} ≈2.415

Ver código
# Datos
dado1 <- 1:6
dado2 <- 1:6
combinaciones <- expand.grid(dado1, dado2)
suma <- combinaciones$Var1 + combinaciones$Var2

frecuencias <- table(suma)
probabilidades <- frecuencias / 36
x <- as.numeric(names(probabilidades))

# Valor esperado
esperanza <- sum(x * probabilidades)

# Varianza
varianza <- sum((x - esperanza)^2 * probabilidades)

# Desviación típica
desviacion <- sqrt(varianza)
desviacion
[1] 2.415229

Respuesta -> La desviación típica es aproximadamente 2.41

Ver código
cat("\n══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ═══════\n\n")

══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ═══════

4 .EJERCICIO 8

La variable aleatoria X tiene función de densidad dada por:

4.1 Punto A

Demostrar que f(x) es una función de densidad y representarla gráficamente.

No negatividad

f(x)≥0 -> se cumple porque 1/3>0

Integral total = 1

\int _0^1\frac{1}{3}\:dx\:+\int _2^4\:\frac{1}{3}\:dx

desarrollo de la integral

\int _0^1\frac{1}{3}\:dx\:=\left[\frac{1}{3}x\right]_0^1 => \left(\frac{1}{3\:}.1\right)-(0) = \frac{1}{3}≈0.33333

\int _2^4\:\frac{1}{3}\:dx=\left[\frac{1}{3}x\right]_2^4 => \left(\frac{1}{3\:}.4\right)-\left(\frac{1}{3\:}.2\right)\:=\:\frac{4}{3}-\frac{2}{3}\:=\frac{2}{3}≈0.66666

suma de los resultados

0.3333333 + 0.6666667 = 1

Ver código
# Definir la función de densidad
f <- function(x) {
  ifelse((x > 0 & x < 1) | (x > 2 & x < 4), 1/3, 0)
}

# Verificar integral total = 1
int_total <- integrate(f, lower = 0, upper = 1)$value +
             integrate(f, lower = 2, upper = 4)$value

# Verificar no negatividad en un conjunto de puntos
x_vals <- seq(-1, 5, length.out = 1000)
no_negativa <- all(f(x_vals) >= 0)

# Mostrar resultados
int_total
[1] 1
Ver código
no_negativa
[1] TRUE

Respuesta -> Sí es función de densidad porque f(x)≥0 y la suma de las áreas es 1

Ver código
# Definir la función de densidad
f <- function(x) {
  ifelse((x > 0 & x < 1) | (x > 2 & x < 4), 1/3, 0)
}

# Graficar base
curve(f, from = -1, to = 5,
      ylab = "f(x)", xlab = "x",
      main = "Función de densidad",
      col = "blue", lwd = 2)

# Rellenar los intervalos con color
polygon(c(0,1,1,0), c(0,0,1/3,1/3), col = "#BF64E3", border = NA)
polygon(c(2,4,4,2), c(0,0,1/3,1/3), col = "#C80959", border = NA)

# Volver a dibujar la línea encima
curve(f, from = -1, to = 5, add = TRUE, col = "#D96214", lwd = 2)

# Líneas verticales de referencia
abline(v = c(0,1,2,4), col = "#121111", lty = 2)

# Línea horizontal en altura 1/3
abline(h = 1/3, col = "purple", lty = 3)

Interpretación -> La gráfica muestra una función de densidad definida por tramos, donde la variable solo toma valores en (0,1) y (2,4), con densidad constante de 1/3 en ambos intervalos. Entre 1 y 2 la probabilidad es cero, por lo que no hay valores posibles allí. La mayor parte de la probabilidad se concentra en (2,4), y el área total es 1, confirmando que es una función de densidad válida.

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

4.2 Punto B

Obtener la función de distribución de la variable aleatoria X y representarla gráficamente.

F(x)=P(X≤x)

Ver código
# Ajustar márgenes
par(mar=c(1,1,1,1))

# Crear lienzo
plot(1, type="n", axes=FALSE, xlab="", ylab="", 
     xlim=c(0,10), ylim=c(0,10))

# Título centrado
text(5, 9, expression(F(x)), cex=2)

# Líneas alineadas con mejor espaciado y llaves
text(3, 7.5, expression(paste("{  0        si   x ≤ 0")), adj=0)
text(3, 6.5, expression(paste("{  ", frac(x,3), "   si   0 < x < 1")), adj=0)
text(3, 5.5, expression(paste("{  ", frac(1,3), "   si   1 ≤ x < 2")), adj=0)
text(3, 4.5, expression(paste("{  ", frac(1,3) + frac(x-2,3), "   si   2 ≤ x < 4")), adj=0)
text(3, 3.5, expression(paste("{  1        si   x ≥ 4")), adj=0)

La función de distribución se obtiene integrando por tramos.

Ver código
# Valores de x
x <- seq(-1, 5, by = 0.01)

# Función acumulada
F <- function(x) {
  y <- numeric(length(x))
  
  y[x <= 0] <- 0
  y[x > 0 & x < 1] <- x[x > 0 & x < 1] / 3
  y[x >= 1 & x < 2] <- 1/3
  y[x >= 2 & x < 4] <- 1/3 + (x[x >= 2 & x < 4] - 2) / 3
  y[x >= 4] <- 1
  
  return(y)
}

# Evaluar
Fx <- F(x)

# Graficar
plot(x, Fx, type = "l", lwd = 3, col = "purple",
     main = "Función de distribución acumulada F(x)",
     xlab = "x", ylab = "F(x)")

# Rellenar áreas por tramos
polygon(c(0, x[x<=1 & x>=0], 1), c(0, Fx[x<=1 & x>=0], 0),
        col = rgb(0,0,1,0.2), border = NA)

polygon(c(2, x[x<=4 & x>=2], 4), c(1/3, Fx[x<=4 & x>=2], 1/3),
        col = rgb(1,0,0,0.2), border = NA)

# Líneas de referencia
abline(v = c(0,1,2,4), lty = 2, col = "gray")
abline(h = c(0,1/3,1), lty = 2, col = "gray")

# Puntos clave
points(c(0,1,2,4), c(0,1/3,1/3,1), pch=19, col="black")

Interpretación -> La gráfica de la función de distribución acumulada es creciente por tramos y refleja la forma de la densidad. Es cero para x≤0, crece linealmente en (0,1) hasta 1/3, permanece constante entre 1 y 2, y luego vuelve a crecer en (2,4) hasta alcanzar 1. A partir de ahí se mantiene constante, indicando que toda la probabilidad ya ha sido acumulada.

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

4.3 Punto C

Calcular p(x<0,6)

Integral

P(X < 0.6) = \int _0^{0.6}\frac{1}{3}dx = \left[\frac{1}{3}x\right]_0^{0.6}

Evaluación de los limites

F(0.6) = \frac{1}{3}\left(0.6\right)=\frac{0.6}{3\:} = 0.2

F(0) = \frac{1}{3}\left(0\right)=\frac{0}{3\:} = 0

Resultado

P(X < 0.6) = 0.2-0 = 0.2

Ver código
# Definir la función de densidad
f <- function(x) {
  ifelse((x > 0 & x < 1) | (x > 2 & x < 4), 1/3, 0)
}

# Calcular P(X < 0.6)
prob <- integrate(f, lower = -Inf, upper = 0.6)$value

# Mostrar resultado
prob
[1] 0.2

Respuesta -> Como 0.6 ∈ (0,1) => P(X<0.6)=0.6/3=0.2

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

4.4 Punto D

Calcular p(0,3≤X≤0,6)

Integral

P(0.3 ≤ X ≤ 0.6) = \int _{0.3}^{0.6}\frac{1}{3}dx = \left[\frac{1}{3}x\right]_{0.3}^{0.6}

Evaluación de limites

F(0.6) = \frac{1}{3}\left(0.6\right)=\frac{0.6}{3\:} = 0.2

F(0.3) = \frac{1}{3}\left(0.3\right)=\frac{0.3}{3\:} = 0.1

Resultado

P(0.3 ≤ X ≤ 0.6) = 0.2 - 0.1 = 0.1

Ver código
# Definir la función de densidad
f <- function(x) {
  ifelse((x > 0 & x < 1) | (x > 2 & x < 4), 1/3, 0)
}

# Calcular P(0.3 <= X <= 0.6)
prob <- integrate(f, lower = 0.3, upper = 0.6)$value

# Mostrar resultado
prob
[1] 0.1

Respuesta -> En el tramo respectivo => P(0.3≤X≤0.6)=(0.6−0.3)/3=0.1

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

4.5 Punto E

Calcular p(0,6<X<3,4)

Integral

P(0.6 < X < 3.4) = \int _{0.6}^1\frac{1}{3\:}dx + \int _{2}^{3.4}\frac{1}{3\:}dx =\left[\frac{1}{3}x\right]_{0.6}^1+\left[\frac{1}{3}x\right]_2^{3.4}

Evaluación en (0.6, 1)

F(1) = \frac{1}{3}\left(1\right)=\frac{1}{3\:} ≈ 0.3333333

F(0.6) = \frac{1}{3}\left(0.6\right)=\frac{0.6}{3\:} ≈ 0.2

Resultado 1 = 0.3333333-0.2 = 0.1333333

Evaluación en (2, 3.4)

F(3.4) = \frac{1}{3}\left(3.4\right)=\frac{3.4}{3\:} ≈ 1.133333

F(2) = \frac{1}{3}\left(2\right)=\frac{2}{3\:} ≈ 0.6666667

Resultado2 = 1.133333-0.6666667=0.4666667

Resultado

P(0.6 < X < 3.4) = 0.1333+0.4666 ≈ 0.6

Ver código
# Definir la función de densidad
f <- function(x) {
  ifelse((x > 0 & x < 1) | (x > 2 & x < 4), 1/3, 0)
}

# Calcular P(0.6 < X < 3.4)
prob <- integrate(f, lower = 0.6, upper = 1)$value +
        integrate(f, lower = 2, upper = 3.4)$value

# Mostrar resultado
prob
[1] 0.6

Respuesta -> Se separa en dos intervalos:(0.6,1) y (2,3.4) => (1−0.6)/3+(3.4−2)/3=0.6

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

4.6 Punto F

Obtener el rango intercuartílico de la variable aleatoria X.

Hallar Q1

Buscamos F(x)=0.25

Sabemos que en el intervalo 0<x<1=𝐹(𝑥) = \frac{x}{3\:}

Entonces:\frac{x}{3\:}=0.25 ⇒ x=0.75

Ver código
# Q1: resolver F(x) = 0.25 en (0,1)
Q1 <- 3 * 0.25
Q1
[1] 0.75

Respuesta -> Para Q1 => x/3=0.25 ⇒ x=0.75

Ver código
cat("\n─────────────────────────────────────────────────────────────────────────\n\n")

─────────────────────────────────────────────────────────────────────────

Hallar Q3

Buscamos F(x)=0.75

Sabemos que en 2≤x<4:F(x)=\frac{1}{3\:}+\frac{x-2}{3\:}

Entonces:

\frac{1}{3\:}+\frac{x-2}{3\:}=0.75

\frac{x-2}{3\:}=0.75−\frac{1}{3\:}=\frac{5}{12\:}

x−2=\frac{5}{4\:} ⇒ x=3.25

Ver código
# Q3: resolver 1/3 + (x-2)/3 = 0.75
Q3 <- 2 + 3 * (0.75 - 1/3)
Q3
[1] 3.25

Respuesta -> Para Q3 => (x−1)/3=0.75 ⇒ x=3.25

Ver código
cat("\n─────────────────────────────────────────────────────────────────────────\n\n")

─────────────────────────────────────────────────────────────────────────

Hallar rango intercuartílico

RIC=Q3−Q1 =3.25−0.75=2.5

Ver código
# Rango intercuartílico
RIC <- Q3 - Q1
RIC
[1] 2.5

Respuesta -> RIC = 3.25−0.75=2.5

Ver código
cat("\n══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ═══════\n\n")

══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ═══════

5 .EJERCICIO 9

La variable aleatoria X tiene función de densidad dada por:

5.1 Punto A

Demostrar que f(x) es una función de densidad y representarla gráficamente.

No negatividad

Se cumple porque:

x≥0 en 0≤X<1

2-X≥0 en 1≤X<2

Integral total = 1 \int _0^1xdx+\int _1^2\:\left(2-x\right)dx

Evaluación de limites

\int _0^1xdx = \left[\frac{x^2}{2}\right]_0^1 = \frac{1^2}{2}= \frac{1}{2} \int _0^1xdx = \left[\frac{x^2}{2}\right]_0^1 = \frac{0^2}{2}= \frac{0}{2}=0 Resultado => \frac{1}{2}-0=\frac{1}{2}

\int _1^2\left(2-x\right)dx =\int _1^22dx-\int _1^2xdx

=\left[2x\right]_1^2-\left[\frac{x^2}{2}\right]_1^2 \left[\left(2.2\right)-\left(2.1\right)\right]-\left[\frac{2^2}{2}-\frac{1^2}{2}\right] \left[4-2\right]-\left[\frac{4}{2}-\frac{1}{2}\right]

Resultado => 2-\frac{3}{2}=\frac{1}{2}

Suma de los resultados

\frac{1}{2} + \frac{1}{2} = 1

Ver código
# Definir la función de densidad
f <- function(x) {
  ifelse(x > 0 & x < 1, x,
         ifelse(x >= 1 & x < 2, 2 - x, 0))
}

# Verificar integral total = 1
int_total <- integrate(f, lower = 0, upper = 1)$value +
             integrate(f, lower = 1, upper = 2)$value

# Verificar no negatividad
x_vals <- seq(-1, 3, length.out = 1000)
no_negativa <- all(f(x_vals) >= 0)

# Mostrar resultados
int_total
[1] 1
Ver código
no_negativa
[1] TRUE

Respuesta -> La función dada cumple las condiciones de una función de densidad, ya que es no negativa en todo su dominio y la integral total en su soporte es igual a 1. Por lo tanto, sí es una función de densidad válida

Ver código
library(ggplot2)

# Crear datos
x <- seq(0, 2, length = 500)
y <- ifelse(x > 0 & x < 1, x,
            ifelse(x >= 1 & x < 2, 2 - x, 0))

df <- data.frame(x, y)

# Graficar
ggplot(df, aes(x = x, y = y)) +
  geom_line(size = 1.2, color = "black") +
  geom_area(fill = "#C80959", alpha = 0.5) +
  geom_vline(xintercept = c(0,1,2), linetype = "dashed", color = "blue") +
  geom_point(data = data.frame(x = c(0,1,2), y = c(0,1,0)),
             aes(x, y), color = "black", size = 3) +
  labs(title = "Función de Densidad f(x)",
       x = "x",
       y = "f(x)") +
  theme_minimal()

Interpretación -> La gráfica muestra una función de densidad continua con forma triangular en [0,2], que alcanza su máximo en x=1. Esto indica que los valores cercanos a 1 son los más probables, mientras que en los extremos la probabilidad es menor. La simetría refleja ausencia de sesgo y que el valor esperado se encuentra en el centro, siendo una función de densidad válida.

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

5.2 Punto B

Obtener la función de distribución de la variable aleatoria X y representarla gráficamente.

F(x)=P(X≤x)

Casos:

✔Si x≤0: F(x)=0

✔Si 0<x<1: \int _0^xtdt=\left[\frac{t^2}{2}\right]_0^x=\frac{x^2}{2}-\frac{0^2}{2}=\frac{x^2}{2}-0=\frac{x^2}{2}

✔Si 1≤x<2: F(x)=\int _0^1\:tdt+\int _1^x\:\left(2-t\right)dt =\left[\frac{t^2}{2}\right]_0^1+(\int _1^x2dt-\int _1^xtdt) =\left[\frac{t^2}{2}\right]_0^1+\left[{2t-\frac{t^2}{2}}\right]_1^x \left[\frac{1^2}{2}-\frac{0^2}{2}\right]+\left[\left(2x-\frac{x^2}{2}\right)-\left(2.1-\frac{1^2}{2}\right)\right] \left[\frac{1}{2}-0\right]+\left[\left(2x-\frac{x^2}{2}\right)-\left(2-\frac{1}{2}\right)\right]

=\frac{1}{\:2}+\left[\left(2x-\frac{x^2}{2}\right)-\left(2-\frac{1}{2}\right)\right]

=1- \frac{\left(2-x\right)^2}{2} ✔Six≥2: F(x)=1

Respuesta -> La función de distribución acumulada queda definida por tramos: es 0 para valores menores o iguales a 0; en el intervalo 0<x<1 es x^2/2; en el intervalo 1≤x<2 toma la forma 1−(2−x)^2/2; y vale 1 para x≥2.

Ver código
# Instalar si no lo tienes
# install.packages("ggplot2")

library(ggplot2)

# Crear datos
x <- seq(-1, 3, by = 0.01)

F <- ifelse(x <= 0, 0,
     ifelse(x < 1, x^2/2,
     ifelse(x < 2, 2*x - x^2/2 - 1,
     1)))

df <- data.frame(x, F)

# Graficar
ggplot(df, aes(x = x, y = F)) +
  geom_line(color = "purple", size = 1.2) +
  
  # Puntos importantes
  geom_point(data = data.frame(x = c(0,1,2), F = c(0,0.5,1)),
             aes(x, F), color = "black", size = 3) +
  
  # Líneas guía
  geom_hline(yintercept = c(0, 0.5, 1), linetype = "dashed", color = "gray") +
  geom_vline(xintercept = c(0, 1, 2), linetype = "dashed", color = "gray") +
  
  labs(title = "Función de Distribución F(x)",
       x = "x",
       y = "F(x)") +
  
  theme_minimal()

Interpretación -> La función de distribución muestra cómo se acumula la probabilidad en una variable aleatoria continua definida en el intervalo ((0,2)). Se observa que la probabilidad es cero antes de 0 y aumenta progresivamente hasta alcanzar 1 en (x=2), lo que indica que todos los valores posibles están en ese rango.La forma de la gráfica refleja una distribución triangular, donde la probabilidad crece hasta (x=1) y luego decrece, indicando que los valores centrales son más probables que los extremos.

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

5.3 Punto C

Calcula el valor esperado y la varianza de X.

Esperanza E[X]=\int _0^1\:x\left(x\right)dx+\int _1^2\:x\left(2-x\right)dx

=\int _0^1\:x^2dx+\int _1^2\:\left(2x-x^2\right)dx =\left[\frac{x^3}{3}\right]_0^1+\left[x^2-\frac{x^3}{3}\right]_1^2 =\frac{1}{3}+[(4−\frac{8}{3})−(1−\frac{1}{3})] =\frac{1}{3}+\frac{2}{3}=1

Segundo momento E[X^2]=\int _0^1\:x^3dx+\int _1^2\:\:x^2\left(2-x\right)dx =\frac{1}{4}+\left[(\frac{2x^3}{3})-(\frac{x^4}{4})\right]_1^2 =\frac{1}{4}+[(\frac{16}{3}−4)−(\frac{2}{3}−\frac{1}{4})] =\frac{1}{4}+\frac{11}{12}=\frac{7}{6}

Ver código
# Función de densidad
f <- function(x) {
  ifelse(x > 0 & x < 1, x,
         ifelse(x >= 1 & x < 2, 2 - x, 0))
}

# Calcular E(X)
EX <- integrate(function(x) x * f(x), lower = 0, upper = 2)$value

EX
[1] 1

Respuesta -> La esperanza de la variable aleatoria es igual a 1

Ver código
cat("\n─────────────────────────────────────────────────────────────────────────\n\n")

─────────────────────────────────────────────────────────────────────────

Varianza Var(X)=E[X^2]−(E[X])^2 =\frac{7}{6}−1^2=>\frac{7}{6}−1=\frac{1}{6}

Ver código
# Función de densidad
f <- function(x) {
  ifelse(x > 0 & x < 1, x,
         ifelse(x >= 1 & x < 2, 2 - x, 0))
}

# Calcular E(X^2)
EX2 <- integrate(function(x) x^2 * f(x), lower = 0, upper = 2)$value

# Calcular E(X)
EX <- integrate(function(x) x * f(x), lower = 0, upper = 2)$value

# Varianza
VarX <- EX2 - EX^2

VarX
[1] 0.1666667

Respuesta -> la varianza es 1/6

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

5.4 Punto D

Hallar los percentiles 30 y 70 de la distribución.

Percentil 30 (p=0.3) Como 0.3 < 0.5, usamos:

F(x)=\frac{x^2}{2}

\frac{x^2}{2}=0.3⇒x^2=0.6 x=\sqrt{0.6}≈0.775

Ver código
# Percentil 30 (p = 0.3)

# Fórmula en el intervalo (0,1): F(x) = x^2 / 2
p <- 0.3

p30 <- sqrt(2 * p)

cat("Percentil 30:", p30)
Percentil 30: 0.7745967

Respuesta -> El percentil 30 es aproximadamente 0.775

Ver código
cat("\n─────────────────────────────────────────────────────────────────────────\n\n")

─────────────────────────────────────────────────────────────────────────

Percentil 70 (p=0.7) Usamos:

𝐹(x)=2x−\frac{x^2}{x}−1

2x−\frac{x^2}{x}−1=0.7

2x−\frac{x^2}{x}=1.7

Multiplicamos por dos:

4x−x^2=3.4

x^2−4x+3.4=0 x=\frac{4\pm \sqrt{16-13.6}}{2} = \frac{4\pm \sqrt{2.4}}{2} x≈\frac{4-1.549}{2}≈1.225

Ver código
# Percentil 70 (p = 0.7)

# Resolver: 2x - x^2/2 - 1 = 0.7
p <- 0.7

f_eq <- function(x) {
  2*x - (x^2)/2 - 1 - p
}

# Solución en el intervalo (1,2)
p70 <- uniroot(f_eq, c(1, 2))$root

cat("Percentil 70:", p70)
Percentil 70: 1.225416

Respuesta -> El percentil 70 es aproximadamente 1.225

Ver código
cat("\n══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ═══════\n\n")

══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ═══════

6 .EJERCICIO 19

En una población, la cantidad de plomo que tiene una persona en la sangre, medida en p.p.m., es una variable aleatoria con función de densidad

6.1 Punto A

Representar f(x) gráficamente.

Ver código
# ===== PARÁMETROS (puedes cambiar) =====
color_triangulo <- "pink"   # color del relleno
color_borde <- "black"         # color del borde
color_ejes <- "gray40"         # color líneas guía

# ===== Crear lienzo =====
plot(0, 0, type = "n",
     xlim = c(0, 50), ylim = c(0, 0.05),
     xlab = "x", ylab = "f(x)",
     main = "Función de densidad f(x)",
     axes = FALSE)

# ===== Dibujar ejes =====
axis(1, at = c(0, 20, 50))
axis(2)
box()

# ===== Triángulo =====
polygon(c(0, 20, 50),
        c(0, 20/500, 0),
        col = color_triangulo,
        border = color_borde, lwd = 2)

# ===== Líneas guía =====
abline(v = c(20), lty = 2, col = color_ejes)
abline(h = 20/500, lty = 3, col = color_ejes)

# ===== Puntos clave (sin etiquetar máximo) =====
points(c(0, 20, 50),
       c(0, 20/500, 0),
       pch = 16)

Interpretación -> La gráfica muestra una distribución de densidad con forma triangular, que aumenta de 0 a 20 y luego disminuye hasta 50. El valor más probable se encuentra en x=20, mientras que los extremos tienen menor probabilidad. En general, la mayor concentración se da en valores intermedios de plomo.

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

6.2 Punto B

Demostrar que f(x) es una función de densidad.

No negatividad

Se cumple porque: f(x)≥0

Integral total = 1

\int _0^{20}\frac{x}{500}dx+\int _{20}^{50}\:\frac{50-x}{750}dx \frac{1}{500}\left[\frac{x^2}{2}\right]_0^{20}+\frac{1}{750}\left(\int _{20}^{50}50dx-\int _{20}^{50}xdx\right) \frac{1}{500}\left[\frac{x^2}{2}\right]_0^{20}+\frac{1}{750}(\left[50x\right]_{20}^{50}-\left[\frac{x^2}{2}\right]_{20}^{50})

Evaluación de limites

F(20)=\frac{1}{500}\left(\frac{20^2}{2}\right)=\frac{400}{1000}=0.4 F(0)=\frac{1}{500}\left(\frac{0^2}{2}\right)=\frac{0}{1000}=0

Resultado => 0.4 - 0 = 0.4

\frac{1}{750}(\left[50x\right]_{20}^{50}-\left[\frac{x^2}{2}\right]_{20}^{50}) \frac{1}{750} \left[\left(50.50\right)-\left(50.20\right)-\left(\frac{50^2}{2}-\frac{20^2}{2}\right)\right] \frac{1}{750}\left[2500-1000-\left(\frac{2500}{2}-\frac{400}{2}\right)\right] \frac{1}{750}\left[1500-\left(\frac{2100}{2}\right)\right] \frac{1}{750}\left[\frac{3000-2100}{2}\right]\:=\frac{1}{750}\:.\:\frac{900}{2} Resultado => \frac{450}{750}\:=0.6 Suma de los resultados

0.4+0.6 = 1

Ver código
# Definir funciones por tramos
f1 <- function(x) x/500
f2 <- function(x) (50 - x)/750

# Calcular integrales
I1 <- integrate(f1, lower = 0, upper = 20)
I2 <- integrate(f2, lower = 20, upper = 50)

# Mostrar resultados
cat("Integral en [0,20]:", I1$value, "\n")
Integral en [0,20]: 0.4 
Ver código
cat("Integral en [20,50]:", I2$value, "\n")
Integral en [20,50]: 0.6 
Ver código
# Suma total
total <- I1$value + I2$value
cat("Suma total:", total, "\n")
Suma total: 1 

Respuesta -> Sí, f(x) es una función de densidad, ya que es no negativa en todo su dominio y la integral total en [0,50] es igual a 1

Ver código
library(ggplot2)

x <- seq(0, 50, by = 0.1)

F <- ifelse(x < 0, 0,
     ifelse(x < 20, (x^2)/1000,
     ifelse(x < 50, 0.4 + (50*x - x^2/2 - 800)/750,
     1)))

df <- data.frame(x, F)

ggplot(df, aes(x, F)) +
  geom_line(color = "purple", size = 1.2) +
  geom_vline(xintercept = c(0,20,50), linetype="dashed", color="gray") +
  labs(title = "Función de Distribución F(x)",
       x = "Plomo (p.p.m.)",
       y = "F(x)") +
  theme_minimal()

Interpretación -> La gráfica muestra una distribución triangular asimétrica en el intervalo ((0,50)), donde la densidad aumenta hasta un máximo en (x=20) y luego disminuye hasta cero en (x=50). Esto indica que los valores cercanos a 20 son los más probables, mientras que los extremos son menos frecuentes. La forma de la curva confirma que se trata de una función de densidad válida y que la mayor concentración de probabilidad se encuentra en valores intermedios.

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

6.3 Punto C

De entre las personas de la comunidad cuyo contenido de plomo en la sangre es superior a 15 p.p.m., ¿Qué porcentaje tiene en la sangre una cantidad de plomo superior a 40 p.p.m.?

P(X>40/X>15)=\frac{P\left(X>40\right)}{P\left(X>15\right)} ✔ P(X>40) \int _{40}^{50}\frac{50-x}{750}dx=\frac{1}{750}.\frac{\left(50-40\right)^2}{2}=\frac{100}{1500}=0.0667

✔ P(X>15) \int _{15}^{20}\frac{x}{500}dx+\int _{20}^{50}\frac{500-x}{750}dx Primera parte \int _{15}^{20}\frac{x}{500}dx=\frac{1}{500}.\frac{20^2-15^2}{2}=\frac{400-225}{1000}=0.175 Segunda parte \int _{20}^{50}\frac{50-x}{750}dx=\frac{1}{750}.\frac{\left(50-20\right)^2}{2}=\frac{900}{1500}=0.6 P(X>15)=0.175+0.6=0.775

Resultado P(X>40∣X>15)=\frac{0.0667}{0.775}=0.086

Ver código
# Funciones por tramos
f1 <- function(x) x/500
f2 <- function(x) (50 - x)/750

# P(X > 40)
p_40 <- integrate(f2, lower = 40, upper = 50)$value

# P(X > 15) = parte 1 + parte 2
p_15_1 <- integrate(f1, lower = 15, upper = 20)$value
p_15_2 <- integrate(f2, lower = 20, upper = 50)$value

p_15 <- p_15_1 + p_15_2

# Probabilidad condicional
resultado <- p_40 / p_15

# Mostrar resultados
cat("P(X > 40) =", round(p_40, 4), "\n")
P(X > 40) = 0.0667 
Ver código
cat("P(X > 15) =", round(p_15, 4), "\n")
P(X > 15) = 0.775 
Ver código
cat("P(X > 40 | X > 15) =", round(resultado, 4), "\n")
P(X > 40 | X > 15) = 0.086 

Resultado -> El porcentaje de personas con más de 40 p.p.m. de plomo en sangre, entre aquellas que tienen más de 15 p.p.m., es aproximadamente 0.086, es decir, 8.6%

Ver código
library(ggplot2)

x <- seq(0, 50, by = 0.1)

f <- ifelse(x < 20, x/500,
     ifelse(x < 50, (50 - x)/750, 0))

df <- data.frame(x, f)

area <- subset(df, x >= 40)

ggplot(df, aes(x, f)) +
  geom_line(color = "black", size = 1.2) +
  geom_area(data = area, aes(x, f), fill = "purple", alpha = 0.5) +
  labs(title = "P(X > 40)",
       x = "Plomo (p.p.m.)",
       y = "f(x)") +
  theme_minimal()

Interpretación -> La gráfica muestra el área bajo la curva para valores mayores a 40, la cual es pequeña, indicando que esta probabilidad es baja. Esto se debe a que la densidad disminuye después de (x=20), por lo que los valores altos son menos frecuentes dentro de la distribución.

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

6.4 Punto D

Calcular la cantidad media de plomo en la sangre de los individuos de la población

E(X)= \int _0^{20}\:x\frac{x}{500}dx+\int _{20}^{50}\:x\frac{50-x}{750}dx Primera parte \int _0^{20}x\frac{x}{500}dx = \frac{1}{\:500}.\frac{20^3}{3}=\frac{8000}{1500}=5.33

Segunda parte \int _{20}^{50}x\frac{50-x}{750}dx = \frac{\:1}{750\:}\int \:\left(50x-x^2\right)dx =\frac{\:1}{750\:}\int _{20}^{50}50xdx-\int _{20}^{50}x^2dx =\frac{\:1}{750\:}(50\left[\frac{x^2}{2}\right]_{20}^{50}-\left[\frac{x^3}{3}\right]_{20}^{50}) =\frac{\:1}{750\:}(52.500-39.000) = \frac{13.500}{750} = 18 Total

E(X)= 5.33+18 = 23.33

Ver código
# Funciones por tramos
f1 <- function(x) x/500
f2 <- function(x) (50 - x)/750

# Esperanza por tramos
E1 <- integrate(function(x) x * f1(x), lower = 0, upper = 20)$value
E2 <- integrate(function(x) x * f2(x), lower = 20, upper = 50)$value

# Esperanza total
E <- E1 + E2

# Mostrar resultado
cat("E(X) =", round(E, 4), "\n")
E(X) = 23.3333 

Resultado -> La cantidad media de plomo en la sangre es aproximadamente 23.33 p.p.m

Ver código
library(ggplot2)

# Valores
x <- seq(0, 50, by = 0.1)

# Densidad
f <- ifelse(x < 20, x/500,
     ifelse(x < 50, (50 - x)/750, 0))

df <- data.frame(x, f)

# Esperanza calculada
media <- 29.33

# Gráfica
ggplot(df, aes(x, f)) +
  geom_line(color = "black", size = 1.2) +
  
  # Línea de la media
  geom_vline(xintercept = media, color = "purple", linetype = "dashed", size = 1.2) +
  
  labs(title = "Densidad f(x) con Esperanza E(X)",
       subtitle = "Línea morada: valor esperado",
       x = "Plomo (p.p.m.)",
       y = "f(x)") +
  
  theme_minimal()

Interpretación -> La gráfica permite interpretar el valor esperado como el punto de equilibrio de la distribución. Aunque la densidad no es simétrica, la mayor concentración de probabilidad se encuentra antes de (x=20), lo que hace que el promedio se desplace hacia valores menores dentro del intervalo total. Esto indica que, en promedio, la cantidad de plomo en la sangre tiende a ubicarse en valores moderados, reflejando una mayor frecuencia de observaciones en esa zona de la distribución.

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

6.5 Punto E

Elegimos una persona al azar. Obtener la probabilidad de que la cantidad de plomo en su sangre sea inferior a 25 p.p.m.

P(X<25)= \int _0^{20}\:\frac{x}{500}dx + \int _{20}^{25}\:\frac{50-x}{750}dx Primera parte \int _0^{20}\:\frac{x}{500}dx = \frac{1}{500}\left[\frac{x^2}{2}\right]_0^{20} = 0.4 Segunda parte \int _{20}^{25}\:\frac{50-x}{750}dx = \frac{1}{750}\left(\int _{20}^{25}50dx-\int _{20}^{25}xdx\right) =\frac{1}{750}\left(250-\frac{225}{2}\right) = 0.1833 Total P(X<25)=0.4+0.1833=0.5833

Ver código
# Definir la función de densidad
f <- function(x) {
  ifelse(x > 0 & x <= 20, x/500,
         ifelse(x > 20 & x <= 50, (50 - x)/750, 0))
}

# Calcular P(X < 25)
prob <- integrate(f, lower = -Inf, upper = 25)$value

# Mostrar resultado
prob
[1] 0.583333

Resultado -> La probabilidad de que una persona tenga menos de 25 p.p.m. de plomo en la sangre es aproximadamente 0.583

Ver código
library(ggplot2)

x <- seq(0, 50, by = 0.1)

f <- ifelse(x < 20, x/500,
     ifelse(x < 50, (50 - x)/750, 0))

df <- data.frame(x, f)

area <- subset(df, x <= 25)

ggplot(df, aes(x, f)) +
  geom_line(color = "black", size = 1.2) +
  geom_area(data = area, aes(x, f), fill = "purple", alpha = 0.5) +
  labs(title = "P(X < 25)",
       x = "Plomo (p.p.m.)",
       y = "f(x)") +
  theme_minimal()

Interpretación -> La gráfica representa el área bajo la curva para valores menores a 25, mostrando una porción considerable de la distribución. Esto indica que la probabilidad de que la cantidad de plomo en la sangre sea inferior a 25 es relativamente alta.Dado que la mayor concentración de la densidad se encuentra entre valores bajos e intermedios, el área acumulada hasta 25 abarca más de la mitad de la distribución, evidenciando que estos valores son los más frecuentes en la población.

Ver código
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")

═════════════════════════════════════════════════════════════════════════

6.6 Punto F

Obtener la probabilidad de que en 40 personas elegidas al azar, haya entre 15 y 20 personas con una cantidad de plomo en la sangre inferior a 25 p.p.m.

Sea: p=0.5833 Y∼Binomial(40,0.5833)

Buscamos: P(15≤Y≤20) Aproximación normal: μ=np=23.33 σ=\sqrt{np\left(1-p\right)}≈3.11 Corrección de continuidad: P(14.5≤Y≤20.5)Z1 = \frac{14.5−23.33}{3.11} ≈−2.84 P(Z<−2.84)≈0.002Z2 = \frac{20.5−23.33}{3.11} ≈−0.91 P(Z<−0.91)≈0.181 Total

P=0.181−0.002=0.179≈0.18

Ver código
# Parámetros
n <- 40
p <- 0.5833

# Probabilidad exacta
resultado <- pbinom(20, size = n, prob = p) - pbinom(14, size = n, prob = p)

# Mostrar resultado
cat("P(15 ≤ Y ≤ 20) =", round(resultado, 4), "\n")
P(15 ≤ Y ≤ 20) = 0.1791 

Resultado -> La probabilidad de que, en una muestra de 40 personas, entre 15 y 20 tengan menos de 25 p.p.m. de plomo en la sangre es aproximadamente 0.18, es decir, 18%

7 .REFERENCIAS

https://quartopub.com/sites/00b8242a-b168-4b6b-82f4-ffbb34e46281

https://quartopub.com/sites/93fe6d11-5580-430b-ba40-d217f81af81b

https://dsalgadoh.quarto.pub/variable-aleatoria/

https://dasaho26.quarto.pub/distribuciones-discretas-de-probabilidad/#distribuci%C3%B3n-binomial

Este trabajo fue desarrollado con apoyo de herramientas de inteligencia artificial, específicamente ChatGPT (OpenAI, 2026), utilizado como herramienta de consulta para la comprensión, así como para la generación de código en R.