Simulación de la distribución de muestreo
Construimos una simulación de la distribución de muestreo, siguiendo
el ejemplo del libro de Contento (aunque aquí en Python, no en R).
Ojo: recuerde que los bloques de la estructrua for requieren que las
instrucciones tengan la misma sangría y estén en el mismo bloque de
código. Y se recomienda agrupar instrucciones que tengan funcionalidad
similar por bloques.
Incluimos las librerías e iniciamos la semilla del generador:
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(3)
Ingresamos los parámetros, tanto de la distribución que vamos a estudiar, como , tamaño de muestras y , número de muestras.
miu = 10
sigma = 3
n = 3
k = 4
Generamos arreglos donde guardar promedios y muestras
promedios = np.zeros(k)
mat = np.zeros((k,n)) # Arreglo de k vectores cada uno de tamaño n
Aquí recomendamos imprimir las variables promedios y mat, para que veámos cómo es su estructura. ¡hágalo!
El bloque que genera las muestras, calcula los promedios y los guarda es el siguiente:
for i in range(k):
muestra = np.random.normal(miu,sigma,n)
mat[i] = muestra
promedios[i] = np.mean(muestra)
De nuevo, imprima las variables promediosy mat para que vea cómo
se llenaron.
Ahora, vuelva atrás en su código y cambie los valores de n y k a
25 y 100 respectivamente. Los valores anteriores eran de prueba, para
revisar cómo estaba guardando los datos. Con los nuevos valores de
ny k, vuelva a correr el código.
Para generar una figura de los histogramas de tres muestras:
plt.figure()
plt.title("tres muestras")
plt.hist(mat[k-3],alpha=0.7,label='muestra '+str(k-3)+ ' $\overline{X}=$ '+str(round(promedios[k-3],3)))
plt.hist(mat[k-2],alpha=0.7,label='muestra '+str(k-2)+ ' $\overline{X}=$ '+str(round(promedios[k-2],3)))
plt.hist(mat[k-1],alpha=0.7,label='muestra '+str(k-1)+ ' $\overline{X}=$ '+str(round(promedios[k-1],3)))
plt.legend()
plt.xlabel(r'''$x_i$''')
plt.ylabel(r'''$N(X)$''')

Podemos también generar un histograma de los promedios, llamado distribución de muestreo del promedio.
plt.figure()
plt.hist(promedios,color='r')
plt.title("Distribución de Muestreo")
plt.xlabel(r'''$\overline{x}$''')

También podemos imprimir los valores
print("el promedio es " + str(np.mean(promedios)))
print("la desviación estándar es " + str(np.std(promedios)))
Taller en clase
Haremos los ejercicios de la página 243 del libro de Contento.