#install.packages("pwr")
library(pwr)Calculo tamaño de muestra
Introducción
El cálculo del tamaño de muestra es una etapa crucial en el diseño de estudios. Cuando deseamos estimar una proporción, debemos considerar:
Nivel de confianza (Zα): Representa la probabilidad de que el intervalo de confianza contenga el valor verdadero. Ejemplo: 95% (( Z = 1.96 )).
Precisión deseada (( e )): Diferencia máxima aceptable entre la proporción estimada y la real.
Proporción esperada (( p )): Estimación inicial basada en literatura o estudios previos.
Ejercicio
En estos ejercicio1, utilizaremos el paquete pwr para calcular el tamaño de muestra necesario para conocer la prevalencia de diabetes en una población, suponiendo que: - Nivel de confianza: 95% - Precisión deseada: 5% - Proporción esperada: 50% (0.5).
Instalación y Configuración de Paquetes
Primero, asegurémonos de instalar y cargar los paquetes necesarios.
pwr
Fórmula para Estimar el Tamaño de Muestra
El cálculo del tamaño de muestra para estimar una proporción se realiza con la fórmula:
Donde:
Z: Valor correspondiente al nivel de confianza (e.g., Z=1.96Z = 1.96Z=1.96 para 95%).
p: Proporción esperada.
e: Precisión deseada.
Aunque el paquete pwr simplifica este cálculo, también lo podemos hacer manualmente paso a paso cómo hacerlo con R.
Cálculo del Tamaño de Muestra
Método 1: Cálculo Manual
Utilizando directamente la fórmula.
# Parámetros
Z <- 1.96 # Nivel de confianza para 95%
p <- 0.5 # Proporción esperada
e <- 0.05 # Precisión deseada (5%)
# Cálculo del tamaño de muestra
n_manual <- (Z^2 * p * (1 - p)) / (e^2)
cat("Tamaño de muestra necesario (método manual):", ceiling(n_manual), "\n")Tamaño de muestra necesario (método manual): 385
Método 2: Usar el Paquete pwr
El paquete pwr proporciona una manera intuitiva para calcular el tamaño de muestra utilizando funciones predefinidas.
# Parámetros
h <- 1 * asin(sqrt(p)) # Transformación para la función pwr.p.test
# Usar pwr.p.test para calcular el tamaño de muestra
resultado <- pwr.p.test(h = h, sig.level = 0.05, power = 0.8)
# Tamaño de muestra
n_pwr <- ceiling(resultado$n)
cat("Tamaño de muestra necesario (pwr.p.test):", n_pwr, "\n")Tamaño de muestra necesario (pwr.p.test): 13
Paso del paquete pwr
Uso del paquete:
El paquete pwr utiliza una metodología basada en el cálculo del tamaño del efecto (h), definido por:
La función arcsin es una transformación matemática conocida como la transformación angular de Freeman-Tukey o transformación del arco seno. Se utiliza comúnmente en estadísticas para manejar proporciones o probabilidades (p) y mejorar ciertas propiedades de análisis, especialmente en pruebas de hipótesis para proporciones.
Propósito de la transformación arcsin
Normalizar proporciones:
- Proporciones (p) están restringidas al rango [0, 1], lo que significa que no son simétricas ni normales. Esta transformación convierte las proporciones en un valor que puede aproximarse mejor a una distribución normal, lo cual es útil para cálculos estadísticos.
Estabilizar la varianza:
- En análisis de proporciones, la varianza tiende a cambiar dependiendo de (es más alta cuando está cerca de 0.5 y más baja cerca de 0 o 1). La transformación arcsin(raizcuadrada de p) estabiliza la varianza, haciendo que los cálculos sean más consistentes.
En pruebas de hipótesis para proporciones, como en el cálculo del tamaño de muestra usando
pwr.p.test, necesitamos definir el tamaño del efecto hhh para comparar proporciones observadas y esperadas. La transformación arcsin(raizcuadrada de p):Permite comparar proporciones en un espacio donde las diferencias tienen un impacto constante, independientemente de si p está cerca de 0 o de 1.
Esto simplifica el cálculo del tamaño de muestra, porque el tamaño del efecto (h) se interpreta como una distancia entre dos proporciones en este espacio transformado.
Tamaño del efecto en pruebas estadísticas:
- En el contexto de pruebas de hipótesis y cálculos de poder estadístico (como en el paquete
pwr), esta transformación es utilizada para definir el tamaño del efecto (h) de una proporción en un marco que considera valores más manejables y simétricos.
- En el contexto de pruebas de hipótesis y cálculos de poder estadístico (como en el paquete
Prueba de hipótesis en
pwr.p.test:En lugar de simplemente calcular un tamaño de muestra para estimar p,
pwr.p.testincluye:El nivel de significancia α, como 0.05 para un 95% de confianza).
El poder estadístico (1−β), normalmente 0.8 o 80%).
Esto significa que el cálculo considera la probabilidad de detectar un efecto real dado un nivel de confianza y un poder.
Diferencia en resultados:
El cálculo usando pwr.p.test genera un tamaño de muestra más conservador porque incluye:
Poder estadístico (1−β1): La capacidad de detectar el efecto real.
Tamaño del efecto h: Un enfoque más general que transforma proporciones.
Diferencia de Resultados
Cálculo manual:
Asume una población infinita y se enfoca únicamente en estimar una proporción con una precisión deseada (eee).
No considera poder estadístico.
pwr.p.test:Incluye el marco de pruebas de hipótesis y poder estadístico, lo que lleva a un tamaño de muestra más conservador.
Este enfoque es más robusto si el estudio requiere pruebas de hipótesis específicas (por ejemplo, comparar proporciones observadas con valores esperados).
Cuándo usar cada método
Método manual:
Es adecuado cuando el objetivo es simplemente estimar una proporción dentro de un margen de error específico.
Útil para encuestas y estudios descriptivos.
Método con
pwr.p.test:Útil para estudios analíticos o experimentales que requieran pruebas de hipótesis.
Incluye poder estadístico, asegurando mayor confianza en los resultados.
Introducción
Cuando conocemos el tamaño total de la población, necesitamos ajustar el cálculo del tamaño de muestra. La fórmula para calcular el tamaño de muestra en poblaciones finitas es:
Donde:
- ( N ): Tamaño de la población.
- ( Z^2 ): Valor correspondiente al nivel de confianza (e.g., ( Z = 1.96 ) para 95%).
- ( p ): Proporción esperada.
- ( q = 1 - p ): Complemento de la proporción.
- ( d ): Precisión deseada.
En este ejercicio, calcularemos el tamaño de muestra para una población finita con:
- ( N = 10,000 )
- Nivel de confianza: 95% (( Z = 1.96 ))
- Proporción esperada: ( p = 0.05 ) (5%)
- Precisión deseada: ( d = 0.03 ) (3%).
Cálculo del Tamaño de Muestra
Paso 1: Parámetros Iniciales
Definimos los valores dados en el problema.
# Parámetros
N <- 10000 # Tamaño de la población
Z <- 1.96 # Nivel de confianza para 95%
p <- 0.05 # Proporción esperada (5%)
q <- 1 - p # Complemento de la proporción
d <- 0.03 # Precisión deseada (3%)Paso 2: Implementar la Fórmula
Utilizamos la fórmula para calcular el tamaño de la muestra.
# Calcular tamaño de muestra
n <- (N * Z^2 * p * q) / ((d^2 * (N - 1)) + (Z^2 * p * q))
cat("Tamaño de muestra necesario:", ceiling(n), "\n")Tamaño de muestra necesario: 199
Visualización de los Resultados
Cómo Varía el Tamaño de Muestra con Diferentes Niveles de Precisión
Creamos un gráfico que muestre cómo el tamaño de muestra cambia con diferentes valores de d (precisión).
# Variar precisión
precisiones <- seq(0.01, 0.1, by = 0.01)
tamaños_muestra <- sapply(precisiones, function(d) {
(N * Z^2 * p * q) / ((d^2 * (N - 1)) + (Z^2 * p * q))
})
# Crear data frame para el gráfico
datos_grafico <- data.frame(
Precision = precisiones,
Tamaño_Muestra = ceiling(tamaños_muestra)
)
# Graficar
library(ggplot2)
ggplot(datos_grafico, aes(x = Precision, y = Tamaño_Muestra)) +
geom_line(color = "blue", size = 1) +
geom_point(color = "red") +
labs(
title = "Relación entre Precisión y Tamaño de Muestra en Poblaciones Finitas",
x = "Precisión Deseada (d)",
y = "Tamaño de Muestra"
) +
theme_minimal()Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
ℹ Please use `linewidth` instead.
Reflexión
Puntos Clave
Relación Precisión-Tamaño: El tamaño de muestra crece rápidamente cuando la precisión deseada d es más pequeña.
Impacto del Tamaño Poblacional: A medida que n aumenta, el ajuste por población finita es menos significativo, y el tamaño de muestra se aproxima al cálculo para poblaciones infinitas.
Parámetros Iniciales
Definimos los valores necesarios para el cálculo. En este ejercicio, calcularemos el tamaño de muestra necesario para estudiar la prevalencia de diabetes en una población finita de 15,000 habitantes, con:
Seguridad: ( 95 % )
Precisión: ( 3% ) (( d = 0.03 ))
Proporción esperada: ( p = 0.05 ) (5%)
Fórmula:
Donde:
- ( N ): Tamaño de la población (15,000).
- ( Z ): Valor Z para un nivel de confianza del 95% (( Z = 1.96 )).
- ( p ): Proporción esperada. -
( q ): Complemento de ( p ) (( q = 1 - p )). -
( d ): Precisión deseada.
Definimos los valores necesarios para el cálculo.
# Parámetros
N <- 15000 # Tamaño de la población
Z <- 1.96 # Nivel de confianza para 95%
p <- 0.05 # Proporción esperada (5%)
q <- 1 - p # Complemento de la proporción
d <- 0.03 # Precisión deseada (3%)
# Calcular tamaño de muestra para población finita
n <- (N * Z^2 * p * q) / ((d^2 * (N - 1)) + (Z^2 * p * q))
cat("Tamaño de muestra necesario:", ceiling(n), "\n")Tamaño de muestra necesario: 201
Interpretación:
El cálculo muestra que necesitamos estudiar aproximadamente 200 personas para estimar la prevalencia de diabetes en una población de 15,000 habitantes, con un nivel de confianza del 95% y una precisión del 3%.
# Variar precisión
precisiones <- seq(0.01, 0.1, by = 0.01)
tamaños_muestra <- sapply(precisiones, function(d) {
(N * Z^2 * p * q) / ((d^2 * (N - 1)) + (Z^2 * p * q))
})
# Crear data frame para el gráfico
datos_grafico <- data.frame(
Precision = precisiones,
Tamaño_Muestra = ceiling(tamaños_muestra)
)
# Graficar
library(ggplot2)
ggplot(datos_grafico, aes(x = Precision, y = Tamaño_Muestra)) +
geom_line(color = "blue", size = 1) +
geom_point(color = "red") +
labs(
title = "Relación entre Precisión y Tamaño de Muestra",
x = "Precisión Deseada (d)",
y = "Tamaño de Muestra"
) +
theme_minimal()Tamaño de muestra para estimar una media
Fórmula:
# Parámetros
Z <- 1.96 # Nivel de confianza (95%)
S2 <- 250 # Varianza
d <- 3 # Precisión deseada
# Cálculo del tamaño de muestra
n_manual <- (Z^2 * S2) / (d^2)
cat("Tamaño de muestra (manual):", ceiling(n_manual), "\n")Tamaño de muestra (manual): 107
Comparación de dos proporciones
Fórmula:
# Parámetros
Z_alpha <- 1.645 # Nivel de confianza (95%)
Z_beta <- 0.842 # Poder estadístico (80%)
p1 <- 0.7 # Proporción 1
p2 <- 0.9 # Proporción 2
p <- (p1 + p2) / 2 # Promedio de proporciones
# Cálculo del tamaño de muestra
n_manual <- ((Z_alpha * sqrt(2 * p * (1 - p)) + Z_beta * sqrt(p1 * (1 - p1) + p2 * (1 - p2)))^2) / (p1 - p2)^2
cat("Tamaño de muestra (manual):", ceiling(n_manual), "\n")Tamaño de muestra (manual): 49
# Instalar pwr si no está instalado
if (!requireNamespace("pwr", quietly = TRUE)) {
install.packages("pwr")
}
library(pwr)
# Tamaño del efecto para proporciones
h <- ES.h(p1 = p1, p2 = p2)
# Calcular el tamaño de muestra
resultado <- pwr.2p.test(h = h, sig.level = 0.05, power = 0.8)
cat("Tamaño de muestra (con pwr):", ceiling(resultado$n), "\n")Tamaño de muestra (con pwr): 60
Usando un Paquete: pwr
# Instalar pwr si no está instalado
if (!requireNamespace("pwr", quietly = TRUE)) {
install.packages("pwr")
}
library(pwr)
# Tamaño del efecto para proporciones
h <- ES.h(p1 = p1, p2 = p2)
# Calcular el tamaño de muestra
resultado <- pwr.2p.test(h = h, sig.level = 0.05, power = 0.8)
cat("Tamaño de muestra (con pwr):", ceiling(resultado$n), "\n")Tamaño de muestra (con pwr): 60
Comparación de dos medias
# Parámetros
Z_alpha <- 1.645 # Nivel de confianza (95%)
Z_beta <- 1.282 # Poder estadístico (90%)
S <- 16 # Desviación estándar
d <- 15 # Diferencia esperada
# Cálculo del tamaño de muestra
n_manual <- (2 * (Z_alpha + Z_beta)^2 * S^2) / (d^2)
cat("Tamaño de muestra (manual):", ceiling(n_manual), "\n")Tamaño de muestra (manual): 20
Usando un Paquete: pwr
# Calcular tamaño de muestra para comparación de medias
resultado <- pwr.t.test(d = d / S, sig.level = 0.05, power = 0.9, type = "two.sample")
cat("Tamaño de muestra (con pwr):", ceiling(resultado$n), "\n")Tamaño de muestra (con pwr): 25
El paquete pwr también incluye la función pwr.t.test para calcular tamaños de muestra para la comparación de dos medias.
Tamaño del efecto d:
# Parámetros
Diferencia <- 15 # Diferencia esperada entre medias
S <- 16 # Desviación estándar
d <- Diferencia / S # Tamaño del efecto
# Calcular tamaño de muestra
resultado <- pwr.t.test(d = d, sig.level = 0.05, power = 0.9, type = "two.sample")
cat("Tamaño de muestra para comparar dos medias (pwr):", ceiling(resultado$n), "por grupo\n")Tamaño de muestra para comparar dos medias (pwr): 25 por grupo
Los cálculos manuales siguen las fórmulas clásicas.
El uso de paquetes como
epiDisplayopwrsimplifica el proceso y permite ajustar parámetros como el nivel de confianza y el poder estadístico de forma más flexible.
Resultados del Paquete pwr
Estimación de una media: Usamos
pwr.t.testcon d=e/Sd = e / Sd=e/S.Comparación de dos proporciones: Usamos
pwr.2p.test, que calcula directamente tamaños de muestra para pruebas de hipótesis con proporciones.Comparación de dos medias: Usamos
pwr.t.testcon d=Diferencia esperada/Desviacioˊn estaˊndard = \{Diferencia esperada} / \{Desviación estándard=Diferencia esperada/Desviacioˊn estándar.
¿Qué no cubre pwr directamente?
Poblaciones finitas: Necesitamos ajustar manualmente el tamaño de muestra calculado para considerar tamaños de población finitos.
Estimación de una media sin prueba de hipótesis: Aunque podemos adaptar el cálculo con
pwr.t.test, el paquete está diseñado para pruebas de hipótesis.