Punto 1 - Simulación Resultado de la Suma del Lanzamiento de dos Dados
sim_Lanzamiento=function(){
dado1=1:6
dado2=1:6
x=sample(dado1,1)+sample(dado2,1)
return(x)
}
suma=sim_Lanzamiento()
print(suma)
## [1] 11
#Opcion 1
Simulacion_2=function(nlanzamientos,valor_condicion){
#nlanzamientos=500
lanzamientos=array(NA,nlanzamientos)
for(i in 1:nlanzamientos){
lanzamientos[i]=sim_Lanzamiento()
}
##print(lanzamientos)
return(sum(lanzamientos==valor_condicion))
}
Simulacion_2(nlanzamientos=500,valor_condicion = 12)
## [1] 11
##Opcion 2#
Simulacion_3=function(nlanzamientos,valor_condicion){
dado1=1:6
dado2=1:6
x=sample(dado1,size=nlanzamientos,replace=TRUE)+sample(dado2,size=nlanzamientos,replace=TRUE)
return(sum(x==valor_condicion))
}
Simulacion_3(nlanzamientos=500,valor_condicion = 12)
## [1] 23
#Probabilidad Teorica (Combinaciones)
dado1=1:6
dado2=1:6
espacio=expand.grid(dado1,dado2)
y=apply(espacio,1,sum)
#data.frame(espacio,y)
probabilidad_teorica=table(y)/36
plot(2:12,probabilidad_teorica,type="b")
data.frame(probabilidad_teorica)
| y | Freq |
|---|---|
| 2 | 0.0277778 |
| 3 | 0.0555556 |
| 4 | 0.0833333 |
| 5 | 0.1111111 |
| 6 | 0.1388889 |
| 7 | 0.1666667 |
| 8 | 0.1388889 |
| 9 | 0.1111111 |
| 10 | 0.0833333 |
| 11 | 0.0555556 |
| 12 | 0.0277778 |
#Probabilidad Via simulación
Simulacion_3(nlanzamientos=10000,valor_condicion = 2)/10000
## [1] 0.028
Tabla_simulacion=probabilidad_teorica
for(i in 2:12){
Tabla_simulacion[i-1]=Simulacion_3(nlanzamientos=10000,valor_condicion = i)/10000
}
print(Tabla_simulacion)
## y
## 2 3 4 5 6 7 8 9 10 11 12
## 0.0301 0.0541 0.0842 0.1076 0.1343 0.1647 0.1416 0.1127 0.0816 0.0560 0.0290
diferencia=probabilidad_teorica-Tabla_simulacion
data.frame(probabilidad_teorica,Tabla_simulacion,diferencia)
| y | Freq | y.1 | Freq.1 | y.2 | Freq.2 |
|---|---|---|---|---|---|
| 2 | 0.0277778 | 2 | 0.0301 | 2 | -0.0023222 |
| 3 | 0.0555556 | 3 | 0.0541 | 3 | 0.0014556 |
| 4 | 0.0833333 | 4 | 0.0842 | 4 | -0.0008667 |
| 5 | 0.1111111 | 5 | 0.1076 | 5 | 0.0035111 |
| 6 | 0.1388889 | 6 | 0.1343 | 6 | 0.0045889 |
| 7 | 0.1666667 | 7 | 0.1647 | 7 | 0.0019667 |
| 8 | 0.1388889 | 8 | 0.1416 | 8 | -0.0027111 |
| 9 | 0.1111111 | 9 | 0.1127 | 9 | -0.0015889 |
| 10 | 0.0833333 | 10 | 0.0816 | 10 | 0.0017333 |
| 11 | 0.0555556 | 11 | 0.0560 | 11 | -0.0004444 |
| 12 | 0.0277778 | 12 | 0.0290 | 12 | -0.0012222 |
Punto 2 - Simulación Concepto de Distribucción Muestral (Caso proporciones)
#Poblacion con 10% de 1 y 90% de o
poblacion=c(rep(x=1,100),rep(x=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=200)==1)/200
## [1] 0.125
#c. Repita este proceso una cantidad (mas de 1000 veces) y guarde los porcentajes de cada iteración
#Opcion 1
porcentaje_muestra=array(NA,1000)
for(i in 1:1000){
poblacion=c(rep(x=1,100),rep(x=0,900))
porcentaje_muestra[i]=sum(sample(poblacion,size=200)==1)/200
}
#opcion 2
Calcula_unos=function(n_muestra){
poblacion=c(rep(x=1,100),rep(x=0,900))
return(sum(sample(poblacion,size=n_muestra)==1)/n_muestra)
}
calculo=sapply(rep(200,1000),Calcula_unos)
summary(calculo)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0450 0.0850 0.1000 0.1004 0.1150 0.1600
#d. Grafique los resultados de estos porcentajes y calcule algunos indicadores descriptivos (compare los resultados con la población generada inicial).
summary(porcentaje_muestra)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.04000 0.08500 0.10000 0.09965 0.11000 0.16000
hist(porcentaje_muestra)
abline(v=0.1,col="red",lwd=4)