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)
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)
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
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
. ¿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}
muestras(5)
## [1] 0.006470001
muestras(10)
## [1] 0.0944451
muestras(15)
## [1] 0.1803001
muestras(20)
## [1] 0.1180174
muestras(30)
## [1] 0.4300367
muestras(50)
## [1] 0.066138
muestras(60)
## [1] 0.5992997
muestras(100)
## [1] 0.4435626
muestras(200)
## [1] 0.07442008
muestras(500)
## [1] 0.0564723