#Parcial 2
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?
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
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
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()
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()
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.
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()
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
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
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()
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()
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)