El proceso de simulación constituye una herramienta poderosa para la estadística que se pueden emplear para entender relaciones complejas y estimar valores difíciles de calcular directamente. Para entenderlo utilizaremos se plantean los siguientes problemas:
Teorema del Límite Central
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:
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\%\)
lote = 1000 #Tamaño de la población
rho = 0.5 #Este valor representa el porcentaje de plantas enfermas.
poblacion = rbinom(lote, 1, rho)
n<-20 # tamaño de las muestras a seleccionar
k<-1 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el rho de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(muestra=mat,
rho_hat=mediax)
}
resultado
## $muestra
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
## [1,] 0 0 1 0 1 1 0 0 0 1 1 1 1 0
## [,15] [,16] [,17] [,18] [,19] [,20]
## [1,] 1 0 1 0 1 0
##
## $rho_hat
## [1] 0.5
Repita el escenario anterior (b) \(n=500\) veces y analice los resultados en cuanto al comportamiento de los 500 resultados del estimador \(\widehat{\rho}\). ¿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<-20 # tamaño de las muestras a seleccionar
k<-500 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
resultado
## $rho_hat
## [1] 0.50 0.45 0.55 0.40 0.55 0.35 0.55 0.60 0.35 0.60 0.40 0.45 0.50 0.50 0.50
## [16] 0.50 0.60 0.60 0.50 0.40 0.50 0.70 0.65 0.45 0.55 0.40 0.45 0.25 0.60 0.70
## [31] 0.45 0.70 0.55 0.70 0.55 0.25 0.40 0.50 0.65 0.70 0.50 0.35 0.50 0.35 0.65
## [46] 0.50 0.60 0.60 0.65 0.55 0.40 0.45 0.35 0.50 0.55 0.70 0.40 0.30 0.45 0.40
## [61] 0.55 0.55 0.40 0.45 0.50 0.50 0.55 0.50 0.45 0.65 0.70 0.45 0.30 0.55 0.50
## [76] 0.55 0.50 0.40 0.55 0.40 0.35 0.45 0.40 0.50 0.45 0.70 0.60 0.40 0.35 0.60
## [91] 0.45 0.45 0.50 0.40 0.60 0.60 0.55 0.40 0.45 0.50 0.40 0.45 0.50 0.60 0.40
## [106] 0.60 0.40 0.35 0.50 0.50 0.55 0.35 0.45 0.45 0.40 0.40 0.40 0.70 0.55 0.60
## [121] 0.50 0.65 0.35 0.40 0.60 0.30 0.30 0.60 0.75 0.50 0.50 0.35 0.65 0.65 0.30
## [136] 0.50 0.75 0.55 0.50 0.45 0.40 0.55 0.40 0.45 0.50 0.50 0.60 0.60 0.50 0.55
## [151] 0.60 0.40 0.65 0.65 0.60 0.65 0.40 0.50 0.35 0.45 0.45 0.60 0.60 0.35 0.55
## [166] 0.60 0.45 0.45 0.30 0.50 0.70 0.50 0.40 0.45 0.45 0.50 0.55 0.35 0.55 0.70
## [181] 0.45 0.55 0.60 0.30 0.55 0.50 0.30 0.35 0.50 0.70 0.45 0.40 0.45 0.50 0.40
## [196] 0.45 0.50 0.45 0.30 0.35 0.35 0.35 0.50 0.70 0.50 0.55 0.50 0.75 0.35 0.55
## [211] 0.40 0.45 0.35 0.25 0.50 0.50 0.25 0.55 0.40 0.45 0.40 0.40 0.65 0.40 0.70
## [226] 0.60 0.50 0.45 0.55 0.20 0.40 0.70 0.40 0.60 0.35 0.40 0.40 0.65 0.50 0.70
## [241] 0.45 0.25 0.35 0.45 0.50 0.30 0.30 0.60 0.55 0.50 0.35 0.35 0.45 0.60 0.60
## [256] 0.60 0.35 0.40 0.40 0.60 0.40 0.80 0.45 0.65 0.60 0.65 0.40 0.45 0.30 0.50
## [271] 0.55 0.25 0.30 0.55 0.60 0.45 0.65 0.45 0.35 0.45 0.45 0.60 0.50 0.65 0.55
## [286] 0.50 0.20 0.40 0.50 0.35 0.50 0.35 0.65 0.45 0.55 0.30 0.70 0.30 0.45 0.55
## [301] 0.55 0.45 0.50 0.45 0.45 0.55 0.60 0.45 0.50 0.45 0.75 0.35 0.40 0.50 0.50
## [316] 0.45 0.60 0.55 0.35 0.40 0.50 0.55 0.45 0.75 0.50 0.50 0.45 0.40 0.50 0.80
## [331] 0.55 0.35 0.40 0.55 0.60 0.55 0.60 0.25 0.55 0.45 0.55 0.65 0.45 0.40 0.45
## [346] 0.60 0.50 0.65 0.55 0.65 0.35 0.35 0.30 0.55 0.55 0.60 0.30 0.55 0.50 0.45
## [361] 0.85 0.70 0.40 0.60 0.55 0.50 0.65 0.45 0.45 0.55 0.40 0.60 0.35 0.80 0.60
## [376] 0.50 0.30 0.50 0.50 0.65 0.40 0.70 0.55 0.40 0.40 0.35 0.40 0.55 0.70 0.60
## [391] 0.45 0.45 0.35 0.60 0.50 0.55 0.50 0.55 0.45 0.45 0.60 0.60 0.55 0.70 0.35
## [406] 0.55 0.55 0.40 0.45 0.60 0.30 0.55 0.45 0.45 0.55 0.55 0.45 0.50 0.50 0.60
## [421] 0.50 0.40 0.30 0.40 0.45 0.45 0.60 0.50 0.45 0.45 0.50 0.50 0.30 0.50 0.30
## [436] 0.45 0.50 0.40 0.50 0.50 0.40 0.60 0.55 0.55 0.40 0.45 0.70 0.30 0.50 0.55
## [451] 0.65 0.70 0.45 0.40 0.45 0.75 0.55 0.40 0.50 0.65 0.45 0.40 0.40 0.55 0.45
## [466] 0.45 0.40 0.50 0.60 0.50 0.45 0.60 0.40 0.30 0.40 0.55 0.60 0.50 0.60 0.45
## [481] 0.50 0.60 0.55 0.30 0.45 0.45 0.40 0.45 0.55 0.65 0.35 0.55 0.60 0.70 0.45
## [496] 0.55 0.50 0.45 0.50 0.55
### Histograma para visualizar el comportamiento de los rho en cada muestra
par(mfrow = c(1, 2))
hist(mediax,probability=T,main="Histograma de los rho",xlab="")
lines = plot(density(mediax), type = "l", col="red", main="Densidad de los valor de rho",xlab="")
En el histograma de los valores de \(\widehat{\rho}\) se observa que con un tamaño de muestra de \(n=500\), estos comienzan a tener una forma de campana, lo cual se valida en la gráfica de densidad la cual comienza a tomar una forma cercana a la distribución normal.
Por otro lado, al revisar los valores de la media y la varianza se observa que el primero se acerca al valor de \(\rho\) y el segundo es un valor muy bajo.
### Estimación Parámetros según el TLC ###
mean(mediax) #valor esperado de la media muestral
## [1] 0.4932
var(mediax) #varianza de la media muestral
## [1] 0.01282942
sd(mediax) #error estándar de la media muestral
## [1] 0.113267
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
n<-20 # tamaño de las muestras a seleccionar
k<-5 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_5 <- shapiro.test(mediax)
a_5 <- mediax
#--------------
k<-10 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_10 <- shapiro.test(mediax)
a_10 <- mediax
#--------------
k<-15 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_15 <- shapiro.test(mediax)
a_15 <- mediax
#--------------
k<-20 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_20 <- shapiro.test(mediax)
a_20 <- mediax
#--------------
k<-30 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_30 <- shapiro.test(mediax)
a_30 <- mediax
#--------------
k<-50 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_50 <- shapiro.test(mediax)
a_50 <- mediax
#--------------
k<-60 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_60 <- shapiro.test(mediax)
a_60 <- mediax
#--------------
k<-100 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_100 <- shapiro.test(mediax)
a_100 <- mediax
#--------------
k<-200 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_200 <- shapiro.test(mediax)
a_200 <- mediax
#--------------
k<-500 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_500 <- shapiro.test(mediax)
a_500 <- mediax
#--------------
x.test_5
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.7657, p-value = 0.04133
x.test_10
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.94265, p-value = 0.5829
x.test_15
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.95426, p-value = 0.5939
x.test_20
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.92406, p-value = 0.1187
x.test_30
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.97854, p-value = 0.7855
x.test_50
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.94399, p-value = 0.01943
x.test_60
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.96929, p-value = 0.1347
x.test_100
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.96753, p-value = 0.01435
x.test_200
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.97645, p-value = 0.00192
x.test_500
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.97997, p-value = 2.265e-06
De acuerdo con la prueba Shapiro-Wilk tenemos que:
\(H_0=\) La distribución es normal \(H_1=\) La distribución no es normal
Con base en lo anterior, los resultados de la prueba para las diferentes tamaños de muestra indican que, a medida que el tamaño de muestra aumenta el \(p-value\) disminuye y por tanto se rechaza la hipotesis nula. En este escenario, esto ocurre con valores de \(n>100\).
Por otro lado, la función \(qqnorm\) genera un gráfico \(Q-Q\) que compara los cuantiles de los datos con los cuantiles teóricos de la distribución normal estándar, N(0, 1).
La función \(qqline\) superpone una línea que nos ayuda a evaluar la relación lineal de las dos distribuciones. Esta línea, que por defecto cruza los puntos del primer (0,25) y el tercer cuartil (0,75), es una aproximación robusta de los valores esperados de nuestros datos si siguieran una distribución normal estándar. Si los datos se alejan de esta línea, especialmente cerca del centro, nos sugeriría que nuestros datos no se distribuyen normalmente.
par(mfrow = c(1, 2))
par(mfrow = c(2, 5))
qqnorm(a_5,main="qqnorm n=5",xlab="")
qqline(a_5, col ="red")
qqnorm(a_10,main="qqnorm n=10",xlab="")
qqline(a_10, col ="red")
qqnorm(a_15,main="qqnorm n=15",xlab="")
qqline(a_15, col ="red")
qqnorm(a_20,main="qqnorm n=20",xlab="")
qqline(a_20, col ="red")
qqnorm(a_30,main="qqnorm n=30",xlab="")
qqline(a_30, col ="red")
qqnorm(a_50,main="qqnorm n=50",xlab="")
qqline(a_50, col ="red")
qqnorm(a_60,main="qqnorm n=60",xlab="")
qqline(a_60, col ="red")
qqnorm(a_100,main="qqnorm n=100",xlab="")
qqline(a_100, col ="red")
qqnorm(a_200,main="qqnorm n=200",xlab="")
qqline(a_200, col ="red")
qqnorm(a_500,main="qqnorm n=500",xlab="")
qqline(a_500, col ="red")
Los resultados gráficos muestran que con el aumento de la muestra se asocia con una mejor aproximación de normalidad en los datos.
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.
lote = 1000 #Tamaño de la población
rho = 0.1 #Este valor representa el porcentaje de plantas enfermas.
poblacion = rbinom(lote, 1, rho)
n<-20 # tamaño de las muestras a seleccionar
k<-1 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el rho de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(muestra=mat,
rho_hat=mediax)
}
resultado
## $muestra
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
## [1,] 0 0 0 0 0 0 0 0 0 0 0 1 0 0
## [,15] [,16] [,17] [,18] [,19] [,20]
## [1,] 0 0 0 0 1 0
##
## $rho_hat
## [1] 0.1
n<-20 # tamaño de las muestras a seleccionar
k<-500 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
resultado
## $rho_hat
## [1] 0.10 0.00 0.15 0.15 0.00 0.20 0.10 0.10 0.00 0.15 0.15 0.15 0.05 0.10 0.15
## [16] 0.15 0.05 0.05 0.05 0.05 0.10 0.10 0.05 0.15 0.10 0.15 0.10 0.05 0.15 0.10
## [31] 0.05 0.15 0.10 0.20 0.15 0.15 0.10 0.05 0.10 0.10 0.00 0.05 0.10 0.10 0.00
## [46] 0.15 0.05 0.15 0.05 0.00 0.00 0.00 0.10 0.15 0.10 0.10 0.05 0.15 0.10 0.10
## [61] 0.05 0.10 0.00 0.00 0.00 0.10 0.10 0.15 0.10 0.15 0.05 0.05 0.15 0.10 0.10
## [76] 0.00 0.10 0.00 0.10 0.05 0.15 0.20 0.05 0.05 0.10 0.00 0.20 0.15 0.15 0.10
## [91] 0.20 0.10 0.25 0.05 0.10 0.15 0.05 0.00 0.00 0.10 0.20 0.15 0.00 0.20 0.05
## [106] 0.20 0.00 0.10 0.10 0.05 0.20 0.00 0.10 0.00 0.00 0.05 0.10 0.05 0.10 0.05
## [121] 0.15 0.10 0.10 0.10 0.00 0.00 0.20 0.05 0.10 0.15 0.00 0.15 0.20 0.00 0.15
## [136] 0.05 0.05 0.15 0.20 0.05 0.05 0.10 0.00 0.10 0.00 0.00 0.15 0.15 0.05 0.10
## [151] 0.10 0.10 0.05 0.05 0.10 0.10 0.10 0.10 0.10 0.15 0.05 0.10 0.15 0.10 0.05
## [166] 0.10 0.05 0.10 0.30 0.15 0.10 0.00 0.10 0.20 0.15 0.10 0.00 0.15 0.10 0.05
## [181] 0.10 0.35 0.00 0.00 0.10 0.15 0.10 0.05 0.05 0.15 0.20 0.00 0.15 0.10 0.10
## [196] 0.10 0.05 0.10 0.10 0.05 0.10 0.25 0.15 0.20 0.05 0.20 0.10 0.05 0.00 0.00
## [211] 0.05 0.05 0.05 0.20 0.10 0.00 0.10 0.10 0.15 0.10 0.15 0.05 0.10 0.05 0.35
## [226] 0.15 0.20 0.05 0.05 0.05 0.20 0.10 0.05 0.05 0.05 0.05 0.20 0.20 0.10 0.05
## [241] 0.15 0.15 0.05 0.00 0.00 0.05 0.05 0.10 0.20 0.05 0.00 0.05 0.05 0.10 0.00
## [256] 0.10 0.05 0.05 0.10 0.10 0.05 0.15 0.05 0.15 0.05 0.10 0.15 0.10 0.15 0.15
## [271] 0.15 0.15 0.10 0.05 0.10 0.05 0.00 0.15 0.10 0.15 0.15 0.15 0.10 0.10 0.00
## [286] 0.10 0.00 0.10 0.15 0.25 0.15 0.10 0.05 0.10 0.05 0.25 0.15 0.05 0.15 0.25
## [301] 0.00 0.05 0.15 0.05 0.05 0.05 0.20 0.10 0.05 0.10 0.05 0.10 0.05 0.15 0.10
## [316] 0.00 0.20 0.15 0.00 0.05 0.10 0.15 0.20 0.10 0.15 0.00 0.20 0.15 0.10 0.10
## [331] 0.15 0.20 0.05 0.10 0.10 0.15 0.20 0.05 0.10 0.05 0.10 0.05 0.00 0.05 0.10
## [346] 0.20 0.10 0.15 0.10 0.15 0.05 0.10 0.15 0.05 0.00 0.10 0.15 0.10 0.10 0.05
## [361] 0.00 0.10 0.05 0.10 0.10 0.15 0.05 0.00 0.15 0.00 0.10 0.00 0.00 0.00 0.00
## [376] 0.10 0.10 0.15 0.15 0.10 0.20 0.15 0.05 0.05 0.10 0.15 0.20 0.00 0.10 0.05
## [391] 0.10 0.15 0.10 0.05 0.10 0.10 0.05 0.15 0.05 0.35 0.00 0.00 0.10 0.05 0.25
## [406] 0.05 0.10 0.15 0.25 0.05 0.05 0.10 0.05 0.10 0.05 0.00 0.10 0.05 0.10 0.05
## [421] 0.10 0.05 0.15 0.25 0.05 0.05 0.15 0.05 0.10 0.15 0.15 0.00 0.00 0.05 0.05
## [436] 0.10 0.10 0.25 0.15 0.20 0.05 0.20 0.05 0.15 0.15 0.10 0.05 0.10 0.10 0.20
## [451] 0.05 0.15 0.05 0.15 0.10 0.10 0.10 0.05 0.15 0.10 0.10 0.10 0.05 0.10 0.05
## [466] 0.05 0.15 0.15 0.05 0.10 0.05 0.20 0.00 0.20 0.10 0.15 0.05 0.05 0.00 0.05
## [481] 0.10 0.10 0.15 0.05 0.05 0.05 0.10 0.10 0.05 0.15 0.20 0.10 0.15 0.20 0.20
## [496] 0.00 0.10 0.05 0.15 0.15
### Histograma para visualizar el comportamiento de los rho en cada muestra
par(mfrow = c(1, 2))
hist(mediax,probability=T,main="Histograma de los rho",xlab="")
lines = plot(density(mediax), type = "l", col="red", main="Densidad de los valor de rho",xlab="")
En el histograma de los valores de \(\widehat{\rho}\) se observa que con un tamaño de muestra de \(n=500\), estos comienzan a tener una forma de campana inclinada hacia la izquierda, lo cual se valida en la gráfica de densidad de los datos.
Por otro lado, al revisar los valores de la media y la varianza se observa que el primero se acerca al valor de \(\rho\) y el segundo es un valor muy bajo.
### Estimación Parámetros según el TLC ###
mean(mediax) #valor esperado de la media muestral
## [1] 0.0964
var(mediax) #varianza de la media muestral
## [1] 0.00408521
sd(mediax) #error estándar de la media muestral
## [1] 0.06391565
n<-20 # tamaño de las muestras a seleccionar
k<-5 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_5 <- shapiro.test(mediax)
a_5 <- mediax
#--------------
k<-10 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_10 <- shapiro.test(mediax)
a_10 <- mediax
#--------------
k<-15 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_15 <- shapiro.test(mediax)
a_15 <- mediax
#--------------
k<-20 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_20 <- shapiro.test(mediax)
a_20 <- mediax
#--------------
k<-30 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_30 <- shapiro.test(mediax)
a_30 <- mediax
#--------------
k<-50 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_50 <- shapiro.test(mediax)
a_50 <- mediax
#--------------
k<-60 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_60 <- shapiro.test(mediax)
a_60 <- mediax
#--------------
k<-100 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_100 <- shapiro.test(mediax)
a_100 <- mediax
#--------------
k<-200 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_200 <- shapiro.test(mediax)
a_200 <- mediax
#--------------
k<-500 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_500 <- shapiro.test(mediax)
a_500 <- mediax
#--------------
x.test_5
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.90758, p-value = 0.4532
x.test_10
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.79406, p-value = 0.01228
x.test_15
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.8872, p-value = 0.06084
x.test_20
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.88709, p-value = 0.02379
x.test_30
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.9277, p-value = 0.04268
x.test_50
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.88537, p-value = 0.0001635
x.test_60
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.89105, p-value = 6.304e-05
x.test_100
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.92414, p-value = 2.35e-05
x.test_200
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.92841, p-value = 2.527e-08
x.test_500
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.91633, p-value = 5.171e-16
De acuerdo con la prueba Shapiro-Wilk tenemos que:
\(H_0=\) La distribución es normal \(H_1=\) La distribución no es normal
Con base en lo anterior, los resultados de la prueba para las diferentes tamaños de muestra indican que, a medida que el tamaño de muestra aumenta el \(p-value\) disminuye y por tanto se rechaza la hipotesis nula. En este escenario, esto ocurre con valores de \(n>20\).
Por otro lado, la función \(qqnorm\) genera un gráfico \(Q-Q\) que compara los cuantiles de los datos con los cuantiles teóricos de la distribución normal estándar, N(0, 1).
La función \(qqline\) superpone una línea que nos ayuda a evaluar la relación lineal de las dos distribuciones. Esta línea, que por defecto cruza los puntos del primer (0,25) y el tercer cuartil (0,75), es una aproximación robusta de los valores esperados de nuestros datos si siguieran una distribución normal estándar. Si los datos se alejan de esta línea, especialmente cerca del centro, nos sugeriría que nuestros datos no se distribuyen normalmente.
par(mfrow = c(1, 2))
par(mfrow = c(2, 5))
qqnorm(a_5,main="qqnorm n=5",xlab="")
qqline(a_5, col ="red")
qqnorm(a_10,main="qqnorm n=10",xlab="")
qqline(a_10, col ="red")
qqnorm(a_15,main="qqnorm n=15",xlab="")
qqline(a_15, col ="red")
qqnorm(a_20,main="qqnorm n=20",xlab="")
qqline(a_20, col ="red")
qqnorm(a_30,main="qqnorm n=30",xlab="")
qqline(a_30, col ="red")
qqnorm(a_50,main="qqnorm n=50",xlab="")
qqline(a_50, col ="red")
qqnorm(a_60,main="qqnorm n=60",xlab="")
qqline(a_60, col ="red")
qqnorm(a_100,main="qqnorm n=100",xlab="")
qqline(a_100, col ="red")
qqnorm(a_200,main="qqnorm n=200",xlab="")
qqline(a_200, col ="red")
qqnorm(a_500,main="qqnorm n=500",xlab="")
qqline(a_500, col ="red")
Los resultados gráficos muestran que con el aumento de la muestra se asocia con una mejor aproximación de normalidad en los datos.
lote = 1000 #Tamaño de la población
rho = 0.9 #Este valor representa el porcentaje de plantas enfermas.
poblacion = rbinom(lote, 1, rho)
n<-20 # tamaño de las muestras a seleccionar
k<-1 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el rho de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(muestra=mat,
rho_hat=mediax)
}
resultado
## $muestra
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
## [1,] 1 1 1 1 1 1 1 1 1 1 1 1 0 1
## [,15] [,16] [,17] [,18] [,19] [,20]
## [1,] 0 1 1 1 1 1
##
## $rho_hat
## [1] 0.9
n<-20 # tamaño de las muestras a seleccionar
k<-500 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
resultado
## $rho_hat
## [1] 0.95 1.00 1.00 0.85 0.95 0.75 1.00 0.80 0.85 1.00 0.95 0.75 0.85 0.95 0.90
## [16] 0.85 1.00 0.90 0.90 0.95 0.95 0.80 0.95 0.90 0.95 0.85 1.00 0.85 0.90 0.95
## [31] 0.80 1.00 0.90 0.90 0.90 0.95 0.85 0.90 0.95 1.00 0.95 0.90 0.90 1.00 0.95
## [46] 0.95 0.95 0.85 1.00 0.95 0.80 0.80 0.95 0.75 1.00 1.00 0.95 0.90 0.85 0.85
## [61] 0.85 0.90 0.95 1.00 0.80 1.00 0.90 0.85 0.95 0.95 0.75 1.00 0.85 0.95 0.95
## [76] 0.85 0.95 0.90 0.85 0.90 0.90 0.85 0.90 1.00 0.90 1.00 0.90 0.95 0.90 0.90
## [91] 1.00 0.85 0.90 0.95 0.90 1.00 0.95 1.00 0.90 0.95 0.95 0.80 0.90 0.95 0.80
## [106] 0.90 0.85 1.00 0.80 0.95 0.85 0.85 0.90 0.85 0.95 1.00 0.90 0.90 0.80 1.00
## [121] 1.00 0.95 0.90 0.90 0.85 0.80 0.90 0.95 0.95 1.00 0.90 0.95 1.00 0.85 0.90
## [136] 0.85 0.80 0.90 0.90 0.85 0.85 0.95 0.95 1.00 0.95 0.90 0.95 0.90 0.95 0.95
## [151] 1.00 0.95 0.95 0.80 0.85 0.80 0.95 1.00 0.95 0.90 0.95 0.90 0.80 0.80 0.85
## [166] 0.95 0.85 0.95 0.95 0.85 0.90 0.85 0.90 0.95 0.95 0.95 0.90 0.90 0.90 0.95
## [181] 0.90 0.85 0.85 1.00 0.90 0.95 0.90 0.95 0.70 0.95 0.90 0.95 0.85 0.95 0.90
## [196] 0.90 0.85 0.85 0.95 0.90 1.00 0.90 0.85 0.95 0.90 0.90 0.95 0.90 0.90 0.90
## [211] 0.85 0.85 1.00 0.80 0.90 0.80 0.85 0.95 0.85 1.00 0.95 0.90 1.00 0.85 0.90
## [226] 0.85 0.75 0.80 0.95 0.90 0.80 0.95 0.85 0.75 0.90 0.85 0.90 0.95 0.90 0.95
## [241] 0.95 0.85 0.95 0.90 1.00 0.90 0.85 0.90 0.95 1.00 0.95 0.95 0.90 0.90 1.00
## [256] 0.95 0.90 0.90 0.95 0.85 0.80 0.90 1.00 0.90 1.00 0.85 0.95 0.80 1.00 0.75
## [271] 0.90 0.85 0.95 0.90 0.95 0.90 0.85 1.00 0.95 0.95 0.95 0.85 0.95 0.95 0.85
## [286] 0.90 0.95 0.85 1.00 0.85 0.85 0.95 0.95 0.95 0.90 0.90 0.90 0.95 0.95 0.80
## [301] 0.95 0.95 0.95 0.95 0.85 0.80 0.85 0.95 0.95 0.95 0.85 0.95 0.90 0.90 0.95
## [316] 0.85 0.90 0.90 0.85 0.95 0.95 0.90 0.90 0.80 0.90 0.85 0.90 0.85 0.80 0.95
## [331] 0.85 0.85 0.80 0.90 0.95 0.90 0.90 0.85 1.00 0.90 0.85 0.90 0.95 0.90 0.95
## [346] 0.90 0.80 0.95 0.85 0.95 0.95 0.95 0.85 0.90 0.90 0.85 0.90 0.85 0.95 0.75
## [361] 0.90 0.95 0.75 0.75 0.90 0.95 0.90 0.90 0.90 0.85 0.85 0.80 0.90 1.00 0.75
## [376] 0.95 0.90 0.85 0.80 0.90 0.90 0.75 0.90 0.90 1.00 0.85 0.90 1.00 0.90 0.95
## [391] 0.95 0.95 0.95 0.85 0.90 0.95 0.90 1.00 0.80 0.90 0.90 0.90 0.90 0.85 0.85
## [406] 0.85 0.95 0.90 0.90 1.00 0.90 1.00 0.90 0.70 1.00 0.90 0.75 0.80 0.80 0.90
## [421] 1.00 0.75 0.85 0.90 0.80 1.00 0.95 0.85 0.95 0.95 0.85 0.85 0.90 0.80 1.00
## [436] 0.95 0.90 0.90 0.95 0.80 0.90 0.95 1.00 0.85 0.90 0.95 0.95 0.95 0.95 0.85
## [451] 0.95 0.80 0.70 1.00 0.85 0.90 0.85 0.90 0.85 0.90 0.85 0.75 1.00 0.95 0.90
## [466] 0.95 0.85 0.85 0.95 0.95 0.95 0.95 0.90 1.00 0.85 0.85 1.00 0.95 0.95 0.90
## [481] 0.75 0.95 0.90 0.95 0.90 0.90 1.00 0.95 0.95 0.90 0.95 0.95 0.95 0.85 0.95
## [496] 0.95 0.85 0.75 0.95 0.95
### Histograma para visualizar el comportamiento de los rho en cada muestra
par(mfrow = c(1, 2))
hist(mediax,probability=T,main="Histograma de los rho",xlab="")
lines = plot(density(mediax), type = "l", col="red", main="Densidad de los valor de rho",xlab="")
En el histograma de los valores de \(\widehat{\rho}\) se observa que con un tamaño de muestra de \(n=500\), estos comienzan a tener una forma de campana inclinada hacia la derecha, lo cual se valida en la gráfica de densidad de los datos.
Por otro lado, al revisar los valores de la media y la varianza se observa que el primero se acerca al valor de \(\rho\) y el segundo es un valor muy bajo.
### Estimación Parámetros según el TLC ###
mean(mediax) #valor esperado de la media muestral
## [1] 0.9034
var(mediax) #varianza de la media muestral
## [1] 0.004136713
sd(mediax) #error estándar de la media muestral
## [1] 0.06431729
n<-20 # tamaño de las muestras a seleccionar
k<-5 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_5 <- shapiro.test(mediax)
a_5 <- mediax
#--------------
k<-10 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_10 <- shapiro.test(mediax)
a_10 <- mediax
#--------------
k<-15 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_15 <- shapiro.test(mediax)
a_15 <- mediax
#--------------
k<-20 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_20 <- shapiro.test(mediax)
a_20 <- mediax
#--------------
k<-30 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_30 <- shapiro.test(mediax)
a_30 <- mediax
#--------------
k<-50 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_50 <- shapiro.test(mediax)
a_50 <- mediax
#--------------
k<-60 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_60 <- shapiro.test(mediax)
a_60 <- mediax
#--------------
k<-100 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_100 <- shapiro.test(mediax)
a_100 <- mediax
#--------------
k<-200 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_200 <- shapiro.test(mediax)
a_200 <- mediax
#--------------
k<-500 # cantidad de muestras
mat<-matrix(,nrow=k,ncol=n) #matriz para almacenar k muestras de tamaño n simuladas
mediax<-vector() #vector para almacenar el promedio de las k muestras
for (i in 1:k)
{
x<-sample(poblacion,n,replace = FALSE, prob = NULL)
mat[i,]<-x
mediax[i]<-mean(x)
resultado <- list(rho_hat=mediax)
}
x.test_500 <- shapiro.test(mediax)
a_500 <- mediax
#--------------
x.test_5
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.68403, p-value = 0.00647
x.test_10
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.8007, p-value = 0.01479
x.test_15
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.83982, p-value = 0.0125
x.test_20
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.90936, p-value = 0.06198
x.test_30
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.91299, p-value = 0.01772
x.test_50
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.91096, p-value = 0.001128
x.test_60
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.91435, p-value = 0.0004579
x.test_100
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.92785, p-value = 3.765e-05
x.test_200
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.92095, p-value = 6.837e-09
x.test_500
##
## Shapiro-Wilk normality test
##
## data: mediax
## W = 0.9281, p-value = 9.421e-15
De acuerdo con la prueba Shapiro-Wilk tenemos que:
\(H_0=\) La distribución es normal \(H_1=\) La distribución no es normal
Con base en lo anterior, los resultados de la prueba para las diferentes tamaños de muestra indican que, a medida que el tamaño de muestra aumenta el \(p-value\) disminuye y por tanto se rechaza la hipotesis nula. En este escenario, esto ocurre con valores de \(n>10\).
Por otro lado, la función \(qqnorm\) genera un gráfico \(Q-Q\) que compara los cuantiles de los datos con los cuantiles teóricos de la distribución normal estándar, N(0, 1).
La función \(qqline\) superpone una línea que nos ayuda a evaluar la relación lineal de las dos distribuciones. Esta línea, que por defecto cruza los puntos del primer (0,25) y el tercer cuartil (0,75), es una aproximación robusta de los valores esperados de nuestros datos si siguieran una distribución normal estándar. Si los datos se alejan de esta línea, especialmente cerca del centro, nos sugeriría que nuestros datos no se distribuyen normalmente.
par(mfrow = c(1, 2))
par(mfrow = c(2, 5))
qqnorm(a_5,main="qqnorm n=5",xlab="")
qqline(a_5, col ="red")
qqnorm(a_10,main="qqnorm n=10",xlab="")
qqline(a_10, col ="red")
qqnorm(a_15,main="qqnorm n=15",xlab="")
qqline(a_15, col ="red")
qqnorm(a_20,main="qqnorm n=20",xlab="")
qqline(a_20, col ="red")
qqnorm(a_30,main="qqnorm n=30",xlab="")
qqline(a_30, col ="red")
qqnorm(a_50,main="qqnorm n=50",xlab="")
qqline(a_50, col ="red")
qqnorm(a_60,main="qqnorm n=60",xlab="")
qqline(a_60, col ="red")
qqnorm(a_100,main="qqnorm n=100",xlab="")
qqline(a_100, col ="red")
qqnorm(a_200,main="qqnorm n=200",xlab="")
qqline(a_200, col ="red")
qqnorm(a_500,main="qqnorm n=500",xlab="")
qqline(a_500, col ="red")
Los resultados gráficos muestran que con el aumento de la muestra se asocia con una mejor aproximación de normalidad en los datos.