PUNTO 1
a) Crear una función sin entradas pero que simule el lanzamiento de dos dados legales y sume el resultado de ellos.
Dado1 <- 1:6
Dado2 <- 1:6
A1 = function(){
Resultado_a1 <- sample(Dado1, 1, replace = TRUE) + sample(Dado2, 1, replace = TRUE)
return(Resultado_a1)
}
A1()
## [1] 11
b) Generalizar la función para que tenga como entrada el total de lanzamientos y cuente los resultados de una condición en particular.
B1 = function(nLanzamientos, cCondición){
Resultado_b1 = array(NA, nLanzamientos)
for (i in 1:nLanzamientos) {
Resultado_b1[i] <- sample(Dado1, 1, replace = TRUE) + sample(Dado2, 1, replace = TRUE)
}
rCondición <- sum(Resultado_b1 == cCondición)
print(paste("Número de Lanzamientos:", nLanzamientos, ", Frecuencia del número", cCondición, ":", rCondición))
}
B1(nLanzamientos = 50, cCondición = 12)
## [1] "Número de Lanzamientos: 50 , Frecuencia del número 12 : 0"
c) Con la función de b. compare los resultados de la simulación para 10000 lanzamientos con los resultados esperados de acuerdo a la probabilidad calculada con el total de combinaciones.
C1 = function(nLanzamientos, cCondición, nMuestras){
Resultado_c1 = array(NA, nLanzamientos)
for (i in 1:nLanzamientos) {
Resultado_c1[i] <- sample(Dado1, 1, replace = TRUE) + sample(Dado2, 1, replace = TRUE)
}
rCondición2 = array(NA, nLanzamientos/nMuestras)
j <- 1
for (i in seq(from = nMuestras, to = nLanzamientos, by = nMuestras)) {
rCondición2[j] <- sum(Resultado_c1 == cCondición)/i
j <- j+1
}
return(rCondición2)
}
Probabilidad <- C1(10000, 7, 100)
plot(Probabilidad, xlab = "Lanzamientos (x100)", ylab = "Probabilidad")
abline(h=median(Probabilidad), col = "red", lwd = 2)

summary(Probabilidad)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.1738 0.2310 0.3442 0.9016 0.6751 17.3800
PUNTO 2
a) Genere una población con una cantidad dada de 0 y 1.
Población <- sample(x = c(0, 1), size = 1000, replace = TRUE)
Población[c(1:76)]
## [1] 1 1 1 0 1 1 0 1 1 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 1 0 0 0 1 1 1 0 0 1 0
## [39] 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 1
b) Crear una función que obtenga una muestra de esa población de a) y calcule el porcentaje de 1.
Cálc_Porcentaje <- function(nMuestra){
Muestra <- sample(x = Población, size = nMuestra, replace = TRUE)
Cuenta <- sum(Muestra == 1)
pCuenta <- Cuenta/nMuestra
print(paste("Se tomó una muestra de", nMuestra, "de una población de", length(Población)))
print(paste("El porcentaje de números 1 dentro de la muestra es de", pCuenta))
}
Cálc_Porcentaje(nMuestra = 250)
## [1] "Se tomó una muestra de 250 de una población de 1000"
## [1] "El porcentaje de números 1 dentro de la muestra es de 0.52"
c) Repita este proceso una cantidad (mas de 1000 veces) y guarde los porcentajes de cada iteración.
Cálc_Porcentaje2 <- function(nMuestra, nRepeticiones){
pCuenta <- array(NA, nRepeticiones)
for (i in 1:nRepeticiones) {
Muestra <- sample(x = Población, size = nMuestra, replace = TRUE)
Cuenta <- sum(Muestra == 1)
pCuenta[i] <- Cuenta/nMuestra
}
return(pCuenta)
}
Cálc_Porcentaje2(nMuestra = 250, nRepeticiones = 2000)[c(1:36)]
## [1] 0.576 0.516 0.520 0.512 0.544 0.560 0.496 0.508 0.564 0.596 0.580 0.496
## [13] 0.540 0.548 0.512 0.572 0.488 0.584 0.500 0.560 0.540 0.540 0.516 0.548
## [25] 0.524 0.484 0.564 0.500 0.480 0.548 0.576 0.536 0.608 0.576 0.520 0.572
d) Grafique los resultados de estos porcentajes y calcule algunos indicadores descriptivos.
Resultados_Población <- Cálc_Porcentaje2(1000, 2000)
Resultados_Muestra <- Cálc_Porcentaje2(200, 2000)
Gráfico_Población <- plot(table(Resultados_Población), main = "Resultados Población", xlab = "Probabilidad", ylab = "Frecuencia")

