##CARGAR BASE DE DATOS
data <- read.csv("C:/Users/pc/Desktop/Rstudio/ClasificacionCredito.csv", header = TRUE)
head(data)
## Age Gender Income Education Marital.Status Number.of.Children
## 1 25 Female 50000 Bachelor's Degree Single 0
## 2 30 Male 100000 Master's Degree Married 2
## 3 35 Female 75000 Doctorate Married 1
## 4 40 Male 125000 High School Diploma Single 0
## 5 45 Female 100000 Bachelor's Degree Married 3
## 6 50 Male 150000 Master's Degree Married 0
## Home.Ownership Credit.Score
## 1 Rented High
## 2 Owned High
## 3 Owned High
## 4 Owned High
## 5 Owned High
## 6 Owned High
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
##SELECCIÓN DE VARIABLES Y DEFINICIÓN DE EVENTOS.
sub_datos <- data[, c("Education", "Credit.Score","Marital.Status")]
str(sub_datos)
## 'data.frame': 164 obs. of 3 variables:
## $ Education : chr "Bachelor's Degree" "Master's Degree" "Doctorate" "High School Diploma" ...
## $ Credit.Score : chr "High" "High" "High" "High" ...
## $ Marital.Status: chr "Single" "Married" "Married" "Single" ...
A <- data$Education == "Doctorate"
B <- data$Credit.Score == "High"
C <- data$Marital.Status == "Married"
## 1.PROBABILIDAD DEL COMPLEMENTO DE B: P(B!)
p_A <- sum(data$Education == "Doctorate") / nrow(data)
p_B <- sum(data$Credit.Score == "High") / nrow(data)
p_C <- sum(data$Marital.Status == "Married") / nrow(data)
p_A ; p_B ; p_C
## [1] 0.1890244
## [1] 0.6890244
## [1] 0.5304878
p_B_complemento <- 1 - p_B
print(p_B_complemento)
## [1] 0.3109756
#La probabilidad de que un solicitante elegido al azar no tenga un puntaje de crédito alto es de 0.3109, lo que indica que aproximadamente el 31.1% de los solicitantes presentan puntajes medios o bajos.
## 2. PROBABILIDAD DE C DADO A: P(C|A) = P(C ∩ A) / P(A)
p_interseccion <- sum(data$Marital.Status == "Married" & data$Education == "Doctorate") / nrow(data)
p_interseccion
## [1] 0.152439
p_C_dado_A <- p_interseccion / p_A
print(p_C_dado_A)
## [1] 0.8064516
#La probabilidad de que un solicitante elegido al azar esté casado dado que tiene un doctorado es de 80.64, lo que indica que aproxiamadamente el 80.6% de los solicitantes con doctorado están casados.
## EJERCICIO 4. Coca Cola - Pepsi
# Distribución Hipergeométrica
N <- 10 # tamaño de la población total
m <- 4 # número de personas que prefieren Pepsi
n <- N-m # número de personas que prefieren Coca Cola
k <- 3 # tamaño de la muestra
# Crear un data frame con la probabilidad para cada número de éxitos.
x_values <- 0:k
probabilidades <- dhyper(x_values, m, n, k)
data_exito <- data.frame(Pepsi_en_muestra = x_values, Probabilidad = probabilidades)
data_exito
## Pepsi_en_muestra Probabilidad
## 1 0 0.16666667
## 2 1 0.50000000
## 3 2 0.30000000
## 4 3 0.03333333
p_al_menos_3 <- sum(dhyper(3, m, n, k))
print(p_al_menos_3)
## [1] 0.03333333
#La probabilidad de que al seleccionar una muestra de 3 personas y que éstas prefieran pepsi es de 0.033 (3.3%), lo que significa que existe una baja posibilidad de que al seleccionar tres personas, todas prefieran pepsi.
## EJERCICIO 3. Tráfico - Accidentes
# Distribución Poisson
lambda_matutino = 2 * 1.5 # Promedio para la mañana (1.5 horas)
lambda_vespertino = 2 * 2 # Promedio para la tarde (2 horas)
# a. Probabilidad de que NO haya accidentes duante el periodo matutino: P(X=0)
x_m = 0:8
prob_m = round(dpois(x_m, lambda_matutino), 4)
data_m = data.frame(x = x_m, probabilidad = prob_m)
data_m
## x probabilidad
## 1 0 0.0498
## 2 1 0.1494
## 3 2 0.2240
## 4 3 0.2240
## 5 4 0.1680
## 6 5 0.1008
## 7 6 0.0504
## 8 7 0.0216
## 9 8 0.0081
ggplot(data_m, aes(x = as.factor(x), y = probabilidad)) +
geom_point(color = "red", size = 2) +
geom_segment(aes(xend = as.factor(x), yend = probabilidad), color = "blue") +
labs(title = "Distribucion Poisson - Accidentes Matutinos",
x = "Numero de accidentes",
y = "Probabilidad")

P_matutino_0 = dpois(x = 0, lambda = lambda_matutino)
print(P_matutino_0)
## [1] 0.04978707
#La probabilidad de que NO haya accidentes durante el periodo matutino es de aproximadamente el 5%. Esto indica que es poco probable que no ocurra ningún accidente durante el tráfico intenso de la mañana.
# b. Probabilidad de que ocurran 3 o más accidentes en la tarde: P(X≥3)
P_tarde_mayor3 = 1 - ppois(2, lambda = lambda_vespertino)
print(P_tarde_mayor3)
## [1] 0.7618967
#La probabilidad de que ocurran 3 o más accidentes 3 o más accidentes durante el período vespertino es de aproximadamente el 76.2%. Esto indica que es muy probable que se presenten múltiples accidentes en la tarde cuando el tráfico es más intenso.
## EJERCICIO 5. Juego de Feria
# Distribución Binomial
n <- 20 # número de personas
p <- 0.15 # probabilidad de ganar
x <- 0:n
prob.bi <- dbinom(x = x, size = n, prob = p)
data.bi <- data.frame(x = x, Probabilidad = prob.bi)
round(data.bi, 4)
## x Probabilidad
## 1 0 0.0388
## 2 1 0.1368
## 3 2 0.2293
## 4 3 0.2428
## 5 4 0.1821
## 6 5 0.1028
## 7 6 0.0454
## 8 7 0.0160
## 9 8 0.0046
## 10 9 0.0011
## 11 10 0.0002
## 12 11 0.0000
## 13 12 0.0000
## 14 13 0.0000
## 15 14 0.0000
## 16 15 0.0000
## 17 16 0.0000
## 18 17 0.0000
## 19 18 0.0000
## 20 19 0.0000
## 21 20 0.0000
ggplot(data.bi, aes(x = as.factor(x), y = Probabilidad)) + geom_point(color = "red", size = 2) +
geom_segment(aes(x = as.factor(x), y = 0,xend = as.factor(x), yend = Probabilidad), color = "blue") +
labs(title = "Distribucion Binomial (n=20, p=0.15)", x = "Numero de ganadores (X)", y = "Probabilidad")

# a. Probabilidad de que ganen por mucho 3 personas
P_X_menor_3 <- pbinom(3, size = n, prob = p)
P_X_menor_3
## [1] 0.6477252
#La probabilidad de que por mucho ganen 3 personas en esa hora es de aproximadamente el 65%. Esto significa que es relativamente frecuente que tres o menos jugadores ganen.
# b. Número esperado de ganadores.
E_X <- n * p
E_X
## [1] 3
#El número esperado de jugadores ganadores en esa hora es 3. Esto indica que, si el juego se repitiera muchas veces, en promedio tres personas ganarían por hora.