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