Solución caso 2 - Probabilidad e Inferencia Estadística

Parte 1


La empresa XYZ busca evaluar riesgos financieros asociados con su cartera de clientes, bajo condiciones de incertidumbre. Desean utilizar inferencia estadística para tomar decisiones fundamentadas sobre políticas de crédito y estrategias de mitigación de riesgos.

Ejercicio 1

Una cartera de clientes presenta un puntaje de riesgo crediticio normalmente distribuido con una media de 600 puntos y una desviación estándar de 50 puntos.

    1. ¿Cuál es la probabilidad de que un cliente tenga un puntaje menor a 550?

A continuación se presenta el cálculo de la distribución binomial.

set.seed(123)
mean <- 600
ds <- 50
prob_norm<-pnorm(550,mean=mean,ds)*100
cat("P(X <= 550) en la distribución normal:", prob_norm,"%\n")
P(X <= 550) en la distribución normal: 15.86553 %

De acuerdo el resultado obtenido el 15,87% es la probabilidad de que un cliente tenga un puntaje menor a 550.


    1. ¿Qué porcentaje de clientes tiene puntajes entre 580 y 620?
prob_norm2 <- pnorm(580, mean = mean, sd = ds)  
prob_norm3 <- pnorm(620, mean = mean, sd = ds)  

probabilidad_entre_580_620 <- (prob_norm3 - prob_norm2)*100
paste0(round(probabilidad_entre_580_620, 4), "%")
[1] "31.0843%"

De acuerdo el resultado obtenido el 31,0843% de los clientes tiene puntaje entre 580 y 620.


    1. El 5% de los clientes con mayores puntajes recibe beneficios adicionales. ¿A partir de qué puntaje se otorgan estos beneficios?
Puntaje_mínimo <- qnorm(0.95, mean = mean, sd = ds)
Puntaje_mínimo
[1] 682.2427

De acuerdo el resultado obtenido a partir del puntaje 682,2427 los clientes reciben beneficios adicionales


Ejercicio 2

Se estima que la probabilidad de que un cliente no pague su crédito es del 15%. En una muestra de 20 clientes:

    1. ¿Cuál es la probabilidad de que exactamente 3 clientes incumplan?
n <- 20 
p <- 0.15 

Clientes_3_incumplen <- dbinom(3, size = n, prob = p)*100
paste0(round(Clientes_3_incumplen, 2), "%")
[1] "24.28%"

El 24,28% es la probabilidad de que exactamente 3 clientes no paguen su crédito.


    1. ¿Cuál es la probabilidad de que al menos 5 clientes incumplan?
Que_al_menos_5_incumplan <- (1 - pbinom(4, size = n, prob = p))*100
paste0(round(Que_al_menos_5_incumplan, 3), "%")
[1] "17.015%"

De acuerdo con el resultado, la probabilidad de que al menos 5 clientes incumplan es del 17,015%


    1. ¿Qué número máximo de clientes incumplidores se esperaría en el 90% de los casos?
Incumplidos_90 <- qbinom(0.90, size = n, prob = p)
Incumplidos_90
[1] 5

El número máximo de clientes incumplidores sería de 5 para el 90% de los casos.


Ejercicio 3

XYZ quiere estimar el promedio de pagos atrasados en la cartera. En una muestra de 50 clientes, el promedio observado fue de 3 días con una desviación estándar de 1.5 días:

    1. Construye un intervalo de confianza del 95% para el promedio de días de pago atrasados

A continuación se presenta los datos generados para hallar el intervalo de confianza.

Muestra_clientes <- 50 
media_muestral1 <- 3  
desviacion_estandar1 <- 1.5  
nivel_confianza_95 <- 0.95
nivel_confianza_99 <- 0.99
media_hipotetica1 <- 2.5
set.seed(123) 

datos<-rnorm(Muestra_clientes,media_muestral1,desviacion_estandar1)

datos
 [1] 2.15928653 2.65473377 5.33806247 3.10576259 3.19393160 5.57259748
 [7] 3.69137431 1.10240815 1.96972072 2.33150704 4.83612270 3.53972074
