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.

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.


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

p_menor550 <- pnorm(550, 600, 50 )

cat("Probabilidad de tener un puntaje menor a 550:", p_menor550, "\n")
## Probabilidad de tener un puntaje menor a 550: 0.1586553

Gráfico de Probabilidad Acumulada
# Parametros de la distribucion
media <- 600
desviacion <- 50

# Puntos para el grafico
x <- seq(media - 4 * desviacion, media + 4 * desviacion, length.out = 1000)
y <- dnorm(x, mean = media, sd = desviacion)

# Probabilidad acumulada para X < 550
x_prob <- seq(min(x), 550, length.out = 500)
y_prob <- dnorm(x_prob, mean = media, sd = desviacion)

# Graficar la distribucion
plot(x, y, type = "l", lwd = 2, col = "#d5bcfe", 
     main = "Distribucion Normal",
     xlab = "Puntaje", ylab = "Densidad de Probabilidad")
polygon(c(min(x_prob), x_prob, 550), c(0, y_prob, 0), col = "#b6eea7", border = NA)

# Agregar una linea vertical en x = 550
abline(v = 550, col = "#faada5", lty = 2, lwd = 2)

# Texto explicativo
text(550, 0.005, "550", col = "#faada5", pos = 4)
legend("topright", legend = c("Area = P(X < 550)"), 
       fill = "#b6eea7", border = "black", bty = "n")



b)  ¿Qué porcentaje de clientes tiene puntajes entre 580 y 620?.

p_entre_580_620 <- pnorm(620, 600, 50) - pnorm(580, 600, 50)

cat("Probabilidad de tener un puntaje entre 580 y 620:", p_entre_580_620, "\n")
## Probabilidad de tener un puntaje entre 580 y 620: 0.3108435

Gráfico de Probabilidad Acumulada
# Parámetros de la distribución normal
media1 <- 600
desviacion_estandar1 <- 50

# Rango de la distribución
x <- seq(400, 800, length = 1000)
y <- dnorm(x, mean = media1, sd = desviacion_estandar1)

# Rango para sombrear
x_sombreado <- seq(580, 620, length = 100)
y_sombreado <- dnorm(x_sombreado, mean = media1, sd = desviacion_estandar1)

# Gráfico principal
plot(x, y, type = "l", lwd = 2, col = "#d5bcfe", 
     main = "Distribución Normal", # Nuevo título
     xlab = "Puntaje", ylab = "Densidad")


# Agregar líneas punteadas para 580 y 620
abline(v = 580, col = "#faada5", lty = 2)
abline(v = 620, col = "#faada5", lty = 2)

# Sombrear la región entre 580 y 620
polygon(c(580, x_sombreado, 620), 
        c(0, y_sombreado, 0), 
        col = "#b6eea7", border = NA)


text(567, max(y) * 0.02, "580", col = "#faada5", cex = 1) 
text(633, max(y) * 0.02, "620", col = "#faada5", cex = 1)

# Texto explicativo
legend("topright", legend = c("Area = P(580 ≤ X ≤ 620)"), 
       fill = "#b6eea7", border = "black", bty = "n")



c)  ¿El 5% de los clientes con mayores puntajes recibe beneficios adicionales. ¿A partir de qué puntaje se otorgan estos beneficios?

puntaje_beneficios <- qnorm(0.95, 600 , 50)
cat("Puntaje minimo para recibir beneficios:", puntaje_beneficios, "\n")
## Puntaje minimo para recibir beneficios: 682.2427

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


a)   ¿Cuál es la probabilidad de que exactamente 3 clientes incumplan?

#Parametros
n <- 20           
p <- 0.15

p_exacto_3 <- dbinom(3, n, p)
cat("Probabilidad de que exactamente 3 clientes incumplan:", p_exacto_3, "\n")
## Probabilidad de que exactamente 3 clientes incumplan: 0.2428289

Histograma de la Distribución Binomial
# Parámetros de la distribución binomial
n <- 20           
p <- 0.15

# Calcular la probabilidad para cada valor de x
x <- 0:n
y <- dbinom(x, n, p)

# Graficar el histograma de la distribución binomial
barplot(y, names.arg = x, col = "#b6eea7", main = "Distribución Binomial",
        xlab = "Número de éxitos", ylab = "Probabilidad", border = "black", 
        ylim = c(0, max(y) * 1.1), width = 0.8) 



