Punto 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 a. Elabore un dataframe que resuma la información. b. Suponiendo que una persona enferma presenta los síntomas, H, ¿Cuál es la probabilidad de que la persona tenga la enfermedad I1?

library(knitr)
enfermedades <- c("I1", "I2", "I3")
prob_enfermedad <- c(0.01, 0.005, 0.02)
prob_sintomas_dado_enf <- c(0.90, 0.95, 0.75)

df <- data.frame(
  Enfermedad = enfermedades,
  P_Enfermedad = prob_enfermedad,
  P_H_dado_Enfermedad = prob_sintomas_dado_enf
)

kable(df)
Enfermedad P_Enfermedad P_H_dado_Enfermedad
I1 0.010 0.90
I2 0.005 0.95
I3 0.020 0.75
p_I1 = 0.01
p_I2 = 0.005
p_I3 = 0.02

p_H_dado_I1 = 0.9
p_H_dado_I2 = 0.95
p_H_dado_I3 = 0.75

p_H = p_H_dado_I1*p_I1 + p_H_dado_I2*p_I2 + p_H_dado_I3*p_I3

p_I1_dado_H = p_H_dado_I1*p_I1/p_H

cat("La probabilidad de que una persona tenga la enfermedad I2 dado H es: ",p_I1_dado_H)
## La probabilidad de que una persona tenga la enfermedad I2 dado H es:  0.3130435

Punto 2

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. a. Elabore un dataframe que resuma la información del problema. b. 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.

sintomas <- c("Solo A", "Solo B", "Ambos (A y B)", "Ninguno")
prob <- c(0.20, 0.30, 0.10, 0.40)
df2 <- data.frame(
  Sintoma = sintomas,
  Probabilidad = prob
)
kable(df2)
Sintoma Probabilidad
Solo A 0.2
Solo B 0.3
Ambos (A y B) 0.1
Ninguno 0.4
P_SoloB <- 0.30
P_AyB <- 0.10

P_B <- P_SoloB + P_AyB
P_AyB_dado_B <- P_AyB / P_B

cat("La probabilidad de tener ambos síntomas dado que tiene B es:", round(P_AyB_dado_B, 4), "\n")
## La probabilidad de tener ambos síntomas dado que tiene B es: 0.25

Punto 3

Sea X una variable aleatoria con f(x) dada en la siguiente tabla. a. Dibuje la función de probabilidad. b. Obtenga la función de distribución, F(x) y, con base en ella, encuentre F(2.5)

\[ \begin{array}{c|cccc} x & 1 & 2 & 3 & 4 \\ \hline f(x) & 0.4 & 0.3 & 0.2 & 0.1 \\ \end{array} \]

library(ggplot2)
x <- 1:4
fx <- c(0.4, 0.3, 0.2, 0.1)
df3 <- data.frame(x = x, fx = fx)

plot_a <- ggplot(df3, aes(x = x, y = fx)) +
  geom_point(color = "blue") +
  geom_segment(x=x,xend=x,y=0,yend=fx,linetype = "dashed") +
  geom_text(aes(label = fx), vjust = -0.5) +
  labs(
    title = "Función de Probabilidad de X",
    x = "x",
    y = "f(x)"
  ) +
  ylim(0, max(fx) + 0.1) +
  theme_minimal()

print(plot_a)

df3$Fx <- cumsum(df3$fx)
print(df3)
##   x  fx  Fx
## 1 1 0.4 0.4
## 2 2 0.3 0.7
## 3 3 0.2 0.9
## 4 4 0.1 1.0
F_2_5 <- df3$Fx[df3$x == 2]
cat("F(2.5) =", F_2_5, "\n")
## F(2.5) = 0.7
plot_b <- ggplot(df3, aes(x = x, y = Fx)) +
  geom_point(aes(x=x+1,y=Fx),size = 2, color = "blue", fill = "white", shape = 21, stroke = 1.5) +
  geom_point(size = 2, color = "blue",) +
  geom_segment(x=df3$x+1,xend=df3$x,y=df3$Fx,yend=df3$Fx,color="navy") +
  labs(
    title = "Función de Distribución Acumulada F(x)",
    x = "x",
    y = "F(x)"
  ) +
  theme_minimal()


