Crear una función sin entradas pero que simule el lanzamiento de dos dados legales y sume el resulado de ellos.
lanzamiento_dados = function(){
dado1 = 1:6
dado2 = 1:6
resultado = sample(dado1, 1) + sample(dado2, 1)
return(resultado)
}
lanzamiento_dados()
## [1] 7
Generalizar la función para que tenga como entrada el total de lanzamientos y cuente los resultados de una condición en particular (ejemplo suma igual a 12).
Informacion = function(total_lanzamientos, Condicion){
resultado_informacion = array(NA, total_lanzamientos)
for (i in 1:total_lanzamientos) {
resultado_informacion[i] = lanzamiento_dados()
}
resultado_condicion = sum(resultado_informacion == Condicion)
print(paste("Total de lanzamientos:", total_lanzamientos, ", Frecuencia del número", Condicion, ":", resultado_condicion))
}
Informacion(total_lanzamientos = 1000, Condicion = 2)
## [1] "Total de lanzamientos: 1000 , Frecuencia del número 2 : 22"
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.
espacio = expand.grid(dado1=(1:6),dado2=(1:6))
total = apply(espacio,1,sum)
data.frame(espacio,total)
## dado1 dado2 total
## 1 1 1 2
## 2 2 1 3
## 3 3 1 4
## 4 4 1 5
## 5 5 1 6
## 6 6 1 7
## 7 1 2 3
## 8 2 2 4
## 9 3 2 5
## 10 4 2 6
## 11 5 2 7
## 12 6 2 8
## 13 1 3 4
## 14 2 3 5
## 15 3 3 6
## 16 4 3 7
## 17 5 3 8
## 18 6 3 9
## 19 1 4 5
## 20 2 4 6
## 21 3 4 7
## 22 4 4 8
## 23 5 4 9
## 24 6 4 10
## 25 1 5 6
## 26 2 5 7
## 27 3 5 8
## 28 4 5 9
## 29 5 5 10
## 30 6 5 11
## 31 1 6 7
## 32 2 6 8
## 33 3 6 9
## 34 4 6 10
## 35 5 6 11
## 36 6 6 12
conteo = table(total)/36
conteo
## total
## 2 3 4 5 6 7 8
## 0.02777778 0.05555556 0.08333333 0.11111111 0.13888889 0.16666667 0.13888889
## 9 10 11 12
## 0.11111111 0.08333333 0.05555556 0.02777778
plot(2:12,conteo,type = "b")
Genere una población con una cantidad dada de 0 y 1.
poblacion=sample(x = c(0, 1), size = 1000, replace = TRUE)
Crear una función que obtenga una muestra de esa población de a. y calcule el porcentaje de 1.
porcentaje_poblacion = function(nmuestra){
muestra = sample(x = poblacion, 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(poblacion)))
print(paste("El porcentaje de números 1 dentro de la muestra es de", pcuenta))
}
porcentaje_poblacion(nmuestra = 500)
## [1] "Se tomó una muestra de 500 de una población de 1000"
## [1] "El porcentaje de números 1 dentro de la muestra es de 0.512"
Repita este proceso una cantidad (mas de 1000 veces) y guarde los porcentajes de cada iteración.
calculo_porcentaje = function(nmuestra, nrepeticiones){
pcuenta = array(NA, nrepeticiones)
for (i in 1:nrepeticiones){
muestra = sample(x=poblacion, size = nmuestra, replace = TRUE)
cuenta = sum(muestra == 1)
pcuenta[i] = cuenta / nmuestra
}
return(pcuenta)
}
calculo_porcentaje(nmuestra = 500, nrepeticiones = 5000)[c(1:500)]
## [1] 0.506 0.466 0.504 0.512 0.544 0.498 0.554 0.492 0.534 0.506 0.520 0.518
## [13] 0.508 0.514 0.498 0.468 0.500 0.540 0.528 0.498 0.540 0.524 0.542 0.504
## [25] 0.516 0.518 0.534 0.520 0.460 0.504 0.538 0.524 0.512 0.554 0.518 0.536
## [37] 0.498 0.488 0.546 0.524 0.510 0.498 0.506 0.500 0.512 0.522 0.512 0.532
## [49] 0.490 0.532 0.500 0.514 0.480 0.560 0.568 0.542 0.498 0.490 0.520 0.482
## [61] 0.496 0.502 0.498 0.522 0.484 0.524 0.520 0.536 0.530 0.488 0.510 0.464
## [73] 0.544 0.540 0.492 0.562 0.514 0.496 0.494 0.528 0.538 0.554 0.530 0.504
## [85] 0.538 0.506 0.510 0.494 0.508 0.436 0.496 0.530 0.518 0.492 0.510 0.554
## [97] 0.538 0.514 0.546 0.520 0.498 0.518 0.540 0.480 0.514 0.498 0.484 0.498
## [109] 0.498 0.500 0.500 0.520 0.530 0.510 0.496 0.520 0.540 0.508 0.514 0.498
## [121] 0.526 0.486 0.512 0.532 0.524 0.498 0.476 0.516 0.522 0.490 0.526 0.500
## [133] 0.526 0.508 0.508 0.542 0.524 0.536 0.526 0.522 0.514 0.470 0.484 0.514
## [145] 0.486 0.534 0.514 0.524 0.516 0.508 0.520 0.484 0.522 0.520 0.482 0.492
## [157] 0.504 0.550 0.520 0.492 0.508 0.488 0.504 0.526 0.512 0.514 0.530 0.512
## [169] 0.556 0.482 0.482 0.496 0.540 0.498 0.506 0.522 0.522 0.514 0.498 0.510
## [181] 0.516 0.516 0.534 0.502 0.518 0.494 0.526 0.514 0.562 0.524 0.516 0.488
## [193] 0.498 0.554 0.484 0.526 0.470 0.524 0.484 0.460 0.516 0.498 0.516 0.528
## [205] 0.516 0.516 0.522 0.510 0.514 0.486 0.502 0.496 0.544 0.482 0.518 0.574
## [217] 0.506 0.500 0.526 0.502 0.506 0.518 0.496 0.532 0.522 0.526 0.508 0.502
## [229] 0.540 0.524 0.494 0.504 0.524 0.524 0.516 0.540 0.536 0.540 0.558 0.556
## [241] 0.558 0.506 0.510 0.488 0.454 0.550 0.492 0.510 0.502 0.536 0.484 0.502
## [253] 0.478 0.516 0.482 0.520 0.502 0.540 0.488 0.504 0.510 0.542 0.544 0.446
## [265] 0.526 0.556 0.494 0.528 0.550 0.508 0.552 0.508 0.490 0.516 0.546 0.496
## [277] 0.516 0.534 0.488 0.532 0.492 0.540 0.498 0.526 0.516 0.536 0.532 0.496
## [289] 0.550 0.504 0.502 0.490 0.520 0.544 0.506 0.554 0.520 0.496 0.512 0.516
## [301] 0.512 0.522 0.578 0.518 0.530 0.512 0.500 0.526 0.516 0.536 0.518 0.514
## [313] 0.492 0.558 0.542 0.508 0.496 0.522 0.532 0.520 0.504 0.532 0.530 0.540
## [325] 0.504 0.520 0.468 0.526 0.514 0.484 0.528 0.492 0.558 0.512 0.508 0.514
## [337] 0.546 0.520 0.516 0.488 0.492 0.522 0.466 0.472 0.490 0.518 0.536 0.488
## [349] 0.514 0.524 0.496 0.482 0.528 0.484 0.532 0.506 0.510 0.506 0.488 0.484
## [361] 0.484 0.498 0.514 0.508 0.514 0.544 0.504 0.508 0.514 0.528 0.476 0.534
## [373] 0.502 0.512 0.514 0.512 0.526 0.492 0.488 0.528 0.530 0.486 0.500 0.522
## [385] 0.520 0.516 0.496 0.542 0.502 0.480 0.532 0.542 0.526 0.546 0.506 0.532
## [397] 0.500 0.488 0.510 0.508 0.520 0.486 0.526 0.490 0.532 0.498 0.538 0.512
## [409] 0.518 0.488 0.492 0.514 0.522 0.526 0.490 0.504 0.574 0.508 0.508 0.500
## [421] 0.494 0.502 0.504 0.468 0.498 0.482 0.486 0.484 0.484 0.526 0.530 0.530
## [433] 0.526 0.470 0.572 0.490 0.494 0.514 0.530 0.522 0.512 0.512 0.484 0.498
## [445] 0.526 0.520 0.474 0.514 0.542 0.476 0.502 0.484 0.520 0.502 0.474 0.530
## [457] 0.518 0.562 0.534 0.510 0.536 0.482 0.570 0.492 0.516 0.462 0.530 0.478
## [469] 0.490 0.538 0.514 0.544 0.528 0.522 0.528 0.542 0.514 0.506 0.512 0.514
## [481] 0.488 0.512 0.546 0.480 0.526 0.502 0.522 0.490 0.512 0.484 0.526 0.528
## [493] 0.458 0.542 0.526 0.484 0.516 0.488 0.522 0.498
Grafique los resultados de estos porcentajes y calcule algunos indicadores descriptivos (compare los resultados con la población generada inicial).
resultado_poblacion = calculo_porcentaje(1000, 5000)
resultado_muestra = calculo_porcentaje(500, 5000)
hist(resultado_poblacion)
hist(resultado_muestra)
summary(resultado_poblacion)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.452 0.503 0.514 0.514 0.525 0.578
summary(resultado_muestra)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.4400 0.5000 0.5140 0.5144 0.5300 0.5960
Genere una función que calcule indicadores y graficos descriptivos de una variable cuantitativa.
variable_cuantitativa = data.frame("Cantidad_Mascotas_Hogar" = cbind(sample(x = c(1:20), size = 5000, replace = TRUE)))
funcion = function(df, col){
require(ggplot2)
require(ggpubr)
plot1 = ggplot(data = df, mapping = aes(x = df[, col])) + geom_histogram(bins = 40) + labs(x = "Cantidad_Mascotas_Hogar", y = "Frecuencia")
plot2 = ggplot(data = df, mapping = aes(x = df[, col])) + geom_boxplot() + labs(x = "Cantidad_Mascotas_Hogar")
plot3 = ggarrange(plot1, plot2, ncol = 2, nrow = 1)
summary = summary(df[, col])
graf1 = list("Gráficos" = plot3, "Resumen" = summary)
return(graf1)
}
barplot(table(variable_cuantitativa),xlab="Cantidad_Mascotas_Hogar",main="Distribución de Mascotas por hogar", col="gray")
boxplot(variable_cuantitativa, main = "Gráfico de cajas - Cantidad_Mascotas_Hogar",
outline = TRUE)
summary(variable_cuantitativa)
## Cantidad_Mascotas_Hogar
## Min. : 1.00
## 1st Qu.: 6.00
## Median :11.00
## Mean :10.55
## 3rd Qu.:16.00
## Max. :20.00
Genere una función que calcule indicadores y graficos descriptivos de una variable cualitativa.
variable_cualitativa = data.frame("Color_ojos" = cbind(sample(x = c("Verde","Azul","Miel","Cafe","Otros"), size = 5000, replace = TRUE)))
funcion_2 = function(df, col){
require(ggplot2)
require(ggpubr)
plot1 = ggplot(data = df, mapping = aes(x = df[, col])) + geom_histogram(bins = 40) + labs(x = "Color_ojos", y = "Frecuencia")
}
barplot(table(variable_cualitativa), col = c("blue","brown","Orange","gray","Dark green"),
main = "Diagrama de barras de la variable Color de Ojos")
pie(table(variable_cualitativa),col = c("blue","brown","Orange","gray","Dark green"),
main = "Diagrama circular de la variable Color de Ojos")
table(variable_cualitativa)
## variable_cualitativa
## Azul Cafe Miel Otros Verde
## 984 975 1017 1002 1022