Metodología Cuantitativa Avanzada - Magíster en Ciencias Sociales
Fecha de publicación
26 de abril de 2023
Objetivo de la práctica
El objetivo de esta guía práctica es introducirnos en la inferencia estadística, revisando los conceptos y aplicaciones de la curva normal y las probabilidades bajo esta con puntajes Z.
En detalle, aprenderemos:
Qué es la inferencia estadística.
Qué es una distribución muestral.
Qué es el error estándar.
Qué es la distribución normal y cómo interpretarla.
Cómo calcular probabilidades asociadas con valores Z en R.
Qué son y cómo calcular intervalos de conafianza.
1 ¿Qué es la inferencia estadística?
En estadística, llamamos inferencia al ejercicio de extrapolar determinadas estimaciones (estadístico) de una muestra a una población más grande (parámetro). En concreto, es el proceso de realizar conclusiones o predicciones sobre una población a partir de una muestra o subconjunto de esa población.
Un concepto central en todo esto es la probabilidad de error, es decir, en qué medida nos estamos equivocando (o estamos dispuestos a estar equivocados) en tratar de extrapolar una estimación muestral a la población.
2. Distribución muestral
2.1. ¿Qué es una distribución?
Recordemos que por distribución nos referimos al conjunto de todos los valores posibles de una variable y las frecuencias (o probabilidades) con las que se producen.
Existen distribuciones empíricas y distribuciones teóricas, en donde:
las primeras reflejan la distribución de los valores que asume la variable en un grupo concreto a partir de una observación.
las segundas son una función matématica que expresan la distribución de un conjunto de números mediante su probabilidad de ocurencia.
Una de las distribuciones teóricas más conocidas es la distribución normal estándar.
2.2. Distribución muestral
Nota
Variabilidad muestral: el valor de un estadístico varía en un muestreo aleatorio repetido.
La distribución muestral es la distribución de las estimaciones, o estadísticos como la media o proporción, tomadas de múltiples muestras aleatorias de una población. Permite comprender cómo varían las estimaciones de una muestra a otra.
Ejemplo 1: Imaginemos que tenemos una población de niñ_s de 0 a 9 años, y tomamos múltiples muestras de 6 individu_s (n=6). Cada una de las muestras tendrá un promedio (estadístico muestral, en este caso ) diferente, que no necesariamente coincidirá con el promedio de la población (parámetro, en este caso )
Ejemplo 2: Si usamos valores simulados, podemos ver que todas las medias obtenidas en cada muesta son distintas.
set.seed(100) # Establecer semilla muestras <-replicate(100, mean(rnorm(30, mean =50, sd =10))) # 100 muestras de tamaño 30muestras
Si conocemos la desviación estándar de los promedios, podedmos construir un intervalo de probabilidad, basado en la curva normal.
Nota
Una característica importante es que se asume que las muestras tomadas de la población son aleatorias y representativas, lo que es esencial para que la distribución muestral refleje adecuadamente la variabilidad de las estimaciones.
La importancia de la distribución muestral es que nos permitirá estimar parámetros poblacionales a partir de estadísticos muestrales, construir intervalos de confianza, y realizar pruebas de hipótesis.
3. Error estándar
El error estándar es una medida de la variabilidad de una estimación, proporciona una medida de cuán precisas son nuestras estimaciones de la población. El error estándar del promedio corresponde a una estimación de la desviación estándar de los promedios extraídos de distintas muestras.
Consideremos a cada punto una observación para la muestra roja, con la línea vertical como la media y la línea horizontal como la desviación estándar.
Luego, lo mismo para cada una de las muestras verde, lila, naranja y negra.
Lo que tendremos es que cada promedio de cada muestra es un valor que podemos promediar, y tienen su propia desviación estándar a su propio promedio. Luego, a esa desviación estándar de los promedios de cada muestra al promedio general, la llamaremos error estándar.
Nota
Teorema del límite central la distribución de los promedios de distintas muestras - o distribución muestral del promedio - se aproxima a una distribución normal.
Basados en el teorema del límite central, es posible calcular la desviación estándar del promedio (error estándar) con una sola muestra:
á
# Generar una muestra de datosset.seed(123) # Establecer semilla muestra <-rnorm(100, mean =50, sd =10) # Muestra de tamaño 100, media 50, desviación estándar 10# Calcular el error estándarerror_estandar <-sd(muestra) /sqrt(length(muestra))error_estandar
[1] 0.9128159
La importancia del error estándar es que nos permitirá construir intervalos de confianza, y realizar pruebas de hipótesis.
4. Distribución normal
Nota
Recordemos que por distribución nos referimos al conjunto de todos los valores posibles de una variable y las frecuencias (o probabilidades) con las que se producen.
Existen distribuciones empíricas y distribuciones teóricas, en donde:
las primeras reflejan la distribución de los valores que asume la variable en un grupo concreto a partir de una observación.
las segundas son una función matématica que expresan la distribución de un conjunto de números mediante su probabilidad de ocurencia.
Para empezar, veamos una de las distribuciones teóricas más conocidas: la distribución normal estándar. La distribución normal estándar:
es una distribución normal con media 0 y desviación estándar 1
simétrica y con un solo punto de elevación
la media se sitúa al centro, y la desviación estandar expresa su dispersión
la pendiente es más fuerte cerca del centro, y se suaviza hacia los extremos
los puntos en los que tiene lugar este cambio de curvatura se hallan a una distancia σ, a ambos lados de la media µ.
Con R es posible generar un conjunto de datos simulados con una distribución normal.
¿Qué estamos haciendo en cada una de las 3 líneas de código? ¿Qué variables se crearon y cómo nos aseguramos de que los datos generados siguieran una distribución normal? Pensemos un poco…
Ahora podemos preguntar qué parte de la curva cae por debajo de un valor particular. Por ejemplo, preguntaremos sobre el valor 0 antes de ejecutar el código. Piense ¿cuál debería ser la respuesta?
pnorm(q =0)
[1] 0.5
Tenemos que la probabilidad (en una curva normal estándar) de obtener un valor igual o menor a 0 es de 0.5, es decir, del 50%, pero ¿por qué?
Porque como la distribución normal es simétrica alrededor de cero, la probabilidad de que sea menor o igual a cero es 0.5, es decir, el 50% de la distribución está por debajo de cero y el otro 50% está por encima de cero.
:scale 65%
Esto es posible mediante la relación entre las áreas bajo la curva normal y las probabilidades.
5. Probabilidades asociadas con valores z
Nota
La puntuación Z es una medida que se utiliza para expresar la posición relativa de un valor con respecto a la media en una distribución normal. La puntuación Z mide cuántas desviaciones estándar está un valor por encima o por debajo de la media.
En los ejemplos siguientes, usaremos valores Z de + 1,96 y -1,96 porque sabemos que estos valores aproximados marcan el 2,5% superior e inferior de la distribución normal estándar. Esto corresponde a un alfa típico = 0,05 para una prueba de hipótesis de dos colas (sobre la cual aprenderemos más en las próximas semanas).
pnorm(q =1.96, lower.tail=TRUE)
[1] 0.9750021
La respuesta nos dice lo que ya sabemos: el 97,5% de la distribución normal ocurre por debajo del valor z de 1,96.
Podemos agregar una línea al gráfico para mostrar dónde se usaría abline.
El 97,5% de la distribución queda por debajo de esta línea.
Como se discutió en clases, también podemos hacer lo contrario: decidir primero cuánta probabilidad queremos (percentil) y luego calcular qué valores críticos están asociados con esas probabilidades. Esto utiliza la función qnorm. Si queremos saber qué valor z marca la probabilidad p del 2,5% inferior de una distribución normal estándar, usaríamos:
qnorm(p =0.025)
[1] -1.959964
Esto nos dice que el valor z de -1,96 marca el 2,5% inferior de la distribución normal estándar. Para determinar el valor z que marca el 2,5% superior de la distribución, escribo:
qnorm(p =0.975)
[1] 1.959964
Ejercicio 2
Hasta ahora hemos demostrado todo con una distribución normal estándar. Pero la mayoría de las curvas normales no son normales estándar.
Genere una curva (como hicimos anteriormente para la distribución normal estándar) y trácela con una media de 20 y una desviación estándar de 1,65.
x.values <-seq(10,30, length =1000)y.values <-dnorm(x.values, mean =20, sd =1.65) # indico media y sdplot(x.values, y.values, type="l", lty=1, xlab="Z value", ylab="Probability", main="Normal Distribution")
Ahora, identifique el valor en el que el 97,5% de la distribución cae por debajo de este valor. Esto lo hicimos antes con qnorm.
qnorm(p = .975, mean =20, sd =1.65)
[1] 23.23394
Tenemos que el 97,5% de los valores estarán por debajo de 23,2.
Ejercicio de aplicación
Ahora que hemos generado distribuciones normales, echemos un vistazo a algunos datos y compárelos con la distribución normal. Utilizaremos un conjunto de datos desde internet, con mediciones de 247 hombres y 260 mujeres, la mayoría de los cuales eran considerados adultos jóvenes sanos. Puede encontrar una clave para los nombres de las variables aquí, pero nos centraremos en solo tres columnas: peso en kg (wgt), altura en cm (hgt) y sexo (1 = hombre; 0 = mujer).
Separemos estos datos en dos conjuntos, uno de hombres y otro de mujeres con la función subset
mdims <-subset(bdims, sex ==1)fdims <-subset(bdims, sex ==0)
Ejercicio 1
Haz un histograma de la altura de los hombres y un histograma de la altura de las mujeres. ¿Cómo compararía los diversos aspectos de las dos distribuciones?
hist(mdims$hgt, xlim =c(150,200))
hist(fdims$hgt, xlim =c(140,190))
Ejercicio 2
scale es una función en R y se puede aplicar a cualquier vector numérico (lista de números en R). Genere los dos histogramas siguientes, esta vez graficando scale() de las estaturas y determine cómo la versión escalada de las alturas corresponde a las alturas originales. ¿Qué calcula la escala para cada punto?
hist(scale(mdims$hgt))
hist(scale(fdims$hgt))
Ejercicio 3
Nos gustaría comparar la distribución de estaturas en este conjunto de datos con la distribución normal. Para cada uno de los histogramas de alturas (sin escalar), trace una curva normal en la parte superior del histograma.
Calcule la media y la desviación estándar para las alturas femeninas y guárdelas como variables, fhgtmean y fhgtsd, respectivamente.
Determine la lista de valores de x (el rango del eje X) y guarde este vector. Puede hacer fácilmente una lista de números usando la función seq() como lo hemos hecho antes, o teniendo el límite inferior:límite superior. Por ejemplo, para generar un vector (lista de números) del 1 al 10 y guardarlo como one_ten, usaría one_ten <- 1:10.
Como arriba, use dnorm() para tomar la lista de valores de x y encontrar el valor de y correspondiente si fuera una distribución normal perfecta. Guarde este vector como la variable y.
Vuelva a trazar su histograma y luego, en la siguiente línea, use lines(x = x, y = y, col = "blue") para dibujar una distribución normal encima.
fhgtmean <-mean(fdims$hgt)fhgtsd <-sd(fdims$hgt)hist(fdims$hgt, probability =TRUE, ylim =c(0, .07))x <-140:190y <-dnorm(x = x, mean = fhgtmean, sd = fhgtsd)lines(x = x, y = y, col ="blue")
Según este gráfico, ¿parece que los datos siguen una distribución casi normal? Haz lo mismo con las estaturas masculinas.
Respuesta: En general, sí, consideraría que estos valores siguen una distribución casi normal ya que el histograma se ajusta bastante bien a la curva.
Observe que la forma del histograma es una forma de determinar si los datos parecen estar distribuidos casi normalmente, pero puede resultar frustrante decidir qué tan cerca está el histograma de la curva. Un enfoque alternativo implica construir una gráfica de probabilidad normal, también llamada gráfica Q-Q por “quantil-quantil”. Ejecute ambas líneas juntas.
qqnorm(fdims$hgt)qqline(fdims$hgt)
Un QQ plot nos muestra en el eje x los cuantiles teóricos de la distribución en términos de desviaciones estandar, y en el eje y los valores de la variable. La distribución de los puntos en una línea recta es una indicación de que los datos se distribuyen normalmente.
Veamos otro ejemplo de otra variable de la base de datos:
hist(fdims$che.de)
qqnorm(fdims$che.de)qqline(fdims$che.de)
Una vez que decidimos que una variable se distribuyte de forma normal, podemos responder todo tipo de preguntas sobre esa variable relacionadas con la probabilidad. Tomemos, por ejemplo, la pregunta: “¿Cuál es la probabilidad de que una mujer adulta joven elegida al azar mida más 182 cm?”
Si suponemos que las alturas de las mujeres se distribuyen normalmente (una aproximación muy cercana también está bien), podemos encontrar esta probabilidad calculando una puntuación Z y consultando una tabla Z (también llamada tabla de probabilidad normal).
En R, esto se hace en un solo paso con la función pnorm (como hicimos anteriormente para la distribución normal estándar).
pnorm(q =182, mean = fhgtmean, sd = fhgtsd)
[1] 0.9955656
Obtenemos la proporción de mujeres que está bajo esa estatura, es decir 99,6%. Si queremos saber la proporción de mujeres que está sobre esa estatura:
1-pnorm(q =182, mean = fhgtmean, sd = fhgtsd)
[1] 0.004434387
En este caso, el 0,4% de las mujeres se encontraría sobre esa estatura.
Podemos también hacer la operación inversa, es decir, a qué valor (estatura) corresponde un porcentaje o probabilidad basada en una distribución normal. Para ello utilizamos la función qnorm. Por ejemplo, para la probabilidad que calculamos más arriba para una altura de 182cm en las mujeres:
qnorm(.9955656, fhgtmean, fhgtsd)
[1] 182
6. Intervalos de confianza
Un intervalo de confianza es un rango dentro del cual es probable que se encuentre un parámetro poblacional con un nivel de confianza específico. Además, proporciona información sobre la precisión de nuestras estimaciones.
Por ejemplo,
# Calcular un intervalo de confianza para la mediaintervalo_confianza <-t.test(muestra)$conf.int # Intervalo de confianza del 95% para la mediaintervalo_confianza
El promedio de la muestra se distruye normal, con un error estándar , lo que nos permite estimar probabilidades basándonos en la curva normal.
Por ejemplo, si nos desviamos desde la media abarcaremos aproximadamente el 95% de los valores probables.
Nota
Nivel de confianza: Corresponde a la probabilidad de que la muestra elegida produzca un intervalo que incluya el parámetro que se está estimando ().
Nivel de significacncia: Corresponde a la probabilidad de que el intervalo calculado a partir de la muestra no comprenda el parámetro de la población ().
Cálculo de intervalos de confianza
Ahora ¡Manos a la obra!
Calculemos intervalos de confianza. Primero, carguemos las librerías necesarias:
library(pacman)
Warning: package 'pacman' was built under R version 4.3.3
pacman::p_load(tidyverse, # colección de paquetes para manipulación de datos car, # para recodificar psych, # para analizar datos sjmisc, # para analizar datos srvyr, # para estimación de IC y ponderadores Publish) # para IC
Installing package into 'C:/Users/kevin/AppData/Local/R/win-library/4.3'
(as 'lib' is unspecified)
also installing the dependencies 'TH.data', 'multcomp'
Warning: unable to access index for repository http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/4.3:
no fue posible abrir la URL 'http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/4.3/PACKAGES'
package 'TH.data' successfully unpacked and MD5 sums checked
package 'multcomp' successfully unpacked and MD5 sums checked
package 'Publish' successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\kevin\AppData\Local\Temp\Rtmp0aXAJf\downloaded_packages
Publish installed
Warning: package 'Publish' was built under R version 4.3.3
options(scipen =999) # para desactivar notacion cientificarm(list =ls()) # para limpiar el entorno de trabajo
y también carguemos la base de datos que utilizaremos, que corresponde a un subset de la Encuesta Suplementaria de ingresos ESI para ocupados:
Recordemos que podemos contar con bases de datos que tengan factor de expansión (ponderador) o no. Esta distinción se presenta cuando trabajamos con muestras simples o complejas. Al trabajar con muestras complejas debemos identificar cuál es la variable del ponderador e incorporarla en nuestro cálculo, como veremos a continuación.
Intervalos de confianza sin ponderador
Podemos calcular intervalos de confianza con muestras representativas sin ponderadores o factores de expansión. Supongamos que es el caso.
IC para Medias
Calculemos un intervalo de confianza para la media de ingresos de personas ocupadas:
psych::describe(esi$ing_t_p)
vars n mean sd median trimmed mad min max
X1 1 37124 586360.4 697362.9 405347.7 474473.1 255411.6 0 38206253
range skew kurtosis se
X1 38206253 12 402.32 3619.36
Publish::ci.mean(esi$ing_t_p, alpha =0.05)
mean CI-95%
586360.41 [579266.37;593454.45]
Al no aplicar factores de expansión, contamos con una media de ingresos de $586.360 como estimación puntual. Pero también podemos decir que con un 95% de confianza el parámetro poblacional se encontrará entre $579.266 y $593.454.
IC para Proporciones
Para calcular un intervalo de confianza para la proporción por la variable sexo, usamos:
sjmisc::frq(esi$sexo)
x <numeric>
# total N=37124 valid N=37124 mean=1.44 sd=0.50
Value | N | Raw % | Valid % | Cum. %
----------------------------------------
1 | 20806 | 56.04 | 56.04 | 56.04
2 | 16318 | 43.96 | 43.96 | 100.00
<NA> | 0 | 0.00 | <NA> | <NA>
prop.test(x =20806, n =37124, conf.level =0.95)
1-sample proportions test with continuity correction
data: 20806 out of 37124, null probability 0.5
X-squared = 542.32, df = 1, p-value < 0.00000000000000022
alternative hypothesis: true p is not equal to 0.5
95 percent confidence interval:
0.5553777 0.5655019
sample estimates:
p
0.5604461
En este caso, sabemos que el total de las personas ocupadas de la muestra son n=37.124, y que la cantidad de hombres son 20.806, correspondientes al 56% como estimación puntual. También podemos sostener con un 95% que la proporción de hombres en la población se encuentra entre 55.54% y 56.6%.
Intervalos de confianza con ponderador
Para muestras complejas que cuentan con ponderador (o factor de expansión) también podemos hacer este ejercicio.
Primero, es necesario identificar la variable de factor de expansión o ponderador:
esi_pond <- esi %>%as_survey_design(ids =1, # indica conglomerados de muestreo; ~0 o ~1 cuando no haystrata = estrato, # indica efecto de diseño muestralweights = fact_cal_esi) # indica el ponderadoroptions(survey.lonely.psu ="certainty") # seteamos para que ids no moleste
IC para Medias
Ahora, teniendo en consideración el factor de expansión, podemos señalar que:
# A tibble: 1 × 3
media media_low media_upp
<dbl> <dbl> <dbl>
1 681039. 666563. 695516.
El promedio de ingresos de personas ocupadas ponderado en la población corresponde a $681.039 como estimación puntual, pero que es posible afirmar con un 95% de confianza que el parámetro poblacional se encuentra entre $666.562 y $695.516.
IC para Proporciones
Finalmente, si calculamos la proporción de hombres ocupados en la población considerando el factor de expansión:
sjmisc::frq(esi$sexo)
x <numeric>
# total N=37124 valid N=37124 mean=1.44 sd=0.50
Value | N | Raw % | Valid % | Cum. %
----------------------------------------
1 | 20806 | 56.04 | 56.04 | 56.04
2 | 16318 | 43.96 | 43.96 | 100.00
<NA> | 0 | 0.00 | <NA> | <NA>