#Parcial 2

Ejercicio 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?

Solución

  1. Se crea el dataframe con los datos.
enfermedades <- data.frame(
  Enfermedad = c("I1", "I2", "I3"),
  P_I = c(0.01, 0.005, 0.02),
  P_H_dado_I = c(0.90, 0.95, 0.75)
)

print(enfermedades)
##   Enfermedad   P_I P_H_dado_I
## 1         I1 0.010       0.90
## 2         I2 0.005       0.95
## 3         I3 0.020       0.75
  1. Se calcula la probabilidad usando el teorema de Bayes.
P_H <- sum(enfermedades$P_I * enfermedades$P_H_dado_I)

P_I1_dado_H <- (enfermedades$P_H_dado_I[1] * enfermedades$P_I[1]) / P_H

cat("Probabilidad total de presentar los síntomas H (P(H)):", round(P_H, 3), "\n")
## Probabilidad total de presentar los síntomas H (P(H)): 0.029
cat("Probabilidad de tener la enfermedad I1 dado que presenta los síntomas (P(I1 | H)):", 
    round(P_I1_dado_H, 3), "\n")
## Probabilidad de tener la enfermedad I1 dado que presenta los síntomas (P(I1 | H)): 0.313

Ejercicio 2

  1. Escribimos los datos.
x <- c(1, 2, 3, 4)
f_x <- c(0.4, 0.3, 0.2, 0.1)

Creamos la tabla.

tabla <- data.frame(x, f_x)
print(tabla)
##   x f_x
## 1 1 0.4
## 2 2 0.3
## 3 3 0.2
## 4 4 0.1

Insertamos la libreria ggplot2 para hacer la gráfica

library(ggplot2)

ggplot(tabla, aes(x = factor(x), y = f_x)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  labs(title = "Función de probabilidad f(x)",
       x = "x", y = "f(x)") +
  theme_minimal()

  1. Calculamos la función de distribución F(x)
F_x <- cumsum(f_x)
tabla$F_x <- F_x
print(tabla)
##   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

calculamos F(2.5) hasta el último punto que hace parte del dominio, en este caso, F(2)

F_2_5 <- sum(f_x[x <= 2])

cat("F(2.5) =", F_2_5, "\n")
## F(2.5) = 0.7

Y por ultimo graficamos F(x)

ggplot(tabla, aes(x = x, y = F_x)) +
  geom_step(direction = "hv", color = "darkred", linewidth = 1.2) +
  geom_point(size = 3, color = "darkred") +
  labs(title = "Función de distribución acumulada F(x)",
       x = "x", y = "F(x)") +
  theme_minimal()

Ejercicio 3

  1. Definimos la función f(x), en este caso, k = 6 para que F(x) sea igual a 1 si x<1
k <- 6


f <- function(x) {
  ifelse(x >= 0 & x <= 1, k * x * (1 - x), 0)
}

hacemos el gráfico de la función de densidad

x_vals <- seq(0, 1, length.out = 1000)
f_vals <- f(x_vals)


ggplot(data.frame(x = x_vals, y = f_vals), aes(x, y)) +
  geom_line(color = "blue", size = 1.2) +
  labs(title = "Función de Densidad f(x) = 6x(1-x)",
       x = "x", y = "f(x)")
## 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.

  1. calculamos la función de distribución
F <- function(x) {
  ifelse(x < 0, 0,
         ifelse(x > 1, 1, 3*x^2 - 2*x^3))
}

F_vals <- F(x_vals)

graficamos la función de distribución

ggplot(data.frame(x = x_vals, y = F_vals), aes(x, y)) +
  geom_line(color = "darkgreen", size = 1.2) +
  labs(title = "Función de Distribución Acumulada F(x)",
       x = "x", y = "F(x)") +
  theme_minimal()

  1. calculamos la probabilidad de P(0-4<x<0.8)
P <- F(0.8) - F(0.4)
cat("P(0.4 < X < 0.8) =", round(P, 3))
## P(0.4 < X < 0.8) = 0.544

ejercicio 4

datos:

x <- c(250, 150, 0, -150)
p <- c(0.22, 0.36, 0.28, 0.14)

verificamos que sumen uno

sum(p)
## [1] 1
  1. calculamos la media
media <- sum(x * p)

calculamos E[x^2]

E_x2 <- sum((x^2) * p)

calculamos varianza y desviación estandar

varianza <- E_x2 - media^2
desviacion <- sqrt(varianza)

Mostramos los resultados

cat("Media (E[X]) =", round(media, 2), "\n")
## Media (E[X]) = 88
cat("Varianza =", round(varianza, 2), "\n")
## Varianza = 17256
cat("Desviación estándar =", round(desviacion, 2), "\n")
## Desviación estándar = 131.36

graficamos la distribución

df <- data.frame(Utilidad = factor(x), Probabilidad = p)

ggplot(df, aes(x = Utilidad, y = Probabilidad)) +
  geom_col(fill = "steelblue") +
  geom_text(aes(label = Probabilidad), vjust = -0.5) +
  labs(title = "Distribución de Probabilidad de la Utilidad",
       x = "Utilidad ($)", y = "Probabilidad") +
  theme_minimal()

Ejercicio 5

definimos la función de densidad

f <- function(x) {
  ifelse(x > 0 & x < 1, (2 * (x + 2)) / 5, 0)
}

calculamos el valor esperado

E_X <- integrate(function(x) x * f(x), 0, 1)$value
cat("Valor esperado E[X] =", round(E_X, 4), "\n")
## Valor esperado E[X] = 0.5333

graficamos la función de densidad

x_vals <- seq(0, 1, length.out = 1000)
f_vals <- f(x_vals)


ggplot(data.frame(x = x_vals, y = f_vals), aes(x, y)) +
  geom_line(color = "darkred", size = 1.3) +
  geom_area(fill = "pink", alpha = 0.3) +
  labs(title = "Función de Densidad f(x) = 2(x + 2)/5",
       x = "x", y = "f(x)") +
  theme_minimal()

Ejercicio 6

Definimos f(y) y F(y)

F <- function(y) ifelse(y < 0, 0, 1 - exp(- y^2))
f <- function(y) ifelse(y < 0, 0, 2 * y * exp(- y^2))

Calculamos la probabilidad de P(>= 2)

prob_ge_2 <- exp(-4)   # e^{-4}
prob_ge_2
## [1] 0.01831564
cat("P(Y >= 2) = e^{-4} =", round(prob_ge_2, 6), "\n")
## P(Y >= 2) = e^{-4} = 0.018316

Creamos el gráfico de distribución

y_vals <- seq(0, 5, by = 0.01)   #
df <- data.frame(y = y_vals, f = f(y_vals), F = F(y_vals))


pF <- ggplot(df, aes(x = y, y = F)) +
  geom_line(size = 1) +
  labs(title = "Función de distribución acumulada F(y)",
       x = "y (cientos de horas)", y = "F(y)") +
  theme_minimal()
print(pF)

Creamos el gráfico de densidad

pF1 <- ggplot(df, aes(x = y, y = f)) +
  geom_line(size = 1, color = "darkblue") +
  geom_area(data = subset(df, y >= 2), aes(x = y, y = f), fill = "steelblue", alpha = 0.4) +
  labs(title = "Función de densidad f(y) = 2y e^{-y^2}",
       subtitle = paste0("Área sombreada = P(Y >= 2) = ", round(prob_ge_2, 6)),
       x = "y (cientos de horas)", y = "f(y)") +
  theme_minimal()
print(pF1)