library(ggplot2)
library(flextable)
library(DiagrammeR)
library(dplyr)

Primera pregunta

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.
library(flextable)
library(officer)

p.1 <- 0.01 # Probabilidad de que se preesente enfermedad 1que 

p.2 <- 0.005 
p.3 <- 0.02 


p.H_1 <- 0.90 #probabilidades de desarrollar el conjunto de síntomas H, dada LA enfermedad 1

p.H_2 <- 0.95 
p.H_3 <- 0.75 

p.Hy1 <- p.1 * p.H_1#tiene sintomas y enfermedad 1
p.Hy2 <- p.2 * p.H_2
p.Hy3 <- p.3 * p.H_3

p.H <- p.Hy1 + p.Hy2 + p.Hy3


tabla1 <- data.frame(
  . = c("Enferma", "No enferma", "Total"),
  I1 = c(p.Hy1, p.1 - p.Hy1, p.1),
  I2 = c(p.Hy2, p.2 - p.Hy2, p.2),
  I3 = c(p.Hy3, p.3 - p.Hy3, p.3),
  Total = c(p.H, 1 - p.H, 1)
)
#personalización de mi tabla:
tabla1_ft <- flextable(tabla1) |>
  colformat_num(j = c("I1","I2","I3","Total"), digits = 3) |>      # este lo uso para redondear
  bold(part = "header") |>                                         # Negrita
  bg(part = "header", bg = "#DCE6F1") |>                           # para que el fondo sea azul 
  color(part = "header", color = "black") |>                       # letras negras en encabezado
  align(align = "center", part = "all") |>                         # para que todo quede centrado
  border_outer(border = fp_border(color = "blue", width = 2)) |>   # para borde exterior
  border_inner_v(border = fp_border(color = "blue", width = 1)) |> # para bordes internos 
  border_inner_h(border = fp_border(color = "blue", width = 1))    # para borde interno horiz

tabla1_ft

.

I1

I2

I3

Total

Enferma

0.009

0.00475

0.015

0.02875

No enferma

0.001

0.00025

0.005

0.97125

Total

0.010

0.00500

0.020

1.00000

  1. Suponiendo que una persona enferma presenta los síntomas, H, ¿Cuál es la probabilidad de que la persona tenga la enfermedad I1? esta es la probabilidad condicional de que la persona tenga la enfermedad 1 dado que tiene sintomas H, entonces se calcula con:
# P(1|H) = P(1 ∩ H) / P(H)
b <- p.Hy1 / p.H
cat("b) =", b, "\n")
## b) = 0.3130435

Segunda pregunta

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)

Esta es una variable discreta, por lo tanto su gráfica es:

grafica de funcion de probabilidad

x <- c(1, 2, 3, 4)
fx <- c(0.4, 0.3, 0.2, 0.1)

Fx <- cumsum(fx)


tabla3 <- data.frame(x, fx, Fx)
graf1 <- ggplot(tabla3, aes(x = x,y = fx)) +
  geom_point(size = 3,col = "purple") +
  geom_segment(aes(x=x, xend=x, y = 0, yend = fx),linetype ="dashed", col = "purple")
  
graf1

\[ F(X) = \begin{cases} 0 & \text{si } x < 1, \\ 0.4 & \text{si } 1 \le x < 2, \\ 0.7 & \text{si } 2 \le x < 3, \\ 0.9 & \text{si } 3 \le x < 4, \\ 1 & \text{si } x \ge 4 \end{cases} \]

Tercer pregunta

Suponga que X tiene la función de densidad dada abajo a. Dibuje la función de densidad (debe encontrar el valor de k) b. Dibuje F(x) c. Encuentre P( 0.4 < X < 0.8) redondeado a 3 decimales. \[ f(x) = \begin{cases} \ {KX(1 - X)}, & 0 < x < 1, \\ 0, & \text{en otro caso.} \end{cases} \]

Para encontrar el valor de k tenemos en cuenta que la integral de menos infinito a infinito de la función de densidad es igual a 1, en este caso es des de 0 a 1. el valor de k lo encontré haciendo la integral a mano porque me salia error en la función, me dió que es iguala 6.

