Parcial 2 - Probabilidad y estadística

Acosta Alape Laura Rocio

2025-06-15

EJERCICIO 1

  1. Algunos casos de historias clínicas indican que diferentes enfermedades producen síntomas idénticos. Suponga que un conjunto particular de síntomas, denotado como H, se presenta sólo con cualquiera de tres enfermedades, I1, I2 o I3. Suponga que la presentación simultánea de más de una de estas enfermedades es imposible y que P(I1) = 0.01, P(I2) = 0.005, P(I3) = 0.02. Las probabilidades de desarrollar el conjunto de síntomas H, dada cada una de estas enfermedades, se sabe que son: P(H | I1) = 0.90, P(H | I2) = 0.95, P(H | I3) = 0.75
  1. Elabore un dataframe que resuma la información.
  2. Suponiendo que una persona enferma presenta los síntomas, H, ¿Cuál es la probabilidad de que la persona tenga la enfermedad I1?
#Datos

Enfermedades <- c("I1", "I2", "I3")
#La presentación simultánea de más de una de estas enfermedades es imposible
Sintomas_H <- c(0.01, 0.005,0.02)
#Probabilidades de desarrollar el conjunto de síntomas H
Probabilidad_H <- c(0.90, 0.95, 0.75)

#A) Crear dataframe
df1 <- data.frame(Enfermedades, Sintomas_H, Probabilidad_H)
df1
##   Enfermedades Sintomas_H Probabilidad_H
## 1           I1      0.010           0.90
## 2           I2      0.005           0.95
## 3           I3      0.020           0.75
#B)Suponiendo que una persona enferma presenta los síntomas, H, ¿Cuál es la probabilidad de que la persona tenga la enfermedad I1?
#Usar probabilidad condicional

# Calcular la P(enfermedades), esta vendria siendo la probabilidad total 
P_Enfermedades_T <- sum(df1$Sintomas_H * df1$Probabilidad_H)

# Calcular P(una_persona_con_I1)
persona_con_I1 <- df1$Sintomas_H[1] * df1$Probabilidad_H[1]

# Calcular la probabilidad de que la persona tenga la enfermedad I1
probabilida_I1 <-(persona_con_I1 / P_Enfermedades_T)
cat("La probabilidad de que la persona enferma con sintomas H tenga la enfermedad I1 es:", probabilida_I1)
## La probabilidad de que la persona enferma con sintomas H tenga la enfermedad I1 es: 0.3130435

EJERCICIO 2

  1. Un grupo grande de personas se examinará para ver si presentan dos síntomas comunes de cierta enfermedad. Se piensa que 20% de las personas tienen sólo el síntoma A, 30% sólo el síntoma B, 10% tienen ambos síntomas y el resto no tiene ningún síntoma.
  1. Elabore un dataframe que resuma la información del problema.
  2. Para una persona escogida al azar de este grupo, encuentre la probabilidad de que la persona tiene ambos síntomas, dado que tiene el síntoma B.
library(MASS)
Sintomas <- c("A", "B", "A y B", "Ninguno")
personas_con_sintomas <- c(0.20, 0.30, 0.10, 0.40)

#A) Crear dataframe
df2 <- data.frame(Sintomas, personas_con_sintomas)
df2
##   Sintomas personas_con_sintomas
## 1        A                   0.2
## 2        B                   0.3
## 3    A y B                   0.1
## 4  Ninguno                   0.4
# Calcular P(sintoma_B)
p_sintoma_B <- df2$personas_con_sintomas[2]+df2$personas_con_sintomas[3]

# Calcular P(sintoma_A_Y_B)
P_sintoma_A_Y_B <- df2$personas_con_sintomas[3]

# Calcular P(sintoma_A_Y_B | sintoma_B)
p_sintoma_A_Y_B_dado_sintoma_B <-(P_sintoma_A_Y_B / p_sintoma_B)

cat("La la probabilidad de que la persona tiene ambos síntomas, dado que tiene el síntoma B es:", p_sintoma_A_Y_B_dado_sintoma_B)
## La la probabilidad de que la persona tiene ambos síntomas, dado que tiene el síntoma B es: 0.25

EJERCICIO 3

  1. Sea X una variable aleatoria con f(x) dada en la siguiente tabla.
  1. Dibuje la función de probabilidad.
  2. Obtenga la función de distribución, F(x) y, con base en ella, encuentre F(2.5)
# Definir los valores de x y f(x)
x <- c(1, 2, 3, 4)
f.x <- c(0.4, 0.3, 0.2, 0.1)

#Crear un dataframe
df <- data.frame(x, f.x)
df
##   x f.x
## 1 1 0.4
## 2 2 0.3
## 3 3 0.2
## 4 4 0.1
#A) Dibujar la función de probabilidad
library(ggplot2)
ggplot(df, aes(x = x, y = f.x)) +
  geom_point(color = "darkred", size = 3) +
  geom_segment(aes(xend = x, yend = 0), linetype = "dashed", color = "purple") +
  labs(title = "Función de probabilidad", x = "x", y = "f(x)")

#B) Obtenerla función de distribución, F(x)

#Función acumulada F(x)
F.x <- cumsum(f.x)

#Crear nuevo dataframe con F(x)
df_acumulada <- data.frame(x = x, f.x = f.x, F.x = F.x)
df_acumulada
##   x f.x F.x
## 1 1 0.4 0.4
## 2 2 0.3 0.7
## 3 3 0.2 0.9
## 4 4 0.1 1.0
ggplot(df, aes(x, F.x)) +
  geom_point(color = "black", size = 3) +
  geom_step(direction = "hv", col = "purple") +
  labs(title = "Función de Distribución F(x)", x = "x", y = "F(x)")

