¿Por qué aumentar el tamaño de la muestra de los lanzamientos de monedas no mejora la aproximación de la curva normal?

19

Estoy leyendo el libro de Estadísticas (Freeman, Pisani, Purves) y estoy tratando de reproducir un ejemplo en el que se lanza una moneda, digamos 50 veces, el número de caras contadas y esto se repite, digamos 1,000 veces.

  1. Primero, mantuve el número de lanzamientos (tamaño de muestra) en 1000 y aumenté las repeticiones. Cuantas más repeticiones, mejor se ajustan los datos a la curva normal.

  2. Luego, intenté mantener el número de repeticiones fijo en 1,000 y aumenté el tamaño de la muestra. Cuanto más grande era el tamaño de la muestra, peor parecía la curva normal ajustarse a los datos. Esto parece ser contradictorio con el ejemplo del libro que se aproxima mejor a la curva normal a medida que aumenta el tamaño de la muestra.

  3. Quería ver qué sucedería si aumentara el tamaño de la muestra, pero con un mayor número de repeticiones que se fijaron en 10,000. Esto también parece contradecir el libro.

¿Alguna idea de lo que estoy haciendo mal?

Código y gráficos a continuación.

%matplotlib inline

def plot_hist(num_repetitions, num_tosses):
    tosses = np.random.randint(0, 2, size=[num_repetitions, num_tosses])
    sums = np.apply_along_axis(lambda a: np.sum(a == 1), 1, tosses)

    xmin, xmax = min(sums), max(sums)  
    lnspc = np.linspace(xmin, xmax, len(sums))

    m, s = stats.norm.fit(sums) # get mean and standard deviation  
    pdf_g = stats.norm.pdf(lnspc, m, s) # now get theoretical values in our interval  

    bins = np.arange(xmin, xmax) - 0.5
    step = int((xmax - xmin)/5)

    fig, ax = plt.subplots()
    _ = ax.hist(sums, bins, edgecolor='black', linewidth=1.2, density=True)
    _ = ax.plot(lnspc, pdf_g, label="Norm", color='red')
    _ = ax.set_xticks(bins[::step] + 0.5)
    _ = ax.set_title('{:,} tosses - {:,} repetitions'.format(num_tosses, num_repetitions))

1. Experimente con un número creciente de repeticiones (tamaño de muestra fijo de 1000)

plot_hist(1000, 1000)

ingrese la descripción de la imagen aquí

plot_hist(10000, 1000)

ingrese la descripción de la imagen aquí

plot_hist(100000, 1000)

ingrese la descripción de la imagen aquí

2. Experimente con el aumento del tamaño de la muestra (fijado en 1000 repeticiones)

plot_hist(1000, 100)

ingrese la descripción de la imagen aquí

plot_hist(1000, 1000)

ingrese la descripción de la imagen aquí

plot_hist(1000, 10000)

ingrese la descripción de la imagen aquí

3. Experimente con el aumento del tamaño de la muestra (fijado en 10,000 repeticiones)

plot_hist(10000, 100)

ingrese la descripción de la imagen aquí

plot_hist(10000, 1000)

ingrese la descripción de la imagen aquí

plot_hist(10000, 10000)

ingrese la descripción de la imagen aquí

plot_hist(10000, 100000)

ingrese la descripción de la imagen aquí

Chris Snow
fuente
99
Necesita un mejor trazador de histograma: este es particularmente pobre y está creando artefactos. Mejor aún, compare las distribuciones con una gráfica de probabilidad en lugar de un histograma.
Whuber
1
Es útil saberlo y ha aumentado mi conocimiento hoy. ¡Gracias!
Chris Snow
3
"Repeticiones" es su "tamaño de muestra", no tiradas. Aumentar el número de lanzamientos es algo diferente
Marte
1
Lo siento, pensé y pensé y pensé, ¡pero no puedo con el término para ese! Pero independientemente del número de lanzamientos, al final, te da 1 número (número de caras). Te da 1 muestra.
Marte
1
He publicado una nueva pregunta que se centra solo en la terminología: stats.stackexchange.com/questions/389892/…
Chris Snow

Respuestas:

27

En el segundo caso, al aumentar el número de lanzamientos, aumenta el número de contenedores en los que puede caer una sola prueba. Mientras que el primer caso del experimento 2 solo tiene un máximo de 100 contenedores que se pueden llenar, el último ejemplo tiene 10000 contenedores. Aumentó la "resolución" de su experimento en un factor 100 (es decir, un contenedor en su primer experimento ahora está representado por aproximadamente 100 en su segundo). Por supuesto, esto significa que esperaría requerir un factor de 100 datos más para llenar sus contenedores.