Gráfico_Muestra <- plot(table(Resultados_Muestra), main = "Resultados Muestra", xlab = "Probabilidad", ylab = "Frecuencia")

#RESULTADOS DE TODA LA POBLACIÓN
summary(Resultados_Población)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.480 0.519 0.530 0.530 0.541 0.578
#RESULTADOS DE LA MUESTRA
summary(Resultados_Muestra)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.4200 0.5050 0.5300 0.5305 0.5550 0.6650
PUNTO 3
a) Genere una función que calcule indicadores y graficos descriptivos de una variable cuantitativa.
vCuantitativa <- data.frame("Experiencia" = cbind(sample(x = c(1:20), size = 1000, replace = TRUE)))
my.function.A = function(df, col){
require(ggplot2)
require(ggpubr)
my.plot1 <- ggplot(data = df, mapping = aes(x = df[, col])) + geom_histogram(bins = 40) + labs(x = "Años de Experiencia", y = "Frecuencia")
my.plot2 <- ggplot(data = df, mapping = aes(x = df[, col])) + geom_boxplot() + labs(x = "Años de Experiencia")
my.plot3 <- ggarrange(my.plot1, my.plot2, ncol = 2, nrow = 1)
my.summary <- summary(df[, col])
my.list.A <- list("Gráficos" = my.plot3, "Resumen" = my.summary)
return(my.list.A)
}
my.function.A(df = vCuantitativa, col = "Experiencia")
## $Gráficos

##
## $Resumen
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.00 5.00 10.00 10.55 16.00 20.00
b) Genere una función que calcule indicadores y graficos descriptivos de una variable cualitativa.
vCualitativa <- data.frame("Riesgo" = cbind(sample(x = c("Muy Alto", "Alto", "Medio", "Bajo", "Muy Bajo"), size = 1000, replace = TRUE)))
my.function.B = function(df, col){
require(ggplot2)
my.plot1 <- ggplot(data = df, mapping = aes(x = df[, col])) + geom_bar() + labs(x = "Nivel de Riesgo", y = "Fecuencia")
my.summary <- table(df[, col])
my.list.B <- list("Gráfico" = my.plot1, "Resumen" = my.summary)
return(my.list.B)
}
my.function.B(df = vCualitativa, col = "Riesgo")
## $Gráfico

##
## $Resumen
##
## Alto Bajo Medio Muy Alto Muy Bajo
## 193 177 217 199 214
c) Genere una función que de acuerdo al tipo de variable use la función de a) ó b) para generar resultados descriptivos.
my.function.C = function(df.C, col.C){
require(ggpubr)
my.type <- class(df.C[, col.C])
ifelse(class(my.type) == "integer", return(my.function.A(df.C, col.C)), NA)
ifelse(class(my.type) == "character", return(my.function.B(df.C, col.C)), NA)
#return(my.type)
}
#EJEMPLO CUANTITATIVO
my.function.C(df.C = vCuantitativa, col.C = "Experiencia")
## $Gráfico

##
## $Resumen
##
## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
## 67 44 52 56 44 53 44 43 56 42 38 39 52 52 51 46 46 62 50 63
#EJEMPLO CUALITATIVA
my.function.C(df.C = vCualitativa, col.C = "Riesgo")
## $Gráfico

##
## $Resumen
##
## Alto Bajo Medio Muy Alto Muy Bajo
## 193 177 217 199 214