[13] 3.60115718 3.16602407 2.16623830 5.68036971 3.74677572 0.05007427
[19] 4.05203385 2.29081289 1.39826444 2.67303763 1.46099333 1.90666316
[25] 2.06244110 0.46996003 4.25668057 3.23005968 1.29279459 4.88072238
[31] 3.63969633 2.55739278 4.34268849 4.31720023 4.23237162 4.03296038
[37] 3.83087648 2.90713243 2.54105600 2.42929350 1.95793953 2.68812408
[43] 1.10190547 6.25343395 4.81194300 1.31533713 2.39567275 2.30001697
[49] 4.16994768 2.87494640

Intervalo de confianza

ci <- t.test(datos)$conf.int
ci
[1] 2.656911 3.446299
attr(,"conf.level")
[1] 0.95

Cómo se observa anteriormente el intervalo de confianza del 95% para el promedio de días de pago atrasados: El intervalo de confianza está entre 2,66 días y 3.45 días.

    1. ¿Podría la empresa afirmar con un 99% de confianza que el promedio real es mayor a 2.5 días?
ci2 <- t.test(datos,conf.level = nivel_confianza_99,mu=media_hipotetica1,alternative = "greater")
ci2

    One Sample t-test

data:  datos
t = 2.8085, df = 49, p-value = 0.003564
alternative hypothesis: true mean is greater than 2.5
99 percent confidence interval:
 2.579269      Inf
sample estimates:
mean of x 
 3.051605 

Dado que el p-valor es menor que el 1%, la empresa puede afirmar con un 99% de confianza que el promedio real es mayor a 2.5 días.

Ejercicio 4

La empresa XYZ quiere evaluar si el promedio de días de pago atrasado en su cartera de clientes supera los 5 días, ya que esto indicaría un aumento significativo en el riesgo financiero:

Muestra_clientes2 <- 40 
media_muestral2 <- 5.4  
desviacion_estandar2 <- 1.2  
media_hipotetica2 <- 5
nivel_significancia2 <- 0.05
set.seed(123) 


intervalo_de_confianza=rnorm(Muestra_clientes2,media_muestral2,desviacion_estandar2)

intervalo_de_confianza
 [1] 4.727429 5.123787 7.270450 5.484610 5.555145 7.458078 5.953099 3.881927
 [9] 4.575777 4.865206 6.868898 5.831777 5.880926 5.532819 4.732991 7.544296
[17] 5.997421 3.040059 6.241627 4.832650 4.118612 5.138430 4.168795 4.525331
[25] 4.649953 3.375968 6.405344 5.584048 4.034236 6.904578 5.911757 5.045914
[33] 6.474151 6.453760 6.385897 6.226368 6.064701 5.325706 5.032845 4.943435
ci3 <- t.test(intervalo_de_confianza)$conf.int 
ci3
[1] 5.109669 5.798771
attr(,"conf.level")
[1] 0.95
ci4 <- t.test(intervalo_de_confianza,conf.level = 0.95,mu=media_hipotetica2,alternative = "greater")
ci4

    One Sample t-test

data:  intervalo_de_confianza
t = 2.6665, df = 39, p-value = 0.005549
alternative hypothesis: true mean is greater than 5
95 percent confidence interval:
 5.167214      Inf
sample estimates:
mean of x 
  5.45422 

Dado que el p-valor es mayor que el 5%, la empresa puede afirmar con un 95% de confianza que el promedio de días de pago atrasado en su cartera de clientes supera los 5 días.


Parte 2


En esta actividad, se busca que los estudiantes descarguen los precios de cierre de una acción de su preferencia, analicen su rentabilidad y apliquen conceptos de probabilidad, intervalos de confianza y pruebas de hipótesis.

Serie Temporal

accion <- getSymbols('META', src = 'yahoo', auto.assign = FALSE, from = '2010-01-01')
precios_cierre <- accion$META.Close
plot(precios_cierre, main = 'Precios de Cierre de Meta (Facebook)', col = 'blue', lwd = 2)

