Punto 1

n<-1000
x<-runif(n)
y<-runif(n)
plot(x,y, col= 'blue')

y1<-sqrt(1/4-(x-1/2)^2)+1/2
y2<--sqrt(1/4-(x-1/2)^2)+1/2
plot(x,y,col="blue",lwd=3, main="Estimación del área del circulo", xlab="", ylab="", las=1, col.axis="red")
points(x,y1,col="green",lwd=3)
points(x,y2,col="green",lwd=3)

y1_y<-y1-y
y_y2<-y-y2
punto<-1:n
datos<-data.frame(punto,x,y,y1,y2,y1_y,y_y2)
head(datos,10)
##    punto         x          y        y1          y2        y1_y        y_y2
## 1      1 0.1754323 0.04685155 0.8803364 0.119663578  0.83348488 -0.07281203
## 2      2 0.9567876 0.85491150 0.7033350 0.296665024 -0.15157652  0.55824647
## 3      3 0.0161709 0.57528578 0.6261325 0.373867520  0.05084670  0.20141826
## 4      4 0.9454784 0.07060031 0.7270441 0.272955879  0.65644381 -0.20235557
## 5      5 0.6696061 0.35055096 0.9703550 0.029645042  0.61980400  0.32090592
## 6      6 0.6005248 0.23612920 0.9897905 0.010209478  0.75366132  0.22591973
## 7      7 0.7162269 0.37934918 0.9508280 0.049171950  0.57147887  0.33017723
## 8      8 0.6706736 0.69208703 0.9699686 0.030031370  0.27788160  0.66205566
## 9      9 0.4238510 0.91620665 0.9941673 0.005832698  0.07796065  0.91037395
## 10    10 0.7642832 0.95697712 0.9244460 0.075554001 -0.03253112  0.88142311
datos2<-datos[datos$y1_y >=0 & datos$y>=0.5,]
datos3<-datos[datos$y_y2 >=0 & datos$y<0.5,]
plot(x,y,col="blue",lwd=3, main="Estimación del área del circulo", xlab="", ylab="", las=1, col.axis="red")
points(x,y1,col="green",lwd=3)
points(x,y2,col="green",lwd=3)
points(datos2$x,datos2$y,col="green",lwd=3)
points(datos3$x,datos3$y,col="green",lwd=3)

(nrow(datos2)+nrow(datos3))/n
## [1] 0.773

la siguiente función permite estimar el área del circulo variando la cantidad de puntos.

estimacion_area<-function(m){
x<-runif(m)
y<-runif(m)
y1<-sqrt(1/4-(x-1/2)^2)+1/2
y2<--sqrt(1/4-(x-1/2)^2)+1/2
y1_y<-y1-y
y_y2<-y-y2
datos<-data.frame(punto,x,y,y1,y2,y1_y,y_y2)
datos2<-datos[datos$y1_y >=0 & datos$y>=0.5,]
datos3<-datos[datos$y_y2 >=0 & datos$y<0.5,]
estimacion<-(nrow(datos2)+nrow(datos3))/m
plot(x,y,col="blue",lwd=3, main=c("El área estimada es:",as.character(estimacion), 'cantidad de puntos utilizados:', as.character(m)), xlab="", ylab="", las=1, col.axis="red")
points(x,y1,col="green",lwd=3)
points(x,y2,col="green",lwd=3)
points(datos2$x,datos2$y,col="green",lwd=3)
points(datos3$x,datos3$y,col="green",lwd=3)
}
estimacion_area(2000)

Punto 2

poblacion<-rexp(2000)
#muestra de tamaño 20
m20<-sample(poblacion, size=20)
#muestra de tamaño 50
m50<-sample(poblacion, size=50)
#muestra de tamaño 100
m100<-sample(poblacion, size=100)
#muestra de tamaño 1000
m1000<-sample(poblacion, size=1000)

Punto 3

  1. Realice una simulación en la cual genere una población de n=1000 (Lote), donde el porcentaje de individuos (supongamos plantas) enfermas sea del 50%.
estado<-c('si','no')
planta<-1:1000
enferma<-sample(estado, size=n, replace = T, prob = c(0.5,0.5))
head(data.frame(planta, enferma))
##   planta enferma
## 1      1      no
## 2      2      no
## 3      3      si
## 4      4      si
## 5      5      si
## 6      6      si
  1. Genere una función que permita:
  • Obtener una muestra aleatoria de la población y
  • Calcule el estimador de la proporción muestral \(\hat{p}\) para un tamaño de muestra dado n.
Proporcion<-function(n){
estado<-c('si','no')
planta<-1:n
enferma<-sample(estado, size=n, replace = T, prob = c(0.5,0.5))
proporcion<-length(subset(enferma, enferma=='si'))/n
return(proporcion)
}
Proporcion(1000)
## [1] 0.515
  1. Repita el escenario anterior (b) n=500 veces y analice los resultados en cuanto al comportamiento de los 500 resultados del estimador \(\hat{p}\)

. ¿Qué tan simétricos o sesgados son los resultados obtenidos? y ¿qué se puede observar en cuanto a la variabilidad?. Realice en su informe un comentario sobre los resultados obtenidos.

n<-1000
repeticiones<-n
resultado<-c()
for(i in 1:n){
  resultado<-c(resultado,Proporcion(500))
}
hist(resultado, main=c('Histograma para',as.character(n),'lanzamientos'), col= '54', ylab=c('Frecuencia para la proporción','de plantas enfermas'))

boxplot(resultado, col= '55',  main=c('Variabilidad para',as.character(n),'lanzamientos utilizando boxplot'))

d. Repita los puntos b y c para tamaños de muestra n=5, 10, 15, 20, 30, 50, 60, 100, 200, 500. Compare los resultados obtenidos para los diferentes tamaños de muestra en cuanto a la normalidad. Utilice pruebas de bondad y ajuste (shapiro wilks :shspiro.test()) y métodos gráficos (gráfico de normalidad: qqnorm()). Comente en su informe los resultados obtenidos.

muestras<-function(n){
resultado<-c()
for(i in 1:n){
  resultado<-c(resultado,Proporcion(n))
}
par(mfrow=c(1,3))
hist(resultado, main=c('Histograma para',as.character(n),'lanzamientos'), col= '54', ylab=c('Frecuencia para la proporción','de plantas enfermas'))
boxplot(resultado, col= '55',  main=c('Variabilidad para',as.character(n),'lanzamientos utilizando boxplot'))
qqnorm(resultado, col ='red')
shapiro.test(resultado)$p.value}

n=5

muestras(5)

## [1] 0.006470001

n=10

muestras(10)

## [1] 0.0944451

n=15

muestras(15)

## [1] 0.1803001

n=20

muestras(20)

## [1] 0.1180174

n=30

muestras(30)

## [1] 0.4300367

n=50

muestras(50)

## [1] 0.066138

n=60

muestras(60)

## [1] 0.5992997

n=100

muestras(100)

## [1] 0.4435626

n=200

muestras(200)

## [1] 0.07442008

n=500

muestras(500)

## [1] 0.0564723