print(plot_b)

Punto 4

Suponga que X tiene la siguiente función de densidad dada abajo a. Dibuje la función de densidad (debe encontrar el valor de k) b. Encuentre F(x) c. 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} \]

f_x <- function(x) {  x * (1 - x) }

k = round(integrate(f_x,0,1)$value^-1)

g_x <- function(x) {  k*f_x(x) }

x_vals <- seq(0, 1, length.out = 200)
df4 <- data.frame(x = x_vals, fx = g_x(x_vals))

ggplot(df4, aes(x = x, y = fx)) +
  geom_line(color = "navy", linewidth = 0.8) +
  labs(title = "Función de Densidad f(x) = 6x(1-x)",
       x = "x", y = "f(x)") +
  theme_minimal()

F_x <- function(x){
  sapply(x,function(t){
    if(t>=0){
      return(integrate(g_x, lower = 0, upper = t)$value)
    } else {
      return(0)
    }
  })
}

df4$Fx <- F_x(df4$x)
ggplot(df4, aes(x = x, y = Fx)) +
  geom_line(color = "navy", linewidth = 0.8) +
  labs(title = "Función de Distribución F(x)",
       x = "x", y = "F(x)") +
  theme_minimal()

P_Xmenor04 <- F_x(0.4)
P_Xmenor08 <- F_x(0.8)
P_cond <- P_Xmenor04 / P_Xmenor08

cat("P(X < 0.4 | X < 0.8) =", round(P_cond, 4), "\n")
## P(X < 0.4 | X < 0.8) = 0.3929

Punto 5

El tiempo de falla (en cientos de horas) para un transistor es una variable aleatoria Y con función de distribución dada abajo. a. Dibuje F(y) b. Dibuje f(y) c. 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} \]

library("Deriv")
f_x <- function(x){1-exp(-(x^2))} 

f_derivada <- Deriv(f_x,"x")


x_vals <- seq(0,3, length.out = 200)
x_dev = sapply(x_vals, f_derivada)

df5 <- data.frame(x = x_vals, densidad = f_x(x_vals), derivada = x_dev)
  
ggplot(df5, aes(x = x, y = densidad)) +
  geom_line(color = "navy", size = 0.8) +
  labs(title = "Funcion de distribucion Acumulada",
       x = "x", y = "f(x)") +
  theme_minimal()
## 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.

ggplot(df5, aes(x = x, y = derivada)) +
  geom_line(color = "navy", linewidth = 0.8) +
  labs(title =  "Funcion de densidad",
       y = "valor", 
       color = "Función") +
  theme_minimal()

F_200 = 1-f_x(2)

cat("Probabilidad que el transistor funcione por lo menos 200 horas", round(F_200, 4), "\n")
## Probabilidad que el transistor funcione por lo menos 200 horas 0.0183

Punto 6

Sea X una variable aleatoria con la función de densidad dada. a. Encuentre F(x) y dibújela. b. Encuentre su varianza. \[ f(x) = \begin{cases} \frac{3}{2}x^2 + x, & 0 < x < 1 \\ 0, & \text{en otro caso} \end{cases} \]

f_x <- function(x){(3/2)*x^2 + x }

F_x <- function(x){(1/2)*x^3 + (1/2)*x^2  }

x_vals <- seq(0,1, length.out = 200)
df6 <- data.frame(x = x_vals, densidad = f_x(x_vals), acumulada = F_x(x_vals))
  
ggplot(df6, aes(x = x, y = acumulada)) +
  geom_line(color = "navy", linewidth = 0.8) +
  labs(title = "Funcion de distribucion Acumulada",
       x = "x", y = "f(x)") +
  theme_minimal()

g_x <- function(x){x*f_x(x)}
e_x1 <- integrate(g_x,0,1)$value

h_x <- function(x){x^2*f_x(x)}
e_x2 <- integrate(h_x,0,1)$value

v.x1 <- e_x2-e_x1^2

cat("La varianza es: ",round(v.x1,4))
## La varianza es:  0.0483