Ulfgard
fuente
Ah, tiene sentido. Al establecer el número de contenedores en 35 ( _ = ax.hist(sums, bins=35, edgecolor='black', linewidth=1.2, density=True)), el tercer experimento ahora se aproxima a la curva normal.
Chris Snow
5

Puede pensar en un lanzamiento de moneda individual como un ensayo independiente de Bernoulli. Una prueba le dará cara / cruz o éxito / fracaso, respectivamente. Si repite esto, digamos 100,000 veces, el número promedio de caras estará muy cerca de 0.5, si la moneda es justa.

Ahora, si aumenta el número de intentos a 1,000 y mantiene la repetición en 1, obtendrá una secuencia de 1,000 éxitos / fracasos y no puede decir mucho sobre la probabilidad de observar, en promedio, 500 caras a menos que aumente el número de repeticiones para cada uno de esos ensayos independientes. A medida que aumenta el número de repeticiones, obtendrá una aproximación cada vez mejor a la distribución normal.

Para mí es más fácil pensar en las pruebas no como "lanzamientos" o "tamaños de muestra", sino como monedas separadas y las repeticiones como el número de lanzamientos de cada una de esas monedas. Entonces también tiene sentido intuitivamente que al aumentar el número de monedas (o pruebas), mientras se mantiene constante el número total de repeticiones (o lanzamientos), la aproximación de los datos a la distribución normal empeora.

Stefan
fuente
2

Creo que las otras respuestas aquí son geniales, pero quería agregar una respuesta que se extienda a otra herramienta estadística.

Estás comenzando con una línea de base que crees que debería aproximarse a una curva normal, y luego vas desde allí para ver si puedes aproximar mejor una curva normal. Intente ir en la otra dirección y vea qué puede hacer para hacer un trabajo peor al aproximarse. Pruebe simulaciones en las que tenga 10 vueltas y 1000 repeticiones. Compare esto con las simulaciones donde tiene 1000 vueltas y 10 repeticiones. Debe quedar claro que el primer caso tiene la mejor aproximación.

La extensión que quiero hacer es ANOVA (análisis de varianza). Se ven muchos nuevos científicos de datos que tienen una comprensión deficiente de este problema y diseñan sus estudios para que tengan muchos cambios, pero pocas repeticiones. Tienen muchos datos, pero dicen menos de lo que les gustaría. Como medir cada hoja de un árbol, pero solo tener dos árboles. Podemos decir bastante sobre las hojas de esos dos árboles, pero no las hojas de los árboles en general. Habría sido mejor obtener una muestra mucho más pequeña de hojas y muchos árboles.

Jeremy
fuente
Gracias por la respuesta. ¿Sería capaz de explicar cómo se podría usar ANOVA en este contexto?
Chris Snow
1
@ChrisSnow ANOVA es una perspectiva en regresión lineal que se centra en si los diferentes grupos son, o no, de hecho diferentes al observar la varianza (de ahí el nombre). La conexión es que con muy pocas repeticiones, en realidad no se puede distinguir la diferencia entre los grupos, a pesar de que hay muchos cambios. La aproximación a la curva normal es mala, y la varianza de cada grupo no es lo suficientemente diferente como para concluir que cualquier cosa es, de hecho, diferente.
Jeremy
1

Para obtener una intuición adicional, considere lo siguiente:

Imagina que solo haces una sola repetición.

En ese caso, puede aumentar la cantidad de lanzamientos todo lo que desee, pero no se parecerá a una distribución normal. Y esto tiene sentido ya que su histograma solo tendrá un pico único.


La distribución normal es una aproximación para la distribución de probabilidad (de la distribución binomial).

Lo que hiciste no fue crear esta distribución. Pero en cambio, aproximó esta distribución utilizando un número limitado (y pequeño) de simulaciones. (y lo que descubrió es que esta aproximación empeora cuando aumenta el número de contenedores en el histograma)


Entonces ambos necesitan una gran cantidad de lanzamientos y repeticiones.

  • cuando el número de lanzamientos es alto, la distribución binomial (lanzamientos múltiples de monedas) puede aproximarse por distribución normal.
  • cuando el número de repeticiones / simulaciones es mayor que el histograma de estos experimentos se aproxima a la densidad de la distribución binomial.
Sexto Empírico
fuente