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.
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.
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.
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.
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
Se estima que la probabilidad de que un cliente no pague su crédito
es del 15%. En una muestra de 20 clientes:
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.
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%
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.
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:
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.
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.
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.
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.
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 <- 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.
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.
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.
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%.