Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contents
1 Introducción 1
1 Introducción
Anteriormente se dijo que cuando tomamos una muestra, y obunemos de esa muestra estadísticos que son
una inferencia sobre los parámetros de la población. Estos estadísticos son estimaciones puntuales de los
parámetros. De manera que la media muestral es estimador puntual de la media poblacional, la proporción
muestral es un estimador puntual de la proporción población y así sucesivamente.
1
Sin embargo, es de esperar que los estimadores puntuales no sean iguales a los parámetros de la población, y
la diferencia entre el estadístico y el valor del parámetro se llama error muestral y entre mayor sea el tamaño
de nuestra muestra menor será el error muestral.
Aun así, en muchas ocasiones resulta más informativo realizar una estimación por intervalo en vez de una
estimación puntual. Es decir, un rango de valores que esperamos representa al parámetro de la población en
vez de un solo valor.
La forma general de la mayoría de los intervalos de confianza es tomar el estimador puntual y sumar y restar
al estimador una cantidad llamada margen de error.
El objetivo de los intervalos de confianza es aportar información sobre qué tan cerca se encuentra la estimación
puntual, de la muestra, del valor del parámetro poblacional.
Un intervalo de confianza se refiere a un rango (o un intervalo) de valores para estimar el valor real de un
parámetro de la población. Usamos los estadísticos para construir un intervalo del verdadero valor de un
parámetro asociado a un nivel de confianza.
Es necesario que seleccionemos un nivel de confianza para estimar un intervalo de confianza, ya que se refiere
a la probabilidad 1 − α de que el intervalo de confianza contenga el parámetro de la población en el largo
plazo. Es decir, suponiendo que repetimos el proceso de de estimación muchas veces. Los niveles de confianza
más comunes son del 90%, 95% y 99%.
Debemos ser cuidados con la interpretación de un intervalo de confianza. Repasemos con cuidado el parrado
anterior el nivel de confianza . . . “se refiere a la probabilidad 1 − α de que el intervalo de confianza contenga
el parámetro de la población en el largo plazo”.
Supongamos que tenemos una muestra y calculamos un intervalo de confianza del 95% para la media, el cual
da por resultado un rango A - B; entonces podemos concluir que tenemos una confianza del 95% de que
el intervalo A-B contiene el verdadero valor la media población. Esto quiere decir que si tomamos muchas
muestras del mismo tamaño de esta población de análisis y construimos los correspondientes intervalos de
confianza, el 95% de ellos contendrá a la media poblacional. En otras palabras, tal como indica Triola (2018),
el nivel de confianza se refiere a la tasa de éxito del proceso para estimar la media poblacional.
Es fácil caer en la idea que este intervalo de confianza indica que existe una probabilidad del 95% de que la
verdadera media de la población se encuentra entre A y B. Esta interpretación no es correcta, recuerda que se
refiere a la distribución muestral. Otra interpretación errónea seria, 95% de las medias muestral estarán entre
A y B, esto es incorrecto ya que los valores A y B dependen del estimador puntual actual y no describen el
comportamiento de todas las medias.
La tasa de éxito del proceso del 95% indica que a largo plazo, los límites del intervalo contienen a la verdadera
media población el 95% de las veces. Cuando la tasa de éxito es igual al nivel de confianza seleccionado se
dice que el intervalo tiene buena probabilidad de cobertura. Sin embargo, esto no siempre sucede, sí elegimos
un nivel de confianza del 95% y descubrimos que a largo plazo los límites del intervalo contienen al valor del
parámetro de la población un porcentaje menor al nivel de confianza seleccionado, entonces el intervalo tiene
poca probabilidad de cobertura y el método para estimar el intervalo no es adecuado, esto es importante
para las proporciones.
En este capítulo nos concentraremos en estimar e interpretar intervalos de confianza para diversas situaciones,
ya sea para una o dos muestras, proporciones, varianzas y de los coeficientes de una regresión lineal.
2
costoso que en nuestro sólo se hace una vez cada 10 años) por lo tanto, lo más factibles es tomar lo que se
conoce como una muestra representativa. Una muestra es una parte de la población y debe ser representativa.
Por lo tanto en ella se deben incluir personas de todo el país. Si tomamos únicamente personas de la Ciudad
de México no se trataría de una muestra representativa.
De esta manera los resultados obtenidos de la muestra son aplicables para la población. Considera que con el
objetivo de determinar la edad de la población en México, tomamos 10 muestras del mismo tamaño. Cada
muestra contiene a diferentes individuos y si obtenemos la edad promedio de cada una de las diez muestras,
muy seguramente obtendremos diferentes promedios. Si en lugar de tomar diez muestras tomamos 1000 y
registramos todos los valores obtenidos, podemos graficar un histograma y determinar la distribución de la
media muestral.
Para ejemplificar esta idea, generemos un conjunto de datos y supongamos que el objeto poblacion contiene
la edad de todas las personas de un país imaginario que llamaremos ABC.
Esta simulación se genera con el comando runif que generara números entre 5 y 90. Usamos el comando
round, para asegurarnos que serán únicamente números enteros.
poblacion <- round(runif(400000, 5, 90),0)
Tomemos una muestra de tamaño 20 de la población y obtengamos la media. Para ello usamos el comando
sample. En este comando incluimos la opción replace=FALSE, para indicar que una vez que se ha seleccionado
una persona, no se es posible volver a seleccionarla.
muestra<- sample(poblacion,size=20,replace=FALSE)
mean(muestra)
## [1] 42.8
Observamos que la media de la muestra arroja 42.8. Esto nos llevaría a decir que la edad promedio del país
ABC es 42.8. Tomemos una segunda y tercer muestra y obtengamos nuevamente la media.
muestra2<- sample(poblacion,size=20,replace=FALSE)
mean(muestra2)
## [1] 50.05
muestra3<- sample(poblacion,size=20,replace=FALSE)
mean(muestra3)
## [1] 47.15
Observamos que los valores promedio de las tres muestras son diferentes. Podemos repetir este procedimiento
de muestreo 100 veces y obtendremos 100 valores diferentes para la edad promedio del país ABC. Para ello
efectuamos un ciclo con el comando for. Este comando efectuará la misma instrucción 100 veces, es decir,
tomará una muestra de la población, obtendrá la media y la guardará en el objeto de nombre media_muestral,
durante 100 ocasiones. En cada ocasión obtendremos un valor promedio diferente.
n <- 100
media_muestral <- matrix(0, n,1)
for (i in 1:n) {
media_muestral[i,1]=mean(sample(poblacion,size=20,replace=FALSE))
}
¿Cuál diríamos entones que sería la edad promedio de nuestro país imaginario ABC ?
Una mejor aproximación seria obtener la media de todas las medias muestrales.
mean(media_muestral)
## [1] 47.739
3
Si comparamos este valor con la media verdadera de la población tenemos
mean(poblacion)
## [1] 47.48587
Observamos que son valores más cercanos entre sí.
Además, en lugar de proponer un sólo número es posible proponer lo que se llama intervalo de confianza.
Un intervalo de confianza es un rango de valores sobre los cuales esperamos encontrar, en este caso la media
de la población.
Es decir, en lugar de considerar que la edad promedio es de 49 o 45 o 44 años, decimos que la edad promedio
se ubica por decir algo entre 42 y 49 años.
Para determinar un intervalo de confianza, debemos usar un nivel de confianza. De esta manera podemos
decir que tan confiados estamos de nuestra afirmación. Los niveles de confianza más comunes son 90%, 95%
y 99%. Entre más confiados estamos en un intervalo de confianza, más grande debe ser el intervalo.
Para elaborar un intervalo de confianza es necesario determinar la distribución de probabilidad de la media
muestral. Recuerda que con un histograma podemos darnos una idea de la distribución
hist(media_muestral, main="Histograma de la media muestral", n=30)
6
4
2
0
35 40 45 50 55 60 65
media_muestral
La distribución de la media muestral está dada por
σ
X = N µ, √
n
Los parámetros de la media muestral están dados por la media µ de la población y la desviación estándar
que se calcula como la desviación estándar de la población σ entre el número de observaciones contenidas en
la muestra.
La desviación estándar de la distribución del muestreo realizado √σn se conoce como error estándar de la
media. Entre mayor sea el valor de n, menor será el error estándar y mejor la aproximación de la media de
la muestra a la media verdadera.
4
Para calcular un intervalo de confianza para la media de la población, tenemos dos casos. Cual usar dependerá
si conocemos o no la desviación estándar de la población.
Cuando la desviación estándar de la población (es decir la real) no es conocida la mejor forma de aproximarla
es usar la desviación estándar de la muestra s. De esta manera el intervalo d confianza para la media de la
población será
s
y ± tdf × √
n
Es decir, el intervalo de confianza para la media es igual al valor promedio calculado de la muestra y
mas/menos un valor que llamaremos tdf multiplicado por la desviación estándar de la muestra dividida entre
el número de datos √sn . El valor tdf determinará el nivel de confianza del intervalo. Para ello este comando
requiere de dos valores, uno que se relaciona con el nivel de confianza en decimales (nc) de acuerdo a la
siguiente formula nc + (1 − nc)/2 y otro al numero de observaciones de la muestra menos uno, df = n − 1
• Para un nivel de confianza del 90% (.9+(1-.9)/2=.95) con una muestra de tamaño 20, tenemos (20-1)
qt(0.95, df=19)
• Para un nivel de confianza del 95% con una muestra de tamaño 20, tenemos qt(0.975, df=19)
• Para un nivel de confianza del 99% con una muestra de tamaño 20, tenemos qt(0.995, df=19)
Cuando decimos más/menos nos referimos a que se debe efectuar tanto una suma como una resta. Por lo
cual un intervalo de confianza tiene un valor superior y un valor inferior.
Para calcular un intervalo de confianza en R usamos el comando t.test(). Por ejemplo, usando la muestra2
tenemos que el intervalo de confianza al 90% para la media de la población es
t.test(muestra2, conf.level =.90)[["conf.int"]]
Consideremos que de alguna manera sabemos que la varianza de la población con la que estamos trabajando
es de 602.5. En este caso podemos usar este valor para mejorar el intervalo de confianza. Para ello tenemos
que usar la siguiente regla
σ
y±z× √
n
Observa que ahora la formula incluye una z y no una t, ademas de una σ en lugar de una s. Esto es porque
antes no teníamos el dato sobre la varianza de la población.
Los valores z se calculan con el comando qnorm, usando un único parámetro, que depende del nivel de
confianza en decimales (nc) de acuerdo con la siguiente formula nc + (1 − nc)/2.
5
• Para un nivel de confianza del 90% (.9+(1-.9)/2=.95), qnorm(0.95)
• Para un nivel de confianza del 95% (.95+(1-.95)/2=.975), qnorm(0.975)
• Para un nivel de confianza del 99% (.99+(1-.99)/2=.995), qnorm(0.995)
Siguiendo la regla para el intervalo de confianza con la muestra al 95% tenemos que es necesario conocer los
siguientes parametros:
• y la muestra
• σ representando la desviación estándar de la población (raíz de la varianza)
• nc de acuerdo con el nivel de confianza
Podemos construir una función para determinar este intervalo de confianza, para ello tenemos
ic_media_var_pob <- function(y, sigma, nc, variable)
{
z <- qnorm(nc+(1-nc)/2)
n <- length(y)
i_sup <- mean(y)+z*sigma/sqrt(n)
i_inf <- mean(y)-z*sigma/sqrt(n)
texto <- sprintf("Estamos %s%% seguros que el promedio de %s está entre %.2f y %.2f.",
(nc*100), variable, i_inf, i_sup)
return(list(texto))
}
Para utilizar esta función se requerirán los 4 parametros citados anteriormente. Se ha incluido uno extra en el
que se guarda el nombre de la variable que estamos analizando. Esta con el fin de que la función proporcione
como resultado un texto.
Definamos una variable sigma= 24.55
ic_media_var_pob(muestra2,sigma,.95,"edad")
## [[1]]
## [1] "Estamos 95% seguros que el promedio de edad está entre 39.09 y 61.01."
Observa que la función consume: la muestra de los datos, el valor sigma equivalente a la desviación estándar
de la población, un intervalo de confianza y el nombre de la variable. Esta función te puede ser de utilidad
en el futuro, cuando tengas la información sobre la varianza de la población. En la práctica es más común
usar el caso 1 y el caso 2 se deja específicamente para casos en los que por alguna razón, principalmente por
levantamiento anteriores, se conoce la desviación de la población.
Estos datos contienen el ingreso mensual reportado en la Encuesta Nacional de Empleo en México. Nuestro
objetivo es determinar un intervalo de confianza para la diferencia de las medias del salario que ganan
los hombres y el que ganan las mujeres.
Al igual que antes, la forma del intervalo dependerá si conocemos o no la desviación estándar de la población.
6
3.1 Caso 1: Si NO se conoce la varianza o desviación estándar de las poblaciones
Cuando no conocemos la varianza de la población debemos considerar que pueden existir dos opciones: que
la varianza de las dos muestras se la misma o que la varianza de las dos muestras diferente. La mayoría de
los casos caemos en alguno de estos supuestos
Desarrollemos ambos casos. Para ello separemos la información correspondiente al ingreso de los hombres y
de las mujeres.
library(dplyr)
hombres <- subset(enoe, sex=="Hombre")
hombres<-hombres$ingreso_mensual
mujeres <- subset(enoe, sex=="Mujer")
mujeres <- mujeres$ingreso_mensual
1 1
r
(y1 − y2 ) ± tdf Sagrup +
n1 n2
Donde ttd es el mismo parámetro que anteriormente. Con la diferencia que ahora
df = n1 + n2 − 2
En este caso
(n1 − 1)s21 + (n2 − 1)s22
Sagrup =
n1 + n2 − 2
En este caso será necesario redondear el valor de df, para obtener un número entero.
De manera automática R dispone del comando t.test() para cualquiera de las posibilidades que ofrece el
caso 1. Como mencionamos anteriormente, este comando proporciona varias funcionalidades. Lo usaremos en
combinación con una función propia, para obtener el intervalo de confianza cuando no conocemos la varianza
de la población.
7
ic_dosmedias_nvp <- function(x,y,var_ig, nc, variable)
{
t <- t.test(x, y, var.equal = var_ig, conf.level = nc)[["conf.int"]]
i_inf <- t[1]
i_sup <- t[2]
texto <- sprintf("Estamos %s%% seguros que la diferencia del %s promedio entre
ambas muestras está entre %.2f y %.2f.",
(nc*100), variable, i_inf, i_sup)
resumen <- sprintf("%s%% IC: %.2f a %.2f",
(nc*100), i_inf, i_sup)
return(list(texto, resumen))
}
• Si la varianza entre ambas muestras es la misma usamos var_ig=TRUE. Observa que en este caso el
comando consume las muestras y pregunta si consideramos que las muestras tienen la misma varianza
o no. Si es la misma usamos
ic_dosmedias_nvp (x=hombres, y=mujeres, var_ig=TRUE, nc=.95, variable="salario")[[1]]
## [1] "Estamos 95% seguros que la diferencia del salario promedio entre \n ambas mues
ic_dosmedias_nvp (x=hombres, y=mujeres, var_ig=TRUE, nc=.95, variable="salario")[[2]]
## [1] "Estamos 95% seguros que la diferencia del salario promedio entre \n ambas mues
ic_dosmedias_nvp (x=hombres, y=mujeres, var_ig=FALSE, nc=.95, variable="salario")[[2]]
## [1] 38953016
var(mujeres)
## [1] 26173669
En muestro ejemplo tenemos que la varianza de las muestras es diferente, por tanto la mejor aproximación es
la que hemos planteado en el caso 1.1, que nos llevó a concluir
## [[1]]
## [1] "Estamos 99% seguros que la diferencia del salario promedio entre \n ambas mues
##
## [[2]]
## [1] "99% IC: 1451.32 a 2034.10"
8
3.2 Caso 2: Si se conoce la varianza o desviación estándar de la población
En algunos casos es posible que conozcamos la varianza de población, por lo tanto es posible estimar la
varianza de las muestras de las cuales deseamos un intervalo de confianza para su diferencia. En tales casos
el procedimiento para realizar el intervalo, cambia un poco, la estimación dependerá si la varianza de las
muestras es la misma o es diferente. Supongamos que de alguna manera sabemos que la varianza de la
población de la cual provienen las muestras sobre los salarios de hombres es de 48654016 y la de las mujeres
es de 16974669. Usaremos estos datos para obtener un mejor intervalo de confianza.
1 1
r
(y1 − y2 ) ± zσ +
n1 n2
Cuando tenemos diferentes varianzas en cada muestra el intervalo de confianza se construye de la siguiente
manera
s
σ12 σ2
(y1 − y2 ) ± z + 2
n1 n2
De manera directa establezcamos una función que permita efectuar el intervalo de confianza para cualquiera
de las opciones del caso 2.
ic_dosmedias_svp <- function(y1, y2,nc,var_ig, sigma1, sigma2, variable)
{
z <- qnorm(nc+(1-nc)/2)
n1<-length(y1)
n2<-length(y2)
if(var_ig==TRUE){
i_sup <- (mean(y1)-mean(y2))+z*sigma1*sqrt(1/n1+1/n2)
i_inf <- (mean(y1)-mean(y2))-z*sigma1*sqrt(1/n1+1/n2)
resumen <- sprintf("%s%% IC: %.2f a %.2f", (nc*100), i_inf, i_sup)
texto <- sprintf("Estamos %s%% seguros que la diferencia del %s promedio entre
ambas muestras está entre %.2f y %.2f.",
(nc*100),variable, i_inf, i_sup, variable)
return(list(texto, resumen))
}
if(var_ig==FALSE){
i_sup <- (mean(y1)-mean(y2))+z*sqrt(sigma1^2/n1+sigma2^2/n2)
i_inf <- (mean(y1)-mean(y2))-z*sqrt(sigma1^2/n1+sigma2^2/n2)
resumen <- sprintf("%s%% IC: %.2f a %.2f", (nc*100), i_inf, i_sup)
texto <- sprintf("Estamos %s%% seguros que la diferencia del %s promedio entre
ambas muestras está entre %.2f y %.2f.",
(nc*100),variable, i_inf, i_sup)
return(list(texto, resumen))
}
9
}
sigma1 <- sqrt(48654016)
sigma2 <- sqrt(16974669)
## [1] "Estamos 95% seguros que la diferencia del salario promedio entre \n ambas
ic_dosmedias_svp(y1=hombres, y2=mujeres, nc=.95, var_ig=TRUE, sigma1=sigma1,
sigma2 = sigma2,
variable = "salario")[[2]]
## [1] "Estamos 95% seguros que la diferencia del salario promedio entre \n ambas
ic_dosmedias_svp(y1=hombres, y2=mujeres, nc=.95, var_ig=FALSE, sigma1=sigma1,
sigma2=sigma2, variable = "salario")[[2]]
10
El objetivo es determinar un intervalo con el 95% de confianza para el incremento promedio observado. Este
tipo de problemas corresponde a lo que se conoce como muestra pareadas. Reciben este nombre porque cada
observación esta emparejada (pareada o relacionada). Podríamos decir que tenemos dos muestras, una que
contiene la información de antes (MA) y otra la de después (MD). La diferencia es que ahora cada observación
de MA estaá relacionada con la MD.
En este caso el intervalo de confianza esta dado por;
sd
d ± tdf ∗ √
n
Donde d, sd corresponde con la media y la desviación estándar de las diferencias de ambas muestras emparejadas.
En este caso td representará el valor para el intervalo que depende del nivel de confianza y df = n − 1.
Para nuestro ejemplo comencemos poniendo los datos en un vector para manipularlos en R
MA <- c(150, 121, 86, 89, 101, 120, 94, 97, 120, 149, 113,
101, 100, 89, 134)
MD <- c(170, 127, 78, 81, 110, 128, 91, 92, 180, 168, 118,
117, 119, 88, 145)
La función t.test() no ayuda nuevamente a efectuar el intervalo de confianza. En este caso debemos incluir la
opción ´paired = TRUE´ para indicar que se trata de una muestra pareada.
t.test(MA, MD, paired = TRUE, conf.level = 0.95)[["conf.int"]]
11
Al igual otras estimaciones por intervalo, entre mayor sea el nivel de confianza elegido, mayor será el rango
del intervalo estimado que contiene al valor de la población, y a diferencia de otras estimaciones por intervalo,
cuando se trata de proporción existen diferentes fórmulas para calcularlo.
En esta sección discutiremos cuatro métodos para estimar un intervalo de confianza para una proporción.
1. Intervalo de wald: Es el método tradicional y análogo para estimar el intervalo de la media, sin embargo,
este método es consistente y extremadamente inexacto, a menos, que se tenga una muestra muy grande
y la proporción no se encuentre muy cerca a los extremos 0,1.
2. Intervalo de Agresti-Coull: Este intervalo es un ajuste al método de Wald, fácil de calcular analiticamente
y razonablemente exacto.
3. Intervalo de Clopper-Pearson (exact): Este método asegura una gran probabilidad cobertura, la cual
será siempre mayor al nivel de confianza elegido, sin embargo requiere de una transformación inversa de
la distribución beta, por lo tanto no se analiza analíticamente. Aunque es el método más exacto, genera
los intervalos más de confianza más amplios.
4. Intervalo de Wilson: Es también una mejora del método de Wald, más exacto que este y es conveniente
cuando se tienen muestras pequeñas o donde la proporción es cercana a los extremos 0,1.
El método tradicional de Wald, es poco preciso, ya que si generamos un intervalo de confianza del 95% y
generamos muchas muestras, en el largo plazo esperamos obtener una probabilidad de cobertura igual al
nivel de confianza, es decir, que el 95% de las veces, el valor del parámetro este dentro de los límites del
intervalo de confianza. En realidad, el método de Wald tiene una probabilidad de cobertura menor al nivel
de confianza, al rededor del 70% a 85% de las veces el intervalo captura el verdadero valor de la proproción,
por esta razón no se recomienda utilizar este intervalo, sin embargo, el método de Agresti-Coull, al ser una
modificación de este, requiere que lo describamos brevemente aunque no deba utilizarse.
5.1 Datos
Para los ejemplos de esta sección utilizaremos los mismos datos de le ENOE que utilizamos en la sección
anterior Analizaremos la proporción de personas que tiene un nivel de escolaridad media superior y superior
y construiremos un intervalo de confianza de este porcentaje.
setwd("~/Dropbox/Curso Est R/Cap_4")
rm(list=ls())
library(readxl)
library(dplyr)
library(tidyverse)
library(PropCIs)
enoe <- read_xlsx("enoe.xlsx")
Generaremos una nueva variable dicotómica, que sea igual a 1 cuando la persona tenga un nivel educativo
igual a “Medio superior y superior”:
enoe <- enoe %>%
mutate(medio_superior = case_when(
nivel_edu=="Medio superior y superior" ~ 1,
nivel_edu!="Medio superior y superior" ~ 0))
## [1] 0.3244163
12
5.2 Intervalo de Wald
La construcción del intervalo de Wald es similar al de la media, es decir, se construye a partir de la proporción
más/menos un margen de error. En este caso el estimador se refiere a la proporción muestral p̂ y el margen
de error se construye a partir del error estándar y el valor z asociado al nivel de confianza elegido.
Recordemos que los valores z se calculan con el comando qnorm, usando un único parámetro, que depende
del nivel de confianza:
• Para un nivel de confianza del 90%, z = 1.645
• Para un nivel de confianza del 95%, z = 1.96
• Para un nivel de confianza del 99%, z = 2.58
La forma específica del intervalo de confianza de una proporción con el método de Wald:
p̂ ± z ∗ SE(p̂)
p̂ ± z ∗ (p̂q̂)/n
p
La función anterior requiere de entrada un valor x, el cual el indica el número total de casos de éxito, es decir,
la suma de todos los valores 1. El valor n indica el tamaño de la muestra. A partir de estos dos valores, la
función estima la proporción. También requiere indicar el nivel de confianza en forma de tasa.
Utilizamos esta forma de introducir los valores para que el usuario se familiarice con el resto de las funciones
que estiman intervalos de una proporción, las cuales, en su mayoría, en vez de dar como insumo un vector de
datos, requieren dos valores; el total de casos de éxito y el tamaño de la muestra.
Con esta función podemos generar un intervalo con los tres niveles de confianza, observa cómo cambia el
rango. Para tener un código que pueda leerse mejor generamos los dos valores que requiere la función:
exito <- sum(enoe$medio_superior)
n <- length(enoe$medio_superior)
## $proporcion
## [1] 0.3244163
##
## $intervalo
## [1] 0.3168214 0.3320112
waldic(exito, n, confianza= 0.95)
## $proporcion
13
## [1] 0.3244163
##
## $intervalo
## [1] 0.3153665 0.3334662
waldic(exito, n, confianza= 0.99)
## $proporcion
## [1] 0.3244163
##
## $intervalo
## [1] 0.3125228 0.3363099
El invervalo de Agresti-Coull es una modificación del intervalo de Wald, el cual añade dos observaciones al
número de casos de éxito (cuando la variable de interés es igual a 1) y 2 observaciones al número de casos de
fracaso (cuando la variable de interés es igual a 0) de modo que el total de observaciones aumentó en cuatro.
Con esta simple modificación el intervalo mejora su probabilidad de cobertura. También se le conoce como el
método más cuatro.
Para este cálculo necesitamos la libreria PropCIs, la cual requiere instalación previa. La función que
utilizaremos se llama add4ci. Esta función requiere de tres valores, el total de casos de éxito, el tamaño de la
muestra y el nivel de confianza.
Para estimar los intervalos de confianza con los tres niveles:
add4ci(exito, n,conf.level = 0.90)
##
##
##
## data:
##
## 90 percent confidence interval:
## 0.3168908 0.3320785
## sample estimates:
## [1] 0.3244846
add4ci(exito, n,conf.level = 0.95)
##
##
##
## data:
##
## 95 percent confidence interval:
## 0.3154360 0.3335332
## sample estimates:
## [1] 0.3244846
add4ci(exito, n,conf.level = 0.99)
##
##
##
## data:
14
##
## 99 percent confidence interval:
## 0.3125928 0.3363765
## sample estimates:
## [1] 0.3244846
2
Zα/2
1+ n
Afortunadamente, el software realizará los calculos por nosotros. El comando que utilizaremos se llama
scoreci, el cual también forma parte de la paqueteria PropCIs
Para calcular este intervalo con los tres niveles de confianza:
scoreci(exito, n,conf.level = 0.90)
##
##
##
## data:
##
## 90 percent confidence interval:
## 0.3169 0.3321
scoreci(exito, n,conf.level = 0.95)
##
##
##
## data:
##
## 95 percent confidence interval:
## 0.3154 0.3335
scoreci(exito, n,conf.level = 0.99)
##
##
##
## data:
##
## 99 percent confidence interval:
## 0.3126 0.3364
Es un método “exacto” en el sentido de utiliza la distribución binomial exacta en lugar de una aproximación
de una distribución. Cuando se elige un nivel de confianza, la probabilidad de cobertura suele ser mayor a
15
este. La estimación del intervalo es complicada, sin embargo, dependeremos del software para estimar este
intervalo.
Utilizando la función exactci de la paqueteria PropCIs, la sintaxis es similar al resto de las funciones:
exactci(exito, n,conf.level = 0.90)
##
##
##
## data:
##
## 90 percent confidence interval:
## 0.3168102 0.3320960
exactci(exito, n,conf.level = 0.95)
##
##
##
## data:
##
## 95 percent confidence interval:
## 0.3153686 0.3335636
exactci(exito, n,conf.level = 0.99)
##
##
##
## data:
##
## 99 percent confidence interval:
## 0.3125579 0.3364381
Para comparar los diferentes métodos de un intervalo, observa cómo cambian para esta proporción:
print("Wald")
## [1] "Wald"
waldic(exito, n, confianza= 0.95)
## $proporcion
## [1] 0.3244163
##
## $intervalo
## [1] 0.3153665 0.3334662
print("A-C")
## [1] "A-C"
add4ci(exito, n,conf.level = 0.95)
##
##
##
## data:
##
16
## 95 percent confidence interval:
## 0.3154360 0.3335332
## sample estimates:
## [1] 0.3244846
print("Wilson")
## [1] "Wilson"
scoreci(exito, n,conf.level = 0.95)
##
##
##
## data:
##
## 95 percent confidence interval:
## 0.3154 0.3335
print("Exacto")
## [1] "Exacto"
exactci(exito, n,conf.level = 0.95)
##
##
##
## data:
##
## 95 percent confidence interval:
## 0.3153686 0.3335636
17
6.1 Datos
Al igual que el caso anterior, utilizaremos una submuestra de la encuesta ENOE para analizar la proporción de
personas que tiene un nivel de escolaridad media superior y superior y por sexo. Y construiremos un intervalo
de confianza para la diferencia entre el porcentaje de hombres y mujeres con este nivel de escolaridad.
Primero necesitamos dividir nuestra muestra en dos grupos, uno de hombres y uno de mujeres.
mujer <- enoe %>%
filter(sex=="Mujer")
## [1] 0.3478261
mean(hombre$medio_superior)
## [1] 0.3099102
# Diferencia entre porcentajes (Mujer-Hombre)
mean(mujer$medio_superior)-mean(hombre$medio_superior)
## [1] 0.03791589
El método de Wald para la diferencia de dos proporciones tiene la forma tradicional, el estimador puntual
más menos un margen de error. La forma específica del intervalo es:
18
##
## 2-sample test for equality of proportions without continuity
## correction
##
## data: exito_mh out of n_mh
## X-squared = 15.928, df = 1, p-value = 6.58e-05
## alternative hypothesis: two.sided
## 95 percent confidence interval:
## 0.01918081 0.05665098
## sample estimates:
## prop 1 prop 2
## 0.3478261 0.3099102
Para mejorar el método de Wald, se puede hacer una corrección por continuidad, es un ajuste que se realiza
cuando se usa una distribución normal continua para aproximar una distribución binomial discreta.
Para calcular este intervalo en R simplemente debemos cambiar especificar la opción correct con el valor
TRUE de función prop.test:
prop.test(exito_mh,n_mh,correct = TRUE, conf.level = .95)
##
## 2-sample test for equality of proportions with continuity correction
##
## data: exito_mh out of n_mh
## X-squared = 15.755, df = 1, p-value = 7.208e-05
## alternative hypothesis: two.sided
## 95 percent confidence interval:
## 0.01897490 0.05685689
## sample estimates:
## prop 1 prop 2
## 0.3478261 0.3099102
Existe otra función con la cual podemos calcular este intervalo, utilizando la función pairwiseCI de la libreria
con el mismo nombre pairwiseCI.
Esta función requiere de insumos con una estructura diferente. En vez de tener dos vectores con el total de
casos de éxito y el tamaño del grupo. Podemos tener una sola tabla de datos con total de casos de éxito, el
tamaño del grupo, el total de fracasos y una variable categórica que indica a que grupo pertenecen estos
valores.
enoe_grupo <- enoe %>%
mutate(total=1) %>%
group_by(sex) %>%
summarise(medio_superior=sum(medio_superior), n=sum(total)) %>%
mutate(fracaso=n-medio_superior)
## # A tibble: 2 x 4
## sex medio_superior n fracaso
## <chr> <dbl> <dbl> <dbl>
## 1 Hombre 1967 6347 4380
19
## 2 Mujer 1368 3933 2565
Para calcular el intervalo usamos la siguiente sintaxis:
library(pairwiseCI)
##
## 95 %-confidence intervals
## Method: Continuity corrected interval for the difference of proportions
##
##
## estimate lower upper
## Mujer-Hombre 0.0379 0.019 0.0569
##
##
Puedes notar que con ambas funciones se llega al mismo resultado.
6.3 Agresti-Caffo
##
##
##
## data:
##
## 95 percent confidence interval:
## 0.01920138 0.05666533
## sample estimates:
## [1] 0.03793336
20
Para calcular el intervalo con la función pairwiseCI, utilizamos la siguiente sintaxis, nota que es la misma
función que usamos anteriormente, solo debemos cambiar el valor de opción CImethod por el valor “AC”:
pairwiseCI(cbind(medio_superior, fracaso) ~ sex, data=enoe_grupo,
conf.level = 0.95, method = "Prop.diff", CImethod="AC")
##
## 95 %-confidence intervals
## Method: Agresti-Caffo interval for the difference of proportions
##
##
## estimate lower upper
## Mujer-Hombre 0.0379 0.0192 0.0567
##
##
6.4 Newcombe
Este método es ampliamente recomendado, excepto cuando se tiene muestras pequeñas. Para calcular este
intervalo usamos la función pairwiseCI con la misma sintaxis de los ejemplos anterior, cambiando la opción
del método CImethod por “NHS” que se refiere al método de Newcombe.
pairwiseCI(cbind(medio_superior, fracaso) ~ sex, data=enoe_grupo,
conf.level = 0.95, method = "Prop.diff", CImethod="NHS")
##
## 95 %-confidence intervals
## Method: Newcombes Hybrid Score interval for the difference of proportions
##
##
## estimate lower upper
## Mujer-Hombre 0.0379 0.0192 0.0567
##
##
21
2
r
SE(σ ) = s
2 2
n−1
Para la construcción de un intervalo de confianza de la varianza, al ser asimétrico se construye con la siguiente
formula:
(n − 1)s2 2 (n − 1)s2
≤ σ ≤
χ2mayor χ2menor
Para calcular este intervalo necesitamos conocer el tamaño de la muestra y la varianza muestral. Además
necesitamos determinar dos valores de la distribución chi-cuadrada (χ2 ) de tal manera que proporcionen que
el área (o probabilidad) entre ambos valores sea igual al nivel de confianza elegido.
Pensemos en un nivel de confianza del 95%. La probabilidad total que se encuentra entre χ2menor y χ2mayor
es igual a 95% (0.95), por lo tanto, la probabilidad que se encuentra a la izquierda del valor χ2menor y a la
derecha de χ2mayor es igual a 5%, equivalente a 2.5% a cada extremo.
Para encontrar el valor χ2menor necesitamos encontrar el valor de la distribución asociado a una probabilidad
de 0.025 (2.5%) a la izquierda y grados de libertad n − 1, es decir, cuando el área desde cero hasta χ2menor es
de 0.025.
Para encontrar el valor χ2mayor necesitamos encontrar el valor de la distribución asociado a una probabilidad
de 0.975 (97.5%) a la izquierda y grados de libertad n − 1, es decir, cuando el área desde cero hasta χ2mayor
es de 0.975.
Esto resulta más sencillo de obtener a través de la función qchisq la cual nos reporta el valor de la distribución
chi-cuadrada asociado a una probabilidad que va desde 0 hasta el valor requerido y grados de libertad n − 1,
de esta manera para los diferentes niveles de confianza necesitamos los siguientes valores de chi-cuadrado
menor y mayor:
• Nivel de confianza del 90%:
– χmenor = qschisq(0.05, df = (n − 1))
– χmayor = qschisq(0.95, df = (n − 1))
• Nivel de confianza del 95%:
– χmenor = qschisq(0.025, df = (n − 1))
– χmayor = qschisq(0.975, df = (n − 1))
• Nivel de confianza del 99%:
– χmenor = qschisq(0.005, df = (n − 1))
– χmayor = qschisq(0.995, df = (n − 1))
7.1 Datos
Usando el mismo extracto de la muestra ENOE, construyamos un intervalo de confianza para la varianza del
ingreso mensual. Los cálculos son sencillos de realizar sin utilizar ninguna función específica:
# Varianza del ingreso
varianza <- var(enoe$ingreso_mensual)
# Chi menor
chi_menor <- qchisq(0.025,df=(length(enoe$ingreso_mensual)-1))
# Chi mayor
chi_mayor <- qchisq(0.995,df=(length(enoe$ingreso_mensual)-1))
22
# limite inferior
li <- ((length(enoe$ingreso_mensual)-1)*varianza)/chi_mayor
# limite superior
ls <- ((length(enoe$ingreso_mensual)-1)*varianza)/chi_menor
intervalo_varianza
## $varianza
## [1] 34778240
##
## $intervalo
## [1] 33560162 35748988
23
Para encontrar el valor Fmayor necesitamos encontrar el valor de la distribución asociado a una probabilidad
de 0.975 a la izquierda y grados de libertad n1 − 1 en el numerador y n2 − 2 en el denominador, es decir,
cuando el área desde cero hasta Fmayor es de 0.975.
Esto resulta más sencillo de obtener a través de la función qf la cuál nos reporta el valor de la distribución
F asociado a una probabilidad que va desde 0 hasta el valor requerido y grados de libertad n1 − 1 en el
numerador y n2 − 1 en el denominardor, de esta manera para los diferentes niveles de confianza necesitamos
los siguientes valores de F menor y mayor:
• Nivel de confianza del 90%:
– Fmenor = qf (0.05, df 1 = (n1 − 1), df 2 = (n2 − 1))
– Fmayor = qf (0.95, df = (n − 1))
• Nivel de confianza del 95%:
– Fmenor = qf (0.025, df 1 = (n1 − 1), df 2 = (n2 − 1))
– Fmayor = qf (0.975, df 1 = (n1 − 1), df 2 = (n2 − 1)))
• Nivel de confianza del 99%:
– Fmenor = qf (0.005, df 1 = (n1 − 1), df 2 = (n2 − 1))
– Fmayor = qf (0.995, , df 1 = (n1 − 1), df 2 = (n2 − 1))
8.1 Datos
Con los sobre ingresos de los trabajadores de la encuesta ENOE, podemos construir un intervalo de confianza
para el
var_mujer <- enoe %>%
filter(sex=="Mujer") %>%
mutate(total=1) %>%
summarise(var=var(ingreso_mensual), n=sum(total))
intervalo_varianza
## $cociente
## [1] 0.6719292
##
## $intervalo
## [1] 0.6350494 0.7106829
Observa que el intervalo no incluye el valor 1, cuando s21 es igual a s22 , por lo tanto, podemos concluir que
existe evidencia suficiente para decir que la variación en el ingreso de hombres y mujeres es diferente, pues
24
tenemos una confianza del 95% de que el intervalo 0.63 - 0.71 realmente contiene el valor verdadero del
cociente de las varianzas.
Para calcular un intervalo de confianza de la pendiente es necesario conocer la distribución muestral de este,
es decir, toda la colección de posibles resultados que se obtendrían que tomar muchas muestras y estimamos
una regresión lineal. Para cada estimación tendremos un coeficiente de la pendiente. Todos los posibles
coeficientes dibujan una distribución normal, en cuyo centro se encuentra el verdadero valor la pendiente, y a
la cuál podemos calcular la desviación estándar.
La desviación estándar de la pendiente de la regresión se refiere al error estándar, nos indica cuánto se
dispersa el promedio de estos coeficientes de una distribución muestral, el error estándar es una característica
de las distribuciones muestrales, no de la población.
La forma general del intervalo es similar al de la media, un estimador puntual, más menos un margen de
error. La forma específica es la siguiente formula:
β̂ ± tdf SE(β̂)
Donde β̂ se refiere al estimador puntual de la pendiente, que se obtiene al estimar la regresión lineal, tdf al
valor de tdf asociado al nivel de confianza seleccionado y los grados de libertad del tamaño de muestra SE(β̂)
es el error estándar de la pendiente el cual depende de los residuales de la regresión.
El error estándar de la pendiente es el error estándar de los residuales Se y dividirlo entre la desviación
estándar de la variable independiente x Sx multiplicado por la raíz de n − 1
S
SE(β̂) = √e
Sx n − 1
rP
(residuales)2
A su vez, Se = n−2
Cuando se estima el intervalo de confianza del intercepto se utiliza la misma idea que para una pendiente, el
estimador puntal más menos un margen de error. La forma específica de este intervalo es la siguiente formula:
α̂ ± tdf SE(α̂)
Donde α̂ se refiere al estimador puntual del intercepto, que se obtiene al estimar la regresión lineal, tdf al
valor de tdf asociado al nivel de confianza seleccionado y los grados de libertad del tamaño de muestra SE(α̂)
25
es el error estándar del intercepto el cual depende de la desviación estándar de la variable dependiente, de la
suma de las desviaciones de la variable independiente respecto a su media.
q
x2
El error estándar del intercepto es SE(α̂) = Sy,x n1 + SS donde SSxx = (xi − x)2
P
xx
9.3 Datos
Usando datos del Banco Mundial para un grupo de países del continente Americano, analizaremos cual es la
relación lineal que existe entre el PIB per cápita y la esperanza de vida.
Para evitar una gran dispersión entre los datos, analizaremos la relación lineal entre el logaritmo natural
de la esperanza de vida como variable dependiente y el logaritmo natural del PIB per cápita como variable
independiente.
Estos datos se pueden encontrar el archivo “csv” llamado “indicadores_banco_mudial”.
setwd("~/Dropbox/Curso Est R/Cap_4")
rm(list=ls())
data <- read_csv("indicadores_banco_mudial.csv")
summary(modelo)
##
## Call:
## lm(formula = lnesperanza ~ lnpib, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.19796 -0.02828 0.01268 0.04448 0.10005
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.290856 0.052032 63.25 <2e-16 ***
## lnpib 0.110455 0.005999 18.41 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.06562 on 529 degrees of freedom
## Multiple R-squared: 0.3906, Adjusted R-squared: 0.3894
## F-statistic: 339 on 1 and 529 DF, p-value: < 2.2e-16
Nota que en el resumen del modelo, obtenemos el error estándar tanto del intercepto como de la pendiente.
Por lo que podemos calcular manualmente los intervalos de confianza, sin embargo podemos ahorrar algunas
líneas de código al utilizar la función confit.
Para calcular los intervalos solo es necesario indicar el objeto en el cual se guardó el modelo de regresión
y el nivel confianza que seleccionamos, de esta manera obtenemos los limites inferior y superior de ambos
coeficientes:
26
confint (modelo, level=0.95)
## 2.5 % 97.5 %
## (Intercept) 3.18864052 3.3930715
## lnpib 0.09867111 0.1222394
Con estos intervalos podemos concluir y tener un mejor indicador que los estimados puntuales.
Con una confianza del 95%, el verdadero valor del intercepto se encuentra en el rango 3.18 - 3.39 y la verdadera
pendiente de la regresión lineal se encuentra en el rango 0.098 - 0.122.
Además del intervalo de confianza de la pendiente, podemos ver gráficamente con un diagrama de dispersión,
junto con la recta de regresión, el intervalo de confianza del valor medio de la variable dependiente, además
de un intervalo de predicción.
El intervalo de confianza del valor medio de y: Se refiere a un intervalo del valor medio de las y que
corresponden a un valor dado de x. Tenemos una confianza del A% de que la respuesta media para un valor
dado de x se encontrará entre los limites inferior y superior.
El intervalo de predicción: Se refiere a un rango de valores el cuál esperamos que contenga el valor predicho
de un solo valor y en una ecuación de regresión para un solo valor dado de x. Tenemos una confianza de A%
de que cualquier observación predicha a partir de la variable independiente estará dentro de este rango. Por
esta razón los intervalos de predicción son más amplios.
Para poder graficar estos intervalos podemos utilizar la función plot.add.ci que fue elaborada por John Gosink:
plot.add.ci <- function(x, y, interval='prediction', level=0.9,
regressionColor='red', ...) {
xOrder <- order(x)
x <- x[xOrder]
y <- y[xOrder]
fit <- lm(y ~ x, data=data.frame(x=x, y=y))
newX <- data.frame(x=jitter(x))
fitPred <- predict.lm(fit,newdata=newX,interval=interval,level=level, ...)
abline(lm(y ~ x), col=regressionColor)
lines(newX$x, fitPred[,2], lty=2, ...)
lines(newX$x, fitPred[,3], lty=2, ...)
}
La función de manera predeterminada estima el intervalo de predicción, para poder graficar el intervalo de
confianza tenemos que cambiar la opción interval. La línea roja indica la recta de regresión, la línea verde el
intervalo de predicción y la azul el intervalo de confianza.
plot(data$lnpib,data$lnesperanza, pch=1,
main="Intervalo de predicción y confianza")
# Intervalo de predicción
plot.add.ci(data$lnpib, data$lnesperanza, col="green", level=0.95, lwd="3")
# Intervalo de confianza
plot.add.ci(data$lnpib, data$lnesperanza, col="blue", level=0.95, interval = "confidence", lwd=3)
27
Intervalo de predicción y confianza
4.3
data$lnesperanza
4.2
4.1
4.0
data$lnpib
28