PUNTO 1: - Simulación Resultado de la Suma del Lanzamiento de dos Dados A.Crear una función sin entradas pero que simule el lanzamiento de dos dados legales y sume el resulado de ello
simula_lanza=function(){
dado1=1:6
dado2=1:6
x=sample(dado1,1)+sample(dado2,1)#sacar muesta el sample
return(x)
}
simula_lanza()
## [1] 3
B.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).
OPCION No 1
sim_var_lanz=function(numlanza, valor_cond){
lanzamientos=array(NA,numlanza)
for(i in 1:numlanza){
lanzamientos[i]=simula_lanza()
}
return(sum(lanzamientos==valor_cond))
}
sim_var_lanz(numlanza = 100,valor_cond = 12)
## [1] 1
OPCION No 2
simula_multi_lanza2=function(nlanza, valor_condi){
dado1=1:6
dado2=1:6
x=sample(dado1,size = nlanza,replace = TRUE)+sample(dado2,size = nlanza,replace = TRUE)#sacar muesta el sample
return(sum(x==valor_condi))
}
simula_multi_lanza2(nlanza = 100, valor_condi = 12)
## [1] 2
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.
#probabilidad teorica combinaciones
dado1=1:6
dado2=1:6
espacio=expand.grid(dado1,dado2)
y=apply(espacio,1,sum)
data.frame(espacio, y)
## Var1 Var2 y
## 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
prob_teorica=table(y)/36
prob_teorica#visualizar la probabilidad de scar cada numero
## y
## 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,prob_teorica, type = "b")##visualizar
##via simulacion cual es el valor de la probabilidad
simula_multi_lanza2(nlanza = 100000, valor_condi = 1)/100000
## [1] 0
simula_multi_lanza2(nlanza = 100000, valor_condi = 2)/100000
## [1] 0.02795
simula_multi_lanza2(nlanza = 100000, valor_condi = 3)/100000
## [1] 0.05552
simula_multi_lanza2(nlanza = 100000, valor_condi = 4)/100000
## [1] 0.08387
simula_multi_lanza2(nlanza = 100000, valor_condi = 5)/100000
## [1] 0.11117
simula_multi_lanza2(nlanza = 100000, valor_condi = 6)/100000
## [1] 0.13892
simula_multi_lanza2(nlanza = 100000, valor_condi = 7)/100000
## [1] 0.16698
simula_multi_lanza2(nlanza = 100000, valor_condi = 8)/100000
## [1] 0.14032
simula_multi_lanza2(nlanza = 100000, valor_condi = 9)/100000
## [1] 0.11132
simula_multi_lanza2(nlanza = 100000, valor_condi = 10)/100000
## [1] 0.08482
simula_multi_lanza2(nlanza = 100000, valor_condi = 11)/100000
## [1] 0.05412
simula_multi_lanza2(nlanza = 100000, valor_condi = 12)/100000
## [1] 0.02778
PUNTO 2: - Simulación Concepto de Distribucción Muestral (Caso proporciones)
A. Genere una población con una cantidad dada de 0 y 1.
poblacion=c(rep(x=1,1000),rep(0,900))
B. Crear una función que obtenga una muestra de esa población de a. y calcule el porcentaje de 1.
sum(sample(poblacion, size = 100))/100
## [1] 0.55
C. Repita este proceso una cantidad (mas de 1000 veces) y guarde los porcentajes de cada iteración.
OPCION No 1
porcentaje_muestras=array(NA,1000)
for (i in 1:1000) {
poblacion=c(rep(x=1,1000),rep(0,900))
porcentaje_muestras[i]=sum(sample(poblacion,size = 100))/100
}
table(porcentaje_muestras)
## porcentaje_muestras
## 0.38 0.39 0.4 0.41 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.5 0.51 0.52 0.53
## 3 1 1 4 7 15 25 19 34 35 46 44 71 87 93 68
## 0.54 0.55 0.56 0.57 0.58 0.59 0.6 0.61 0.62 0.63 0.64 0.65 0.66 0.67
## 92 70 71 49 45 40 34 12 12 12 4 2 3 1
OPCION No 2
cal_porcentaje_uno=function(n_muestras){
poblacion=c(rep(x=1,1000),rep(0,900))
return(sum(sample(poblacion,size = n_muestras))/n_muestras)
}
cal_porcentaje_uno(n_muestras=200)
## [1] 0.55
sapply(rep(200,10), cal_porcentaje_uno)
## [1] 0.475 0.535 0.470 0.505 0.550 0.505 0.505 0.585 0.560 0.530
C. Grafique los resultados de estos porcentajes y calcule algunos indicadores descriptivos (compare los resultados con la población generada inicial).
summary(porcentaje_muestras)##me muestra el analisis
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.3800 0.5000 0.5300 0.5273 0.5600 0.6700
hist(porcentaje_muestras)
abline(v=0.1,col="red", lwd=4)
plot(density(porcentaje_muestras), xlab = "Muestras", ylab = "Frecuencia", las=1, main = "")
Punto 3 - Función que Calcula Descriptivos Univariados A. Genere una
función que calcule indicadores y graficos descriptivos de una variable
cuantitativa.
Distancia recorrida y el tiempo empleado para la misma
distancia=sample(1:10,500,replace = TRUE)
tiempo=sample(1:5,500,replace = TRUE)
simulacion =data.frame(
"distancia" = distancia,
"tiempo"=as.character(tiempo)
)
head(simulacion)
## distancia tiempo
## 1 4 3
## 2 2 5
## 3 2 3
## 4 8 5
## 5 10 4
## 6 5 2