Ver código
options(
knitr.table.format = "html",
scipen = 999
)options(
knitr.table.format = "html",
scipen = 999
)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)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:
Calcular P(x=2)
P(x=2)=F(2)−F(1)
=0.39−0.19=0.20
# 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%
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.
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
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
# 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%
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.
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
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
# 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%
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.
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
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
# 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%
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.
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
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
# 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
E2[1] 9.78
Respuesta -> El valor esperado es 2.80
cat("\n─────────────────────────────────────────────────────────────────────────\n\n")
─────────────────────────────────────────────────────────────────────────
Varianza
Var(X)=E(X^2)−[E(X)]^2
=9.78−(2.80)^2 =9.78−7.84=1.94
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
cat("\n─────────────────────────────────────────────────────────────────────────\n\n")
─────────────────────────────────────────────────────────────────────────
Desviación típica
σ=\sqrt{Var\:\left(X\right)} \sqrt{1.94}≈1.39
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
cat("\n══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ═══════\n\n")
══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ═══════
Sea X la variable aleatoria que representa la suma de resultados al lanzar dos dados.
¿Cuál es el soporte de la variable aleatoria X?
# 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
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
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}
# 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| 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.
# 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.
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
Hallar la función de distribución de X y representarla gráficamente.
# 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")| 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.
# 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.
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
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
# 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%
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
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
# 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%
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
¿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
# 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
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
# 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
cat("\n─────────────────────────────────────────────────────────────────────────\n\n")
─────────────────────────────────────────────────────────────────────────
Desviación típica
σ=√Var(X)
σ= \sqrt{\frac{35}{6}} ≈2.415
# 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
cat("\n══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ═══════\n\n")
══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ═══════
La variable aleatoria X tiene función de densidad dada por:
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
# 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
no_negativa[1] TRUE
Respuesta -> Sí es función de densidad porque f(x)≥0 y la suma de las áreas es 1
# 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.
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
Obtener la función de distribución de la variable aleatoria X y representarla gráficamente.
F(x)=P(X≤x)
# 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.
# 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.
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
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
# 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
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
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
# 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
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
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
# 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
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
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
# 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
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
# 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
cat("\n─────────────────────────────────────────────────────────────────────────\n\n")
─────────────────────────────────────────────────────────────────────────
Hallar rango intercuartílico
RIC=Q3−Q1 =3.25−0.75=2.5
# Rango intercuartílico
RIC <- Q3 - Q1
RIC[1] 2.5
Respuesta -> RIC = 3.25−0.75=2.5
cat("\n══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ═══════\n\n")
══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ═══════
La variable aleatoria X tiene función de densidad dada por:
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
# 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
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
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.
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
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.
# 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.
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
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}
# 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
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}
# 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
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
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
# 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
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
# 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
cat("\n══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ═══════\n\n")
══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ══════════ ✧ ═══════
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
Representar f(x) gráficamente.
# ===== 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.
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
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
# 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
cat("Integral en [20,50]:", I2$value, "\n")Integral en [20,50]: 0.6
# 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
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.
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
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
# 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
cat("P(X > 15) =", round(p_15, 4), "\n")P(X > 15) = 0.775
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%
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.
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
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
# 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
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.
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
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
# 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
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.
cat("\n═════════════════════════════════════════════════════════════════════════\n\n")
═════════════════════════════════════════════════════════════════════════
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.002 ✔ Z2 = \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
# 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%
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.