Observamos en la gráfica anterior la evolución de los precios de cierre de la acción de Meta (antes Facebook) desde su salida a bolsa en mayo de 2012 hasta noviembre de 2024.

En general, los precios de las acciones han mostrado una tendencia alcista a lo largo del tiempo. Aunque hubo periodos de caídas significativas, el precio ha crecido de manera consistente desde su punto de partida en 2012.

A partir de 2013, comienza una subida constante que refleja el crecimiento de la empresa y el interés de los inversionistas hasta el 2021.

En 2022, hay una caída muy notable, probablemente debido a desafíos económicos globales (como inflación y tasas de interés más altas) producto de la post-pandemia y cuestiones específicas de la empresa (como cambios en su modelo de negocio hacia el metaverso).

El precio llegó a mínimos cercanos a $100.

Desde finales de 2022 hasta 2024, el precio experimentó una recuperación espectacular, alcanzando valores superiores a $500.

Rentabilidad

rentabilidad <- diff(log(precios_cierre))
plot(rentabilidad, main = 'Rentabilidad Diaria', col = 'green', lwd = 2)

El gráfico de rentabilidad diaria de las acciones de Meta (Facebook) revela una volatilidad significativa, caracterizada por fluctuaciones importantes hacia arriba y hacia abajo. Los picos negativos destacan días de caídas pronunciadas, mientras que los picos positivos reflejan aumentos considerables en el precio. Esto es típico de un mercado volátil, donde factores como resultados financieros, cambios en la percepción del mercado y eventos externos pueden tener un impacto sustancial.

Sin embargo, también se observan períodos de estabilidad relativa, con rentabilidades cercanas a cero. A largo plazo, la acción de Meta exhibe un comportamiento característico de alta volatilidad, con grandes movimientos a corto plazo.

Análisis de Probabilidad

  • Vamos a suponer que la rentabilidad diaria sigue una distribución normal.
  • Ajustamos una curva normal a la rentabilidad:
hist(rentabilidad, breaks = 50, probability = TRUE, main = "Distribucion de Rentabilidad", col = "gray")
curve(dnorm(x, mean = mean(rentabilidad, na.rm = TRUE), sd = sd(rentabilidad, na.rm = TRUE)), 
      col = "red", lwd = 2, add = TRUE)

La distribución es simétrica y tiene una forma similar a una campana, lo que indica que sigue una distribución normal o se aproxima a ella.

A continuación se realiza el cálculo de la probabilidad de que la rentabilidad diaria sea menor al promedio:

media <- mean(rentabilidad, na.rm = TRUE)
desviacion <- sd(rentabilidad, na.rm = TRUE)

media
[1] 0.0008560932
desviacion
[1] 0.0251822
probabilidad <- pnorm(media, mean = media, sd = desviacion)

probabilidad
[1] 0.5

Dado que la distribución está centrada alrededor de 0, podemos inferir que la media de la rentabilidad es cercana a cero. Por lo que, se puede interpretar que sí es menor a 0, pues el 50% equivale de menos -1 a 0.

Intervalos de Confianza

A continuación, se presenta el intervalo de confianza al 95% para la media de la rentabilidad diaria:

data <- rentabilidad$META.Close

ci5 <- t.test(data)$conf.int  
cat("Intervalo de confianza usando funcion:", ci5[1], "a", ci5[2], "
")
Intervalo de confianza usando funcion: -2.406466e-05 a 0.001736251 

El intervalo de confianza al 95% para la media de la rentabilidad diaria está de -0,00003 a 0,0017.

Prueba de Hipótesis

A continuación, se presenta la prueba de hipótesis para la media de rentabilidad (H0: mu = 0):

Hipotesis_rentabilidad<- t.test(data, mu = 0)
Hipotesis_rentabilidad

    One Sample t-test

data:  data
t = 1.9071, df = 3146, p-value = 0.0566
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
 -2.406466e-05  1.736251e-03
sample estimates:
   mean of x 
0.0008560932 

Dado que el p-valor es mayor al 5%, rechazo la hipótesis nula, entonces la media = 0. Por lo tanto, el promedio de la rentabilidad diaria es igual a 0 con un nivel de significancia del 5%.