#B) Encontrar F(2.5)

#P(X ≤ 2) = f(1) + f(2)
F_2.5 <- sum(f.x[x <= 2])
cat("F(2.5) =", F_2.5)
## F(2.5) = 0.7

EJERCICIO 4

  1. Suponga que X tiene la siguiente función de densidad dada abajo
  1. Dibuje la función de densidad (debe encontrar el valor de k)
  2. Encuentre F(x)
  3. Encuentre P(X < 0.4 | X < 0.8)

\[f(x) = \begin{cases} {kx(1-x)}, & 0 \leq x \leq 1 \\ 0, & \text{en otro caso} \end{cases}\]

#Calcular la constante k

f <- function(x){
  if (0 < x & x < 1){
    return(x*(1 - x))
  } else
    return (0)
}

area <- integrate(function(x) x*(1 - x), lower = 0, upper = 1)$value
k <- 1/area

cat("El valor de k es:", k, "\n")
## El valor de k es: 6
#A) Dibuje la función de densidad
#Definir la función de densidad
f.x <- function(x){
  if (x >= 0 & x <= 1){
    return(k*x * (1 - x))
  } else {
    return(0)
  }
}

# Crear datos para graficar
x <- seq(0, 1, 0.001)
y <- sapply(x, f.x)

df3 <- data.frame(x, y)

library(ggplot2)
ggplot(df3, aes(x, y)) +
  geom_line(col = "darkblue") +
  labs(title = "Función de densidad de X", x = "x", y = "f(x)")

#B) Encuentre F(x)
#Definir la función de distribución acumulativa

F.x <- function(x) {
  if (x < 0) {
    return(0)
  } else if (x > 1) {
    return(1)
  } else {
    integrate(function(t) k * t * (1 - t), lower = 0, upper = x)$value
  }
}

#C) Encuentre P(X < 0.4 | X < 0.8)
#Probabilidad condicional

p_condicional <- F.x(0.4) / F.x(0.8)

cat("La P(X < 0.4 | X < 0.8) es:", round(p_condicional, 3))
## La P(X < 0.4 | X < 0.8) es: 0.393

EJERCICIO 5

  1. El tiempo de falla (en cientos de horas) para un transistor es una variable aleatoria Y con función de distribución dada abajo.
  1. Dibuje F(y)
  2. Dibuje f(y)
  3. Encuentre la probabilidad de que el transistor opere durante al menos 200 horas.

\[ f(y) = \begin{cases} 0, & y < 0 \\ 1 - e^{-y^2}, & y \geq 0 \end{cases} \]

#A) Dibujar F(y)

F.y <- function(y){
  ifelse(y < 0, 0, 1 - exp(-y^2))
}

library(ggplot2)

y <- seq(-1, 3, 0.01)
Fy <- F.y(y)
df <- data.frame(y = y, F = Fy)

ggplot(df, aes(x = y, y = F)) +
  geom_line(color = "blue", size = 1.2) +
  labs(title = "Función de Distribución F(y)",
       x = "y (cientos de horas)",
       y = "F(y)")
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

#B) Dibujar f(y)

#Definimos F(y) como expresión simbólica
Fy_simb <- expression(1 - exp(-y^2))

#Derivamos con respecto a y
F_deriv <- D(Fy_simb, "y"); F_deriv
## exp(-y^2) * (2 * y)
f.y <- function(y){
  ifelse(y < 0, 0, 2*y*exp(-y^2))
}

fy <- f.y(y)
df5 <- data.frame(y = y, f = fy)

ggplot(df5, aes(x = y, y = f)) +
  geom_line(color = "darkblue", size = 1.2) +
  labs(title = "Función de Densidad f(y)",
       x = "y (cientos de horas)",
       y = "f(y)")

#c)Encuentre la probabilidad de que el transistor opere durante al menos 200 horas.

P_2_o_mas <- 1 - F.y(2)

cat("La probabilidad de que el transistor dure al menos 200 horas es:", P_2_o_mas)
## La probabilidad de que el transistor dure al menos 200 horas es: 0.01831564

EJERCICIO 6

  1. Sea X una variable aleatoria con la función de densidad dada.
  1. Encuentre F(x) y dibújela.
  2. Encuentre su varianza.

\[ f(x) = \begin{cases} \frac{3}{2}x^2 + x, & 0 < x < 1 \\ 0, & \text{en otro caso} \end{cases} \]

#A) Encuentrar F(x)
# Calcular F(x) integrando la función desde 0 hasta x a mano.

F.x <- function(x) {
  ifelse(x <= 0, 0,
         ifelse(x < 1, (1/2)*x^4 + (1/2)*x^2, 1))
}

# Crear valores de x y graficar
x <- seq(-0.2, 1.2, by = 0.01)
Fx <- F.x(x)

#Gráfica de F(x)
plot(x, Fx, type = "l", col = "blue", lwd = 2,
     main = "Función de Distribución F(x)",
     xlab = "x", ylab = "F(x)")
abline(h = 1, col = "orange", lty = 2)
abline(h = 0, col = "red", lty = 2)

#B) La varianza 
f.x <- function(x){
  ifelse(x >= 0 & x <= 1, (3/2)*x^2 + x, 0)
}

EX <- integrate(function(x) x * f.x(x), 0, 1)$value

EX2 <- integrate(function(x) x^2 * f.x(x), 0, 1)$value

varianza <- EX2 - EX^2
cat("La varianza es:", varianza)
## La varianza es: 0.04826389