f2 <- function(x) {
  ifelse(x > 0 & x < 1, (6 * x) * (1 - x))
}
area_total <- integrate(f2, 0, 1)$value

cat("a) Área total =", round(area_total, 4), "\n")
## a) Área total = 1

para poder hacer grafica defino así la función:

fx <- function(x){(6*x)*(1-x)}
a <- integrate(fx,lower = 0, upper = 1)$value
a
## [1] 1

grafica de función de densidad y el área bajo la curva

x. <- seq(-1,2,by = 0.001)
plot(x., fx(x.),main="Gráfica de la función de densidad",col="brown",
     type = "l")

tb <- data.frame(x.,fx(x.))
tb1 <- subset(tb,0<x.& x.<1)
gr5 <- ggplot(tb,aes(x = x.,y = fx(x.)))+
  geom_line(col="purple")
gr5

Ahora se grafica la funcion de probabilidad

F <- function(x) {
  ifelse(x < 0, 0,
         ifelse(x > 1, 1,
                3*x^2 - 2*x^3))
}

# Probabilidad P(0.4 < X < 0.8)
Fx_04 <- F(0.4)
Fx_08 <- F(0.8)
prob_04_08 <- Fx_08 - Fx_04
cat("P(0.4 < X < 0.8) =", round(prob_04_08, 3), "\n\n")
## P(0.4 < X < 0.8) = 0.544

Cuarta pregunta

Suponga que un distribuidor de joyería antigua está interesado en comprar un collar de oro para el que tiene 0.22 de probabilidades de venderlo con $250 de utilidad; 0.36 de venderlo con $150 de utilidad; 0.28 de venderlo al costo y 0.14 de venderlo con una pérdida de $150. ¿Cuál es la desviación estándar de la utilidad?

x<-c(250,150,0,-150)
p<-c(0.22,0.36, 0.28,0.14)
E<-sum(x*p)
E
## [1] 88
varianza<-sum(p*(x-E)^2)
varianza
## [1] 17256
desest<-sqrt(varianza)
desest
## [1] 131.3621

Quinta pregunta

Calcule la proporción X de personas que se podría esperar que respondieran a cierta encuesta que se envía por correo, si X tiene la función de densidad mostrada. Dibuje la función de densidad

# Definición de la densidad
f<-function(x) {
  ifelse(x > 0 & x < 1, 2*(x + 2)/5, 0)
}

# Calcular valor esperado E[X]
mean_X_num <- integrate(function(x) x * (2*(x+2)/5), lower = 0, upper = 1)$value
cat("E[X] =", mean_X_num, "\n")
## E[X] = 0.5333333
df <- tibble(x = seq(0, 1, length.out = 1000)) %>%
  mutate(fx = f(x))

ggplot(df, aes(x = x, y = fx)) +
  geom_line(color = "blue", linewidth = 1) +
  geom_ribbon(aes(ymin = 0, ymax = fx),
              fill = "green", alpha = 0.7) +
  labs(
    title = expression(Densidad~f(x) == frac(2*(x+2),5)~"para"~0 < x~"< 1"),
    x = "x",
    y = "f(x)"
  ) +
  theme_minimal()

Sexta pregunta

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 <- function(y) ifelse(y < 0, 0, 1 - exp(-y^2))
f <- function(y) ifelse(y < 0, 0, 2*y * exp(-y^2))

# Valor pedido (200 horas -> y = 2)
prob_at_least_200 <- 1 - F(2)   
cat("P(Y >= 2) =", prob_at_least_200, "\n")
## P(Y >= 2) = 0.01831564
ys <- seq(0, 4, length.out = 400)
df <- data.frame(y = ys, F = F(ys), f = f(ys))

# Gráfico F(y)
ggplot(df, aes(x = y, y = F)) +
  geom_line(color = "green", size = 1) +
  labs(title = "Función de distribución F(y)", x = "y (cientos de horas)", y = "F(y)") +
  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.