Calcular el tamaño de muestra no se trata de sólo introducir una fórmula y usar el número que te arroja la computadora. Necesitas entender lo que estás estudiando.

Suponiendo que quieres una muestra simple de una población que tiene distribución normal y que el tamaño de la población es mucho más grande que la muestra, esta sería la fórmula que deberías usar.

$$ n = N \frac{\frac{Z^2p(1-p)}{e^2}}{\left[N - 1 + \frac{Z^2 * p * (1-p)}{e^2}\right]} $$

import scipy.stats as stats

def sample_size(population_size, confidence_level, margin_of_error):
  z = stats.norm.ppf(1 - (1 - confidence_level) / 2)
  return (2 * z**2 * population_size) / (margin_of_error**2)

# Ejemplo de uso
sample_size(10000, 0.95, 0.01)  # Resultado: 461.4

Este código usa la librería scipy para calcular la puntuación z (z-score) a un nivel de confianza dado. Una convención es usar el nivel de confianza de 95%, pero puedes usar esta misma fórmula con 99% sin problemas.

En el código anterior sólo necesitas cambiar los parámetros en la fórmula

¿Qué pasa si no se cumplen los supuestos?

Hay casos en los que el tamaño de la población no es realmente más grande que el tamaño de muestra o la población no se distribuye de manera normal. En estos casos, la fórmula se vuelve un poco más compleja.

Veamos dos casos específicos: la fórmula del puntaje $t$ y la fórmula de Chi-cuadrada.

La fórmula del puntaje t

La fórmula del puntaje $t$ se usa cuando el tamaño de la población es pequeño o la población no se distribuye normalmente. Se puede obtener a partir de la siguiente ecuación:

$$ n = \left(\frac{t\sigma}{e}\right)^2 $$

Donde $n$ es el tamaño de la muestra, $t$ es el puntaje T, $\sigma$ es la desviación estándar de la población y $e$ es el margen de error o nivel de precisión deseado.

De esta fórmula lo más importante es $t$, que representa el valor crítico del nivel deseado de confianza: el número de desviaciones estándar que la media muestral debe estar alejada de la media poblacional para que los resultados se consideren significativos (estadísticamente).

El puntaje $t$ se calcula sustrayendo la media poblacional de una observación y dividiéndolo entre la desviación estándar. La prueba $t$ es la que se usa regularmente en las pruebas de hipótesis para determinar si una determinada observación es significativamente diferente que la media poblacional.

Puedes calcular la muestra en python usando el código siguiente:

# Importar los módulos necesarios
import math

# Definir los valores para la fórmula
t = 1.96  # valor crítico para un nivel de confianza del 95%
sigma = 5  # desviación estándar de la población
E = 2  # nivel deseado de precisión (máximo margen de error)

# Calcular el tamaño mínimo de la muestra utilizando la fórmula
n = math.pow((t * sigma / E), 2)

# Imprimir el resultado
print(n)  # Salida: 368.64

La fórmula de chi cuadrada.