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
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
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)
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
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
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