El Teorema del Límite Central es uno de los más importantes en la inferencia estadística y habla sobre la convergencia de los estimadores como la proporción muestral a la distribución normal. Algunos autores afirman que esta aproximación es bastante buena a partir del umbral n>30.
A continuación se describen los siguientes pasos para su verificación:
a.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%.
b.Genere una función que permita:
• Obtener una
muestra aleatoria de la población y
• Calcule el
estimador de la proporción muestral pˆ para un tamaño de muestra dado
n.
c.Repita el escenario anterior (b) n=500 veces y analice los resultados en cuanto al comportamiento de los 500 resultados del estimador 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.
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
e.Repita toda la simulación (puntos a – d), pero ahora para lotes con 10% de plantas enfermas y de nuevo para lotes con un 90% de plantas enfermas. Concluya sobre los resultados del ejercicio.Para dar solución al problemas empezaremos con desarrollar cada uno de los puntos solicitados, empezaremos creando un población de n=1000 (Lote), donde el porcentaje de individuos (supongamos plantas) enfermas sea del 50%
n=1000
Probabilidad=0.5
GeneracionPoblacion = function(n, Probabilidad){
#pooblacion generarl creada
Poblacion1= rbinom(n, 1, Probabilidad)
muestrapoblacion= Poblacion1[c(1:30)]
muestrapoblacion
#retormacion la Poblacion
return(Poblacion1)
}
Poblacion=GeneracionPoblacion(n, Probabilidad)
Ahora procederemos a seleccionar una muestra de la población solicitada para lo cual deseamos una muestra de 800 registros
#funcion para la seleccion de la muestra de poblacion
Muestra = function(Poblacion, TamanoMuestra){
MuestraGenerada=sample(Poblacion, size=TamanoMuestra, replace=FALSE, prob = NULL)
return(MuestraGenerada)
}
#funcion para calcular el estimar de la proporcion muestral p para un tamaño de muestra N
Estimador= function(MuestraGenerada){
media=1 # se coloca el 1 por que los valores oscilan entre 0 y 1 y se considera que se esta enfermo si esta si esta en 1
Estimador1 = sum(MuestraGenerada == media)/length(MuestraGenerada)
return(Estimador1)
}
#inicalizamos la mustra
N1=800
PrimeraMuestra = Muestra(Poblacion,N1)
PrimeraMuestra
## [1] 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 1 0 1
## [38] 1 1 1 0 0 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 0 1 0 1 0 0 0 0
## [75] 1 1 1 1 0 1 0 1 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0
## [112] 0 1 1 0 1 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 1 1
## [149] 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 1
## [186] 1 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 1
## [223] 1 1 1 1 0 1 1 1 1 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 1
## [260] 1 1 1 1 0 1 1 1 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 1 0 0 0
## [297] 1 1 1 1 0 1 1 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 0 1 0 1 0 1 1 1 0
## [334] 1 1 0 1 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 1 0 0 0 0
## [371] 1 0 1 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 0 0 0
## [408] 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 0 1 1 0 1 1 0 1 1 0 1 0 1 0 0 0 0 0 0 0
## [445] 0 1 1 0 0 1 0 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0
## [482] 0 1 1 0 1 1 0 1 0 0 1 1 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 1 1 0 1 0 0 1 0 1 1
## [519] 1 0 1 1 0 1 1 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0
## [556] 1 1 0 1 0 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 0 0 0
## [593] 0 1 0 1 1 0 1 0 1 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 0 1 1 1 0
## [630] 0 0 1 0 1 0 1 1 1 1 0 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0
## [667] 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1
## [704] 0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 0 0
## [741] 1 0 1 1 1 1 0 1 0 0 0 1 0 0 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 0 0 0 1 1 1 0 1
## [778] 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 0
#distribucion de la muestra
tamanoM1=length(PrimeraMuestra)
paste("El tamalo de la muesta es:", tamanoM1)
## [1] "El tamalo de la muesta es: 800"
• Ahora procederemos a calcular el estimador de la proporción muestral pˆ para un tamaño de muestra dado n.
## [1] "para la muestra : 800 els estimador p es = 0.5"
## ID Tamaño_muestra Media Mediana Desvciacion.est Varianza Mín. Máx
## 1 0 1000 0.502512 0.504 0.01590736 0.0002530439 0.456 0.55
## Asimetría Curtosis
## 1 -0.06120626 2.984404
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
-procedemos a crear un vector con todos los tamaños de muestras
Vector_Muestras = c(5,10,15,20,30,50,60,100,200,500)
-procedemos a crear una funcion que permita la ejeucion de los pasos B y C para todas las muestras
ResultadoTer=data.frame()
for (i in 1:length(Vector_Muestras)) {
#este es el punto B
#generamos la muestra
MuestrasGen = Muestra(Poblacion,Vector_Muestras[i])
#obetenemos el estimador parqa la muestra
Estimador(MuestrasGen)
#este es el punto C
iteraciones =500
#generamos las iteraciones de las muestas
vector_iteracion = Muestas_Itraciones(Poblacion, iteraciones, Vector_Muestras[i])
#colcoamos 3 gracias en una misma liena
par(mfrow=c(1,3))
#generamos el histograma de las muestas
boxplot(vector_iteracion, main="grafico de cajas")
abline(h=line, col="red")
hist(vector_iteracion, las=1, ylab = "Frecuencia", main = paste("Muestra de tamaño:", Vector_Muestras[i]), col = "gray",prob = TRUE)
abline(v=mean(vector_iteracion), col="blue", lwd=3)
lines(density(vector_iteracion), col = 2, lwd = 2)
qqnorm(vector_iteracion, xlab="Cuantiles teóricos", ylab="Cuantiles muestrales",main="qq-normalidad")
qqline(vector_iteracion,col = 'red', lwd = 2, lty = 2)
print(paste('Para una muestra de tamaño: ', Vector_Muestras[i]))
print(shapiro.test(vector_iteracion))
x=data.frame("ID"=i,"Tamaño_muestra"=Vector_Muestras[i],
"Media"=mean(vector_iteracion),
"Mediana"=median(vector_iteracion),
"Desvest"=sd(vector_iteracion),
"Varianza"=var(vector_iteracion),
"Mín."=min(vector_iteracion),
"Máx"=max(vector_iteracion),
"Asimetría"=skewness(vector_iteracion),
"Curtosis"= kurtosis(vector_iteracion)
)
ResultadoTer=rbind(ResultadoTer,x)
}
## [1] "Para una muestra de tamaño: 5"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.92755, p-value = 8.177e-15
## [1] "Para una muestra de tamaño: 10"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.96531, p-value = 1.748e-09
## [1] "Para una muestra de tamaño: 15"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.96916, p-value = 9.363e-09
## [1] "Para una muestra de tamaño: 20"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.97288, p-value = 5.358e-08
## [1] "Para una muestra de tamaño: 30"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.9868, p-value = 0.0001696
## [1] "Para una muestra de tamaño: 50"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.98978, p-value = 0.0015
## [1] "Para una muestra de tamaño: 60"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.99205, p-value = 0.009041
## [1] "Para una muestra de tamaño: 100"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.99365, p-value = 0.03414
## [1] "Para una muestra de tamaño: 200"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.99536, p-value = 0.1428
## [1] "Para una muestra de tamaño: 500"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.99617, p-value = 0.2705
ResultadoTer
## ID Tamaño_muestra Media Mediana Desvest Varianza Mín.
## 1 1 5 0.5008000 0.6000000 0.21948966 0.0481757114 0.0000000
## 2 2 10 0.4938000 0.5000000 0.16060245 0.0257931463 0.1000000
## 3 3 15 0.5012000 0.5333333 0.11783084 0.0138841060 0.1333333
## 4 4 20 0.5016000 0.5000000 0.10728682 0.0115104609 0.2500000
## 5 5 30 0.5134667 0.5000000 0.08572574 0.0073489022 0.2333333
## 6 6 50 0.4983600 0.5000000 0.06926837 0.0047981066 0.2800000
## 7 7 60 0.4981333 0.5000000 0.06019770 0.0036237631 0.3333333
## 8 8 100 0.5005800 0.5000000 0.04958610 0.0024587812 0.3600000
## 9 9 200 0.5053700 0.5050000 0.03189903 0.0010175482 0.4000000
## 10 10 500 0.5045800 0.5040000 0.01529115 0.0002338192 0.4640000
## Máx Asimetría Curtosis
## 1 1.0000000 -0.046611079 2.721111
## 2 1.0000000 0.083542267 2.682076
## 3 0.8666667 0.038900094 3.077708
## 4 0.8500000 0.322734283 3.046769
## 5 0.8000000 -0.008142678 3.041527
## 6 0.7000000 -0.153368092 3.025490
## 7 0.7000000 0.011323355 3.097245
## 8 0.6500000 0.135642104 3.031786
## 9 0.6050000 0.035396404 3.068533
## 10 0.5540000 0.119106731 3.069535
e.Repita toda la simulación (puntos a – d), pero ahora para
lotes con 10% de plantas enfermas y de nuevo para lotes con un 90% de
plantas enfermas. Concluya sobre los resultados del ejercicio.
Procederemos a realizar los mismos puntos anteriores con una
probalildiad de 10% de plantas enfermas
n=1000
Probabilidad=0.1
GeneracionPoblacion = function(n, Probabilidad){
#pooblacion generarl creada
Poblacion1= rbinom(n, 1, Probabilidad)
muestrapoblacion= Poblacion1[c(1:30)]
muestrapoblacion
#retormacion la Poblacion
return(Poblacion1)
}
Poblacion=GeneracionPoblacion(n, Probabilidad)
Ahora procederemos a seleccionar una muestra de la población solicitada para lo cual deseamos una muestra de 800 registros
#funcion para la seleccion de la muestra de poblacion
Muestra = function(Poblacion, TamanoMuestra){
MuestraGenerada=sample(Poblacion, size=TamanoMuestra, replace=FALSE, prob = NULL)
return(MuestraGenerada)
}
#funcion para calcular el estimar de la proporcion muestral p para un tamaño de muestra N
Estimador= function(MuestraGenerada){
media=1 # se coloca el 1 por que los valores oscilan entre 0 y 1 y se considera que se esta enfermo si esta si esta en 1
Estimador1 = sum(MuestraGenerada == media)/length(MuestraGenerada)
return(Estimador1)
}
#inicalizamos la mustra
N1=800
PrimeraMuestra = Muestra(Poblacion,N1)
PrimeraMuestra
## [1] 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
## [38] 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0
## [75] 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0
## [112] 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0
## [149] 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
## [186] 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0
## [223] 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0
## [260] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## [297] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## [334] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## [371] 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## [408] 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
## [445] 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
## [482] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## [519] 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
## [556] 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
## [593] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0
## [630] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
## [667] 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0
## [704] 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## [741] 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## [778] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#distribucion de la muestra
tamanoM1=length(PrimeraMuestra)
paste("El tamalo de la muesta es:", tamanoM1)
## [1] "El tamalo de la muesta es: 800"
• Ahora procederemos a calcular el estimador de la proporción muestral pˆ para un tamaño de muestra dado n.
## [1] "para la muestra : 800 els estimador p es = 0.09375"
## ID Tamaño_muestra Media Mediana Desvciacion.est Varianza Mín. Máx
## 1 0 1000 0.090064 0.09 0.009343796 8.730652e-05 0.062 0.118
## Asimetría Curtosis
## 1 0.0228277 3.085301
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
-procedemos a crear un vector con todos los tamaños de muestras
Vector_Muestras = c(5,10,15,20,30,50,60,100,200,500)
-procedemos a crear una funcion que permita la ejeucion de los pasos B y C para todas las muestras
ResultadoTer=data.frame()
for (i in 1:length(Vector_Muestras)) {
#este es el punto B
#generamos la muestra
MuestrasGen = Muestra(Poblacion,Vector_Muestras[i])
#obetenemos el estimador parqa la muestra
Estimador(MuestrasGen)
#este es el punto C
iteraciones =500
#generamos las iteraciones de las muestas
vector_iteracion = Muestas_Itraciones(Poblacion, iteraciones, Vector_Muestras[i])
#colcoamos 3 gracias en una misma liena
par(mfrow=c(1,3))
#generamos el histograma de las muestas
boxplot(vector_iteracion, main="grafico de cajas")
abline(h=line, col="red")
hist(vector_iteracion, las=1, ylab = "Frecuencia", main = paste("Muestra de tamaño:", Vector_Muestras[i]), col = "gray",prob = TRUE)
abline(v=mean(vector_iteracion), col="blue", lwd=3)
lines(density(vector_iteracion), col = 2, lwd = 2)
qqnorm(vector_iteracion, xlab="Cuantiles teóricos", ylab="Cuantiles muestrales",main="qq-normalidad")
qqline(vector_iteracion,col = 'red', lwd = 2, lty = 2)
print(paste('Para una muestra de tamaño: ', Vector_Muestras[i]))
print(shapiro.test(vector_iteracion))
x=data.frame("ID"=i,"Tamaño_muestra"=Vector_Muestras[i],
"Media"=mean(vector_iteracion),
"Mediana"=median(vector_iteracion),
"Desvest"=sd(vector_iteracion),
"Varianza"=var(vector_iteracion),
"Mín."=min(vector_iteracion),
"Máx"=max(vector_iteracion),
"Asimetría"=skewness(vector_iteracion),
"Curtosis"= kurtosis(vector_iteracion)
)
ResultadoTer=rbind(ResultadoTer,x)
}
## [1] "Para una muestra de tamaño: 5"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.69401, p-value < 2.2e-16
## [1] "Para una muestra de tamaño: 10"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.81674, p-value < 2.2e-16
## [1] "Para una muestra de tamaño: 15"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.88444, p-value < 2.2e-16
## [1] "Para una muestra de tamaño: 20"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.91025, p-value < 2.2e-16
## [1] "Para una muestra de tamaño: 30"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.93951, p-value = 2.196e-13
## [1] "Para una muestra de tamaño: 50"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.96992, p-value = 1.321e-08
## [1] "Para una muestra de tamaño: 60"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.97538, p-value = 1.864e-07
## [1] "Para una muestra de tamaño: 100"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.97974, p-value = 1.984e-06
## [1] "Para una muestra de tamaño: 200"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.98793, p-value = 0.0003788
## [1] "Para una muestra de tamaño: 500"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.99253, p-value = 0.01335
ResultadoTer
## ID Tamaño_muestra Media Mediana Desvest Varianza Mín.
## 1 1 5 0.09640000 0.00000000 0.135439017 1.834373e-02 0.00000000
## 2 2 10 0.08620000 0.10000000 0.089920695 8.085731e-03 0.00000000
## 3 3 15 0.09200000 0.06666667 0.076309907 5.823202e-03 0.00000000
## 4 4 20 0.08980000 0.10000000 0.062560272 3.913788e-03 0.00000000
## 5 5 30 0.08733333 0.08333333 0.053715233 2.885326e-03 0.00000000
## 6 6 50 0.09176000 0.08000000 0.039729829 1.578459e-03 0.00000000
## 7 7 60 0.09150000 0.10000000 0.036451897 1.328741e-03 0.01666667
## 8 8 100 0.08792000 0.09000000 0.025221933 6.361459e-04 0.02000000
## 9 9 200 0.08970000 0.09000000 0.017172647 2.948998e-04 0.04500000
## 10 10 500 0.09003600 0.09000000 0.008950918 8.011894e-05 0.06200000
## Máx Asimetría Curtosis
## 1 0.6000000 1.30551225 4.290474
## 2 0.4000000 0.77074372 2.853042
## 3 0.4000000 0.76941503 3.460918
## 4 0.3500000 0.67216121 3.354010
## 5 0.2666667 0.62733697 3.488790
## 6 0.2200000 0.35335223 3.146602
## 7 0.2000000 0.12220927 2.792641
## 8 0.1800000 0.27797015 2.964530
## 9 0.1450000 0.21170542 3.050031
## 10 0.1140000 0.07284658 2.867285
Procederemos a realizar los mismos puntos anteriores con una
probalildiad de 90% de plantas enfermas
n=1000
Probabilidad=0.9
GeneracionPoblacion = function(n, Probabilidad){
#pooblacion generarl creada
Poblacion1= rbinom(n, 1, Probabilidad)
muestrapoblacion= Poblacion1[c(1:30)]
muestrapoblacion
#retormacion la Poblacion
return(Poblacion1)
}
Poblacion=GeneracionPoblacion(n, Probabilidad)
Ahora procederemos a seleccionar una muestra de la población solicitada para lo cual deseamos una muestra de 800 registros
#funcion para la seleccion de la muestra de poblacion
Muestra = function(Poblacion, TamanoMuestra){
MuestraGenerada=sample(Poblacion, size=TamanoMuestra, replace=FALSE, prob = NULL)
return(MuestraGenerada)
}
#funcion para calcular el estimar de la proporcion muestral p para un tamaño de muestra N
Estimador= function(MuestraGenerada){
media=1 # se coloca el 1 por que los valores oscilan entre 0 y 1 y se considera que se esta enfermo si esta si esta en 1
Estimador1 = sum(MuestraGenerada == media)/length(MuestraGenerada)
return(Estimador1)
}
#inicalizamos la mustra
N1=800
PrimeraMuestra = Muestra(Poblacion,N1)
PrimeraMuestra
## [1] 0 1 1 1 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1
## [38] 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1
## [75] 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0
## [112] 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1
## [149] 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [186] 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [223] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [260] 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1
## [297] 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
## [334] 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1
## [371] 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
## [408] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0
## [445] 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1
## [482] 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1
## [519] 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1
## [556] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1
## [593] 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
## [630] 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1
## [667] 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1
## [704] 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1
## [741] 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1
## [778] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#distribucion de la muestra
tamanoM1=length(PrimeraMuestra)
paste("El tamalo de la muesta es:", tamanoM1)
## [1] "El tamalo de la muesta es: 800"
• Ahora procederemos a calcular el estimador de la proporción muestral pˆ para un tamaño de muestra dado n.
## [1] "para la muestra : 800 els estimador p es = 0.9"
## ID Tamaño_muestra Media Mediana Desvciacion.est Varianza Mín. Máx
## 1 0 1000 0.904656 0.904 0.009495578 9.0166e-05 0.874 0.93
## Asimetría Curtosis
## 1 0.001876631 2.94467
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
-procedemos a crear un vector con todos los tamaños de muestras
Vector_Muestras = c(5,10,15,20,30,50,60,100,200,500)
-procedemos a crear una funcion que permita la ejeucion de los pasos B y C para todas las muestras
ResultadoTer=data.frame()
for (i in 1:length(Vector_Muestras)) {
#este es el punto B
#generamos la muestra
MuestrasGen = Muestra(Poblacion,Vector_Muestras[i])
#obetenemos el estimador parqa la muestra
Estimador(MuestrasGen)
#este es el punto C
iteraciones =500
#generamos las iteraciones de las muestas
vector_iteracion = Muestas_Itraciones(Poblacion, iteraciones, Vector_Muestras[i])
#colcoamos 3 gracias en una misma liena
par(mfrow=c(1,3))
#generamos el histograma de las muestas
boxplot(vector_iteracion, main="grafico de cajas")
abline(h=line, col="red")
hist(vector_iteracion, las=1, ylab = "Frecuencia", main = paste("Muestra de tamaño:", Vector_Muestras[i]), col = "gray",prob = TRUE)
abline(v=mean(vector_iteracion), col="blue", lwd=3)
lines(density(vector_iteracion), col = 2, lwd = 2)
qqnorm(vector_iteracion, xlab="Cuantiles teóricos", ylab="Cuantiles muestrales",main="qq-normalidad")
qqline(vector_iteracion,col = 'red', lwd = 2, lty = 2)
print(paste('Para una muestra de tamaño: ', Vector_Muestras[i]))
print(shapiro.test(vector_iteracion))
x=data.frame("ID"=i,"Tamaño_muestra"=Vector_Muestras[i],
"Media"=mean(vector_iteracion),
"Mediana"=median(vector_iteracion),
"Desvest"=sd(vector_iteracion),
"Varianza"=var(vector_iteracion),
"Mín."=min(vector_iteracion),
"Máx"=max(vector_iteracion),
"Asimetría"=skewness(vector_iteracion),
"Curtosis"= kurtosis(vector_iteracion)
)
ResultadoTer=rbind(ResultadoTer,x)
}
## [1] "Para una muestra de tamaño: 5"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.70651, p-value < 2.2e-16
## [1] "Para una muestra de tamaño: 10"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.84595, p-value < 2.2e-16
## [1] "Para una muestra de tamaño: 15"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.8882, p-value < 2.2e-16
## [1] "Para una muestra de tamaño: 20"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.91956, p-value = 1.115e-15
## [1] "Para una muestra de tamaño: 30"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.95281, p-value = 1.507e-11
## [1] "Para una muestra de tamaño: 50"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.97308, p-value = 5.894e-08
## [1] "Para una muestra de tamaño: 60"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.97074, p-value = 1.934e-08
## [1] "Para una muestra de tamaño: 100"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.97919, p-value = 1.448e-06
## [1] "Para una muestra de tamaño: 200"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.98504, p-value = 5.139e-05
## [1] "Para una muestra de tamaño: 500"
##
## Shapiro-Wilk normality test
##
## data: vector_iteracion
## W = 0.99327, p-value = 0.02486
ResultadoTer
## ID Tamaño_muestra Media Mediana Desvest Varianza Mín.
## 1 1 5 0.8984000 1.0000000 0.139557847 1.947639e-02 0.4000000
## 2 2 10 0.8978000 0.9000000 0.096715396 9.353868e-03 0.6000000
## 3 3 15 0.9080000 0.9333333 0.072724135 5.288800e-03 0.6666667
## 4 4 20 0.9036000 0.9000000 0.062968007 3.964970e-03 0.7000000
## 5 5 30 0.8984667 0.9000000 0.054703956 2.992523e-03 0.7333333
## 6 6 50 0.9022800 0.9000000 0.039622487 1.569941e-03 0.7800000
## 7 7 60 0.9058333 0.9000000 0.036564730 1.336980e-03 0.7500000
## 8 8 100 0.9066800 0.9100000 0.027801501 7.729234e-04 0.8300000
## 9 9 200 0.9046000 0.9050000 0.018041369 3.254910e-04 0.8400000
## 10 10 500 0.9047320 0.9040000 0.009141954 8.357533e-05 0.8800000
## Máx Asimetría Curtosis
## 1 1.0000000 -1.19364422 3.724052
## 2 1.0000000 -0.71442654 2.848789
## 3 1.0000000 -0.64229374 3.098915
## 4 1.0000000 -0.53344027 2.882151
## 5 1.0000000 -0.44363454 3.008581
## 6 1.0000000 -0.20627365 2.813127
## 7 0.9833333 -0.42369342 3.558055
## 8 0.9800000 -0.29875304 2.687803
## 9 0.9550000 -0.32710980 3.456931
## 10 0.9360000 0.09848289 3.028226
Para el punto C podemos observar las siguientes conclusiones :
• Para una probabilidad de 50% se puede visualizar que los
resultados son simétricos es decir mucho en el centro, por otro lado la
varianza es muy pequeña lo que nos indica que el estimador es eficiente
e insesgado y debido a una asimetría negativa tenemos más valores
distintos a la izquierda de la media. Y debido a una curtosis positiva
podemos decir que la distribucion se llama leptocúrtica, más puntiaguda
que la anterior. Hay una mayor concentración de los datos en torno a la
media. Para el punto D se puede observar el siguiente
resultado: • Se puede observar que a medida que se
aumenta la muestra existe una convergencia de la distribución hacia la
media lo cual determina una distribución normal al aumentarse el tamaño
de la muestra. • En todos los casos el valor p del P-value
generado por el Sharpiro-Wilk es bastante pequeño por lo que se
considera que la hipótesis nula (la distribución es normal) debe ser
dada como verdadera, a pesar que el valor crece conforme al incremento
este no supera un valor que nos permita descartar la hipótesis nula cono
falsa. Para el punto E se observaron los siguientes
Resultados
• No importa si la muestras esta
desbalanceada ya sea con muchos positivos o muchos negativos, siempre se
mantiene una distribución estándar de los datos cercanos a la media,
además que el valor de p-value sigue siendo muy pequeño como para
descartar la hipótesis nula (es una distribución normal). •
Lo único que varia con la ejecución con probabilidades de 10% o 90% es
que comenzamos con asimetrías negativa o positiva dependiendo si tenemos
mucho de mucho o poco de poco.
Luego de realizado el análisis y de determinado el comportamiento de cada uno de los muestras podemos llegar a las siguientes conclusiones: • el teorema de limite central se cumple mientras más sea la cantidad de la muestra no importa si los índices de probabilidad son pequeños o altos dentro de las muestras , a mayor cantidad de registros se tendrá una tendencia a un proceso de normalización. • El caso de una probabilidad de 10% se denota una asimetría negativa ya que solo muy pocas plantas están saludables pero a medida que ampliamos el tamaño de las muestras se ve un proceso de normalización, y también si vemos el caso con probabilidad 90% vemos una asimetría positiva que a medida que se incrementa la muestra se va también normalizando • Aunque en la afirmacion se menciona que se empieza a ver el cambio desde la muestra con n>30 y nos parece que el cambio s ise ve en este punto esto debido a que la varianza baja bantante entre la muestra con 15 y la muestra con 30 llegando a e-03 o menor