Un intervalo de confianza es un rango de valores dentro del cual se espera que se encuentre una variable dependiente con una probabilidad determinada, dado un valor medido independiente.
Por ejemplo, si estamos evaluando el impacto de un programa de políticas públicas en el desempleo, podríamos calcular un intervalo de confianza para la reducción del desempleo utilizando datos históricos y proyectando el efecto del programa con un nivel de confianza del 95%. Este intervalo de confianza nos proporcionaría un rango de valores dentro del cual esperamos que caiga la tasa de desempleo como resultado del programa, con un alto grado de confianza. Cuanto más alto sea el nivel de confianza, más amplio será el intervalo, reflejando una mayor incertidumbre en nuestras estimaciones.
Un intervalo de confianza es el rango de valores dentro del cual se espera que se encuentre una medición para un cierto nivel de confianza. Cuanto mayor sea el nivel de confianza, más amplio será el intervalo de confianza. Esto se puede observar en las bandas de confianza utilizando la función de regresión lineal.
Veamos como operan los intervalos de confianza. Primero revisemos que paquetes tenemos instalados, con el argumento installed.packages()
Instalar paquetes
#library(statsr)
#install.packages("starsr")
#install.packages("remotes")
#remotes::install_github("r-spatial/stars")
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
Agregar base de datos de Ames
# ames <- read_csv("ames.csv")
ames <- read.csv("ames.csv")
Ajustar la semilla
set.seed(9438024)
Obtener muestra de 60 observaciones
n1 <- sample(1:2930, 60)
n2 <- 60
samp <- sample_n(ames, n2)
Revisar distribucion de los datos
ggplot(data=samp, aes(x = Lot.Area)) +
geom_histogram(binwidth = 500) +
theme_bw()
Hallar media del area del lote de la muestra
samp %>%
select(Lot.Area) %>%
summarise(mean_area = mean(Lot.Area))
## mean_area
## 1 11577.98
Hallar desviacion estandar del area del lote de la muestra
samp %>%
select(Lot.Area) %>%
summarise(sd_area = sd(Lot.Area))
## sd_area
## 1 20360.5
Parece que la distribución es unimodal y aproximadamente normal, con una ligera asimetría hacia la derecha.
El tamaño típico de las viviendas en esta muestra es de 11,577.98 pies cuadrados. Interpreté “típico” como el tamaño promedio de las viviendas en la muestra, o más específicamente, la media.
Respuesta: Si otros compañeros de clase han establecido la misma semilla, entonces sí, deberíamos esperar los mismos resultados. Sin embargo, si todos estamos extrayendo muestras aleatorias, debería haber algunas diferencias.
z_star_95 <- qnorm(0.975)
z_star_95
## [1] 1.959964
samp %>%
summarise(lower = mean(Lot.Area) - z_star_95 * (sd(Lot.Area) / sqrt(n2)),
mean = mean(Lot.Area),
upper = mean(Lot.Area) + z_star_95 * (sd(Lot.Area) / sqrt(n2)))
## lower mean upper
## 1 6426.161 11577.98 16729.81
Respuesta: Estamos seguros al 95% de que el verdadero tamaño promedio de las casas en Ames se encuentra entre los valores 7872 y 10960.
Ahora calculemos utilizando la distribucion t
# Definir el nivel de confianza
conf_level <- 0.95
# Calcular los grados de libertad
df <- n2 - 1 # n2 es el tamaño de la muestra
# Calcular el valor crítico de t
t_star <- qt((1 - conf_level) / 2, df)
qt((1 - conf_level) / 2, df)
## [1] -2.000995
# que es lo mismo que:
qt(0.025 , df)
## [1] -2.000995
qt(0.975, df)
## [1] 2.000995
# Calcular la media y la desviación estándar de la variable Lot.Area
mean_Lot_Area <- mean(samp$Lot.Area)
sd_Lot_Area <- sd(samp$Lot.Area)
mean_Lot_Area - t_star * (sd_Lot_Area / sqrt(n2))
## [1] 16837.66
mean_Lot_Area + t_star * (sd_Lot_Area / sqrt(n2))
## [1] 6318.308
# Calcular el intervalo de confianza
lower <- mean_Lot_Area - t_star * (sd_Lot_Area / sqrt(n2))
upper <- mean_Lot_Area + t_star * (sd_Lot_Area / sqrt(n2))
# Mostrar el intervalo de confianza
intervalo_confianza <- c(lower, upper)
intervalo_confianza
## [1] 16837.658 6318.308
# Calcular el intervalo de confianza utilizando t.test
intervalo_confianza <- t.test(samp$Lot.Area, conf.level = 0.95)$conf.int
# Mostrar el intervalo de confianza
intervalo_confianza
## [1] 6318.308 16837.658
## attr(,"conf.level")
## [1] 0.95
t.test(samp$Lot.Area, mu=0, alernative= c("two.sided"), conf.level = 0.95)
##
## One Sample t-test
##
## data: samp$Lot.Area
## t = 4.4047, df = 59, p-value = 4.528e-05
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 6318.308 16837.658
## sample estimates:
## mean of x
## 11577.98
Confirmemos si el valor real de la población está contenido en el intervalo de confianza. Hallar la media poblacion
ames %>%
select(Lot.Area) %>%
summarise(mean_area = mean(Lot.Area))
## mean_area
## 1 10147.92
params <- ames %>%
summarise(mu = mean(Lot.Area))
Generar 50 intervalos de confianza o replicaciones
num_replicates <- 50
Hallar intervalo de confianza para cada replicacion
ci <- replicate(num_replicates, ames %>%
sample_n(n2) %>%
summarise(lower = mean(Lot.Area) - z_star_95 * (sd(Lot.Area) / sqrt(n2)),
upper = mean(Lot.Area) + z_star_95 * (sd(Lot.Area) / sqrt(n2))), simplify = FALSE)
Crear un data frame con los intervalos de confianza
ci_df <- bind_rows(ci)
Seleccionar una fila específica de cada intervalo de confianza row_index <- 5 # Índice de la fila que deseas seleccionar selected_intervals <- ci_df %>% slice(row_index)
Dar a cada los parametros con respecto a la verdadera media (params)
ci_df <- ci_df %>%
mutate(capture_mu = ifelse(lower < params$mu & upper > params$mu, "yes", "no"))
Crear un data.frame
ci_data <- data.frame(ci_id = c(1:50, 1:50),
ci_bounds = c(ci_df$lower, ci_df$upper),
capture_mu = c(ci_df$capture_mu, ci_df$capture_mu))
Realizar grafico de intervalos de confianza
ggplot(ci_data, aes(x = ci_bounds, y = ci_id,
group = ci_id, color = capture_mu)) +
geom_point(size = 2) + # add points at the ends, size = 2
geom_line() + # connect with lines
geom_vline(xintercept = params$mu, color = "darkgray") # draw vertical line
Interpretación Cuatro intervalos de confianza de 50 no capturaron la
verdadera media poblacional, lo que significa que el 0,92 de mis
intervalos de confianza sí incluyeron la verdadera media poblacional.
Esto no es exactamente igual al nivel de confianza porque el nivel de
confianza es una estimación y no un predictor perfecto. El gráfico
muestra que la mayoría de los intervalos de confianza capturaron la
media poblacional.
Halle un intervalo de confianza con un nivel del 99% en una población muestral de 60 muestras. Utilice la varianza muestral. Calcule 100 intervalos de confianza y determine cual es la cantidad de intervalos que no contienen el parámetro poblacional