b)  ¿Cuál es la probabilidad de que al menos 5 clientes incumplan?

palmenos5 <- 1- pbinom(4, n, p)  
cat("Probabilidad de que al menos 5 clientes incumplan:", palmenos5, "\n")
## Probabilidad de que al menos 5 clientes incumplan: 0.1701532


c)  ¿Qué número máximo de clientes incumplidores se esperaría en el 90% de los casos?

num_max_deincum <- qbinom(0.90, n, p)
cat("Numero maximo de clientes incumplidores en el 90% de los casos:", num_max_deincum, "\n")
## Numero maximo de clientes incumplidores en el 90% de los casos: 5

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.


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

set.seed(123)

datacaso <- rnorm(50, mean = 3, sd = 1.5)  # Muestra de tamaño 50

#Intervalo de confianza

cmuestra <- t.test(datacaso, conf.level = 0.95)$conf.int  

cat("intervalo de confianza del 95% para el promedio de días de pago atrasados:", cmuestra[1], "a", cmuestra[2], "\n")
## intervalo de confianza del 95% para el promedio de días de pago atrasados: 2.656911 a 3.446299


b)  ¿Podría la empresa afirmar con un 99% de confianza que el promedio real es mayor a 2.5 días?


  • Hipótesis Nula: El promedio real es igual a 2.5 días
  • Hipótesis Alternativa : El promedio real es mayor a 2.5 días
  • Nivel de significancia (α): Para una confianza del 99%, α=0.01.
# Prueba de hipótesis para la media
# Hipótesis nula: mu = 2.5

mu <- 2.5

# Realizar prueba t
resultado <- t.test(datacaso, mu=mu, conf.level = 0.99, alternative= "greater")
resultado
## 
##  One Sample t-test
## 
## data:  datacaso
## 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
# p-valor
p_valor <- resultado$p.value

cat("El p-valor de la prueba t es:", p_valor, "\n")
## El p-valor de la prueba t es: 0.003564306

El p-valor obtenido (0.003564306) es menor que α=0.01. Por lo tanto, rechazamos la hipótesis nula y concluimos que sí hay suficiente evidencia estadística, con un 99% de confianza, para afirmar que el promedio real es mayor a 2.5 días.




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.

Datos del Problema:
- Muestra aleatoria de 40 clientes.
- Promedio de días de pago atrasado en la muestra = 5.4 días.
- Desviación estándar de la población = 1.2 días.
- Nivel de significancia (α) = 0.05.


  • Hipótesis Nula: Promedio de días de pago atrasado en su cartera de clientes es igual a 5 días
  • Hipótesis Alternativa : Promedio de días de pago atrasado en su cartera de clientes supera los 5 días
  • Nivel de significancia (α): Para una confianza del 95%, α=0.05.
set.seed(123)

datacaso2 <- rnorm(40, mean = 5.4, sd = 1.2)  

# Prueba de hipótesis para la media
# Hipótesis nula: mu = 5

mucaso2 <- 5

resultado2 <- t.test(datacaso2, mu=mucaso2, alternative= "greater")
resultado2
## 
##  One Sample t-test
## 
## data:  datacaso2
## 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
p_valor2 <- resultado2$p.value

cat("El p-valor de la prueba t es:", p_valor2, "\n")
## El p-valor de la prueba t es: 0.005549317

El p-valor obtenido (0.005549317) es menor que α=0.05. Por lo tanto, rechazamos la hipótesis nula y concluimos que sí hay suficiente evidencia estadística, con un 95% de confianza, para afirmar que el promedio de días de pago atrasado en la cartera de clientes de la empresa XYZ, 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.


Tesla, Inc. (TSLA)


Serie Temporal de la Acción TESLA

library(quantmod)
# Descarga de la serie de interés desde Yahoo
accion <- getSymbols('TSLA', src = 'yahoo', auto.assign = FALSE, from = '2015-01-01')
# Extraer precios de cierre
precios_cierre <- accion$TSLA.Close
# Graficar los precios de cierre
plot(precios_cierre, main = 'Precios de Cierre de TSLA', col = '#a1c4fc', lwd = 2)


Rentabilidad diaria de la acción

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


Interpretación del Gráfico


La gráfica muestra la rentabilidad diaria de la acción de TESLA, entre el 2 de enero de 2015 y el 15 de noviembre de 2024.

Observaciones clave:

  1. Comportamiento general:
    • La rentabilidad diaria parece fluctuar alrededor de 0.
    • Las fluctuaciones más pequeñas indican días con variaciones menores en el precio, mientras que las fluctuaciones más grandes representan días de alta volatilidad.
  2. Picos y caídas extremas:
    • Hay días de alta volatilidad (picos positivos y caídas negativas). Estos podrían corresponder a eventos económicos, políticos o específicos del mercado.
    • Algunos períodos, como entre 2019 y 2020, parecen tener mayores oscilaciones negativas. Esto podría estar relacionado con eventos como la pandemia de COVID-19.
  3. Estabilidad relativa:
    • Aunque las fluctuaciones son normales, hay períodos de menor volatilidad, como alrededor de 2022 y mediados de 2023, donde las oscilaciones parecen más controladas.
  4. Tendencia reciente (2024):
    • En la parte final, se observa un aumento en la volatilidad con picos más altos y movimientos más marcados. Esto podría indicar un aumento de la incertidumbre en los mercados financieros.

Interpretación Financiera

  • Volatilidad:Los períodos con más amplitud (positiva o negativa) sugieren mayor riesgo y posibles oportunidades o pérdidas significativas.
  • Riesgo sistémico: Los movimientos extremos podrían estar influenciados por factores macroeconómicos como cambios en tasas de interés, inflación, recesiones o conflictos globales.
  • Perspectiva a largo plazo: Aunque el gráfico no muestra un promedio directo, las oscilaciones alrededor de 0 podrían indicar que las rentabilidades positivas y negativas tienden a compensarse con el tiempo.

Análisis de Probabilidad

Distribución de la Rentabilidad:

hist(rentabilidad, breaks = 50, probability = TRUE, main = "Distribucion de Rentabilidad", col = "#b6eea7")
curve(dnorm(x, mean = mean(rentabilidad, na.rm = TRUE), sd = sd(rentabilidad, na.rm = TRUE)), 
      col = "#d5bcfe", lwd = 2, add = TRUE)

a)  Calcular la probabilidad de que la rentabilidad diaria sea menor al promedio

rentabilidad_tesla <- rentabilidad$TSLA.Close



media_rentTSLA <- mean(rentabilidad_tesla, na.rm = TRUE)
media_rentTSLA
## [1] 0.001242709
desvestandar_TSLA <- sd(rentabilidad_tesla, na.rm = TRUE)
desvestandar_TSLA
## [1] 0.03588246
ptesla <- pnorm(media_rentTSLA, media_rentTSLA, desvestandar_TSLA)
cat("Probabilidad de que la rentabilidad diaria sea menor al promedio es:", ptesla, "\n")
## Probabilidad de que la rentabilidad diaria sea menor al promedio es: 0.5

Intervalos de Confianza


a)  Construye un intervalo de confianza al 95% para la media de la rentabilidad diaria

interv_rentabilidad <- t.test(rentabilidad_tesla)$conf.int  

cat(" El intervalo de confianza al 95% para la media de la rentabilidad diaria es:", interv_rentabilidad[1], "a", interv_rentabilidad[2], "\n")
##  El intervalo de confianza al 95% para la media de la rentabilidad diaria es: -0.0001687841 a 0.002654203

Prueba de Hipótesis


a)   Prueba si el promedio de la rentabilidad diaria es igual a 0 con un nivel de significancia del 5%


  • Hipótesis Nula: Promedio de la rentabilidad diaria es igual a 0
  • Hipótesis Alternativa : Promedio de la rentabilidad diaria es diferente de 0
  • Nivel de significancia (α): Para una confianza del 95%, α=0.05.
interv_rentabilidad1 <- t.test(rentabilidad_tesla, mu = 0)
interv_rentabilidad1
## 
##  One Sample t-test
## 
## data:  rentabilidad_tesla
## t = 1.7264, df = 2484, p-value = 0.08439
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  -0.0001687841  0.0026542025
## sample estimates:
##   mean of x 
## 0.001242709
p_valor3 <- interv_rentabilidad1$p.value

cat("El p-valor de la prueba t es:", p_valor3, "\n")
## El p-valor de la prueba t es: 0.08439337

El p-valor obtenido (0.08439337) es mayor que α=0.05. Por lo tanto, rechazamos la hipótesis alternativa y concluimos que sí hay suficiente evidencia estadística, con un 95% de confianza, para afirmar que el promedio de la rentabilidad diaria es igual a 0.