Instalamos los paquetes con los que vamos a trabajar.
library(lsm) # Para acceder a la base de datos survey
library(knitr) # Para construir tablas
library(kableExtra) # Para mejorar la presentación de las tablas
Pegamos las funciones que nos permitirán calcular los intervalos de confianza.
# ============================================================
# 1. Intervalo Z para una media con sigma conocida
# ============================================================
ic_media_z <- function(media, sigma, n, conf = 0.95,
digitos = 4) {
alpha <- 1 - conf
z <- qnorm(1 - alpha / 2)
error_estandar <- sigma / sqrt(n)
margen_error <- z * error_estandar
inferior <- media - margen_error
superior <- media + margen_error
resultado <- data.frame(
Medida = c(
"Media",
"\u03c3",
"Error estándar",
"n",
"Grado de confianza",
"Valor crítico",
"Margen de error",
"Extremo inferior",
"Extremo superior",
"Intervalo"
),
Resultado = c(
round(media, digitos),
round(sigma, digitos),
round(error_estandar, digitos),
n,
round(conf, digitos),
round(z, digitos),
round(margen_error, digitos),
round(inferior, digitos),
round(superior, digitos),
paste0(
round(media, digitos),
" ± ",
round(margen_error, digitos)
)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 2. Intervalo t para una media con sigma desconocida
# ============================================================
ic_media_t <- function(media, s, n, conf = 0.95,
digitos = 4) {
alpha <- 1 - conf
gl <- n - 1
t_critico <- qt(1 - alpha / 2, df = gl)
error_estandar <- s / sqrt(n)
margen_error <- t_critico * error_estandar
inferior <- media - margen_error
superior <- media + margen_error
resultado <- data.frame(
Medida = c(
"Media",
"s",
"Error estándar",
"n",
"Grados de libertad",
"Grado de confianza",
"Valor crítico",
"Margen de error",
"Extremo inferior",
"Extremo superior",
"Intervalo"
),
Resultado = c(
round(media, digitos),
round(s, digitos),
round(error_estandar, digitos),
n,
gl,
round(conf, digitos),
round(t_critico, digitos),
round(margen_error, digitos),
round(inferior, digitos),
round(superior, digitos),
paste0(
round(media, digitos),
" ± ",
round(margen_error, digitos)
)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 3. Intervalo Z para una proporción
# ============================================================
ic_proporcion <- function(exitos, n, conf = 0.95,
digitos = 4) {
if (exitos < 0 || exitos > n) {
stop("El número de éxitos debe estar entre 0 y n.")
}
alpha <- 1 - conf
z <- qnorm(1 - alpha / 2)
proporcion <- exitos / n
error_estandar <- sqrt(proporcion * (1 - proporcion) / n)
margen_error <- z * error_estandar
inferior <- max(0, proporcion - margen_error)
superior <- min(1, proporcion + margen_error)
resultado <- data.frame(
Medida = c(
"Éxitos",
"n",
"Proporción",
"Error estándar",
"Grado de confianza",
"Valor crítico",
"Margen de error",
"Extremo inferior",
"Extremo superior",
"Intervalo"
),
Resultado = c(
exitos,
n,
round(proporcion, digitos),
round(error_estandar, digitos),
round(conf, digitos),
round(z, digitos),
round(margen_error, digitos),
round(inferior, digitos),
round(superior, digitos),
paste0(
round(proporcion, digitos),
" ± ",
round(margen_error, digitos)
)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 4. Intervalo para una varianza
# ============================================================
ic_varianza <- function(varianza, n, conf = 0.95,
digitos = 4) {
if (varianza <= 0) {
stop("La varianza debe ser positiva.")
}
alpha <- 1 - conf
gl <- n - 1
chi_inferior <- qchisq(alpha / 2, df = gl)
chi_superior <- qchisq(1 - alpha / 2, df = gl)
inferior <- gl * varianza / chi_superior
superior <- gl * varianza / chi_inferior
resultado <- data.frame(
Medida = c(
"Varianza muestral",
"n",
"Grados de libertad",
"Grado de confianza",
"Cuantil inferior",
"Cuantil superior",
"Extremo inferior",
"Extremo superior",
"Intervalo"
),
Resultado = c(
round(varianza, digitos),
n,
gl,
round(conf, digitos),
round(chi_inferior, digitos),
round(chi_superior, digitos),
round(inferior, digitos),
round(superior, digitos),
paste0(
"(",
round(inferior, digitos),
", ",
round(superior, digitos),
")"
)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 5. Intervalo Z para diferencia de medias
# Varianzas poblacionales conocidas
# ============================================================
ic_dif_medias_z <- function(media1, media2,
sigma1, sigma2,
n1, n2,
conf = 0.95,
digitos = 4) {
alpha <- 1 - conf
z <- qnorm(1 - alpha / 2)
diferencia <- media1 - media2
error_estandar <- sqrt(
sigma1^2 / n1 +
sigma2^2 / n2
)
margen_error <- z * error_estandar
inferior <- diferencia - margen_error
superior <- diferencia + margen_error
resultado <- data.frame(
Medida = c(
"Media (Muestra 1)",
"σ (Muestra 1)",
"n (Muestra 1)",
"Media (Muestra 2)",
"σ (Muestra 2)",
"n (Muestra 2)",
"Diferencia estimada",
"Error estándar",
"Grado de confianza",
"Valor crítico",
"Margen de error",
"Extremo inferior",
"Extremo superior",
"Intervalo"
),
Valor = c(
round(media1, digitos),
round(sigma1, digitos),
n1,
round(media2, digitos),
round(sigma2, digitos),
n2,
round(diferencia, digitos),
round(error_estandar, digitos),
round(conf, digitos),
round(z, digitos),
round(margen_error, digitos),
round(inferior, digitos),
round(superior, digitos),
paste0(
round(diferencia, digitos),
" ± ",
round(margen_error, digitos)
)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 6. Intervalo t para diferencia de medias
# Varianzas desconocidas, pero iguales
# ============================================================
ic_dif_medias_t_si <- function(media1, media2,
s1, s2,
n1, n2,
conf = 0.95,
digitos = 4) {
alpha <- 1 - conf
diferencia <- media1 - media2
# Grados de libertad
gl <- n1 + n2 - 2
# Varianza combinada
varianza_combinada <- (
(n1 - 1) * s1^2 +
(n2 - 1) * s2^2
) / gl
# Desviación estándar combinada
s_combinada <- sqrt(varianza_combinada)
# Error estándar
error_estandar <- s_combinada *
sqrt(1 / n1 + 1 / n2)
# Valor crítico
t_critico <- qt(
1 - alpha / 2,
df = gl
)
# Margen de error
margen_error <- t_critico * error_estandar
# Límites
inferior <- diferencia - margen_error
superior <- diferencia + margen_error
resultado <- data.frame(
Medida = c(
"Media (Muestra 1)",
"s (Muestra 1)",
"n (Muestra 1)",
"Media (Muestra 2)",
"s (Muestra 2)",
"n (Muestra 2)",
"Diferencia estimada",
"Varianza combinada",
"Desviación combinada",
"Grados de libertad",
"Error estándar",
"Grado de confianza",
"Valor crítico",
"Margen de error",
"Extremo inferior",
"Extremo superior",
"Intervalo"
),
Valor = c(
round(media1, digitos),
round(s1, digitos),
n1,
round(media2, digitos),
round(s2, digitos),
n2,
round(diferencia, digitos),
round(varianza_combinada, digitos),
round(s_combinada, digitos),
gl,
round(error_estandar, digitos),
round(conf, digitos),
round(t_critico, digitos),
round(margen_error, digitos),
round(inferior, digitos),
round(superior, digitos),
paste0(
round(diferencia, digitos),
" ± ",
round(margen_error, digitos)
)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 7. Intervalo t para diferencia de medias
# Varianzas desconocidas, pero diferentes
# Método de Welch
# ============================================================
ic_dif_medias_t_no <- function(media1, media2,
s1, s2,
n1, n2,
conf = 0.95,
digitos = 4) {
alpha <- 1 - conf
diferencia <- media1 - media2
termino1 <- s1^2 / n1
termino2 <- s2^2 / n2
error_estandar <- sqrt(termino1 + termino2)
gl <- (termino1 + termino2)^2 /
(
termino1^2 / (n1 - 1) +
termino2^2 / (n2 - 1)
)
t_critico <- qt(
1 - alpha / 2,
df = gl
)
margen_error <- t_critico * error_estandar
inferior <- diferencia - margen_error
superior <- diferencia + margen_error
resultado <- data.frame(
Medida = c(
"Media (Muestra 1)",
"s (Muestra 1)",
"n (Muestra 1)",
"Media (Muestra 2)",
"s (Muestra 2)",
"n (Muestra 2)",
"Diferencia estimada",
"Grados de libertad",
"Error estándar",
"Grado de confianza",
"Valor crítico",
"Margen de error",
"Extremo inferior",
"Extremo superior",
"Intervalo"
),
Valor = c(
round(media1, digitos),
round(s1, digitos),
n1,
round(media2, digitos),
round(s2, digitos),
n2,
round(diferencia, digitos),
round(gl, digitos),
round(error_estandar, digitos),
round(conf, digitos),
round(t_critico, digitos),
round(margen_error, digitos),
round(inferior, digitos),
round(superior, digitos),
paste0(
round(diferencia, digitos),
" ± ",
round(margen_error, digitos)
)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 8. Intervalo Z para diferencia de proporciones
# ============================================================
ic_dif_proporciones <- function(exitos1, n1,
exitos2, n2,
conf = 0.95,
digitos = 4) {
if (exitos1 < 0 || exitos1 > n1 ||
exitos2 < 0 || exitos2 > n2) {
stop("Los números de éxitos deben estar entre 0 y n.")
}
alpha <- 1 - conf
z <- qnorm(1 - alpha / 2)
p1 <- exitos1 / n1
p2 <- exitos2 / n2
diferencia <- p1 - p2
error_estandar <- sqrt(
p1 * (1 - p1) / n1 +
p2 * (1 - p2) / n2
)
margen_error <- z * error_estandar
inferior <- diferencia - margen_error
superior <- diferencia + margen_error
resultado <- data.frame(
Medida = c(
"Éxitos (Muestra 1)",
"n (Muestra 1)",
"Proporción (Muestra 1)",
"Éxitos (Muestra 2)",
"n (Muestra 2)",
"Proporción (Muestra 2)",
"Diferencia estimada",
"Error estándar",
"Grado de confianza",
"Valor crítico",
"Margen de error",
"Extremo inferior",
"Extremo superior",
"Intervalo"
),
Resultado = c(
exitos1,
n1,
round(p1, digitos),
exitos2,
n2,
round(p2, digitos),
round(diferencia, digitos),
round(error_estandar, digitos),
round(conf, digitos),
round(z, digitos),
round(margen_error, digitos),
round(inferior, digitos),
round(superior, digitos),
paste0(
round(diferencia, digitos),
" ± ",
round(margen_error, digitos)
)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
# ============================================================
# 9. Intervalo para la razón de varianzas
# ============================================================
ic_razon_varianzas <- function(varianza1, varianza2,
n1, n2,
conf = 0.95,
digitos = 4) {
if (varianza1 <= 0 || varianza2 <= 0) {
stop("Las varianzas deben ser positivas.")
}
alpha <- 1 - conf
gl1 <- n1 - 1
gl2 <- n2 - 1
razon <- varianza1 / varianza2
f_inferior <- qf(
alpha / 2,
df1 = gl1,
df2 = gl2
)
f_superior <- qf(
1 - alpha / 2,
df1 = gl1,
df2 = gl2
)
inferior <- razon / f_superior
superior <- razon / f_inferior
resultado <- data.frame(
Medida = c(
"Varianza (Muestra 1)",
"n (Muestra 1)",
"Grados de libertad (Muestra 1)",
"Varianza (Muestra 2)",
"n (Muestra 2)",
"Grados de libertad (Muestra 2)",
"Razón de varianzas",
"Grado de confianza",
"Valor crítico inferior",
"Valor crítico superior",
"Extremo inferior",
"Extremo superior",
"Intervalo"
),
Valor = c(
round(varianza1, digitos),
n1,
gl1,
round(varianza2, digitos),
n2,
gl2,
round(razon, digitos),
round(conf, digitos),
round(f_inferior, digitos),
round(f_superior, digitos),
round(inferior, digitos),
round(superior, digitos),
paste0(
"(",
round(inferior, digitos),
", ",
round(superior, digitos),
")"
)
),
check.names = FALSE
)
knitr::kable(
resultado,
format = "html",
col.names = c("Medida", "Valor"),
align = c("l", "r")
)
}
Seleccionamos la base de datos con la que vamos a trabajar y le asignamos el nombre “datos”. Además seleccionamos dos muestras para calcular los intervalos de confianza.
#Base de datos
datos <- lsm::survey
# Para los ejemplos de esta sección utilizaremos únicamente las primeras 100 observaciones
df1 <- datos[1:100,]
# Para otros ejemplos de esta sección utilizaremos únicamente las primeras 29 observaciones
df2 <- datos[1:29,]
# Dimensión de las dos bases de datos (observaciones, variables)
dim(datos)
## [1] 800 66
dim(df1)
## [1] 100 66
dim(df2)
## [1] 29 66
Calculamos el intervalo de confianza de la variable “Age”.
# Elimina los valores perdidos (NA)
edad <- df1$Age[!is.na(df1$Age)]
# Calcula media y tamaño
media_edad <- mean(edad)
n_edad <- length(edad)
# Calcula el intervalo
resultado <- ic_media_z(
media = media_edad,
sigma = 6,
n = n_edad,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media | 18.9374 |
| σ | 6 |
| Error estándar | 0.6 |
| n | 100 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 1.176 |
| Extremo inferior | 17.7614 |
| Extremo superior | 20.1134 |
| Intervalo | 18.9374 ± 1.176 |
# Elimina los valores perdidos (NA)
edad <- df1$Age[!is.na(df1$Age)]
# Calcula media y tamaño
media_edad <- mean(edad)
n_edad <- length(edad)
# Calcula el intervalo
resultado <- ic_media_z(
media = media_edad,
sigma = 6,
n = n_edad,
conf = 0.90
)
resultado
| Medida | Valor |
|---|---|
| Media | 18.9374 |
| σ | 6 |
| Error estándar | 0.6 |
| n | 100 |
| Grado de confianza | 0.9 |
| Valor crítico | 1.6449 |
| Margen de error | 0.9869 |
| Extremo inferior | 17.9505 |
| Extremo superior | 19.9243 |
| Intervalo | 18.9374 ± 0.9869 |
Calculamos el intervalo de confianza de la variable “Age” para la media con t.
# Elimina los valores perdidos (NA)
edad <- df2$Age[!is.na(df2$Age)]
# Calcula media y tamaño
media_edad <- mean(edad)
s_edad <- sd(edad)
n_edad <- length(edad)
# Calcula el intervalo
resultado <- ic_media_t(
media = media_edad,
s = s_edad,
n = n_edad,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media | 19.2641 |
| s | 2.0637 |
| Error estándar | 0.3832 |
| n | 29 |
| Grados de libertad | 28 |
| Grado de confianza | 0.95 |
| Valor crítico | 2.0484 |
| Margen de error | 0.785 |
| Extremo inferior | 18.4792 |
| Extremo superior | 20.0491 |
| Intervalo | 19.2641 ± 0.785 |
Calculamos el intervalo de proporción de la variable “Gender”.
table(df1$Gender)
##
## Female Male
## 49 51
# Elimina los valores perdidos (NA)
genero <- df1$Gender[!is.na(df1$Gender)]
# Calcula número de estudiantes de género Female (éxitos) y tamaño total de la muestra.
total_fem <- sum(genero == "Female")
n_fem <- length(genero)
# Calcula el intervalo
resultado <- ic_proporcion(
exitos = total_fem,
n = n_fem,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Éxitos | 49 |
| n | 100 |
| Proporción | 0.49 |
| Error estándar | 0.05 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 0.098 |
| Extremo inferior | 0.392 |
| Extremo superior | 0.588 |
| Intervalo | 0.49 ± 0.098 |
# Elimina los valores perdidos (NA)
genero <- df1$Gender[!is.na(df1$Gender)]
# Calcula número de estudiantes de género Female (éxitos) y tamaño total de la muestra.
total_mas <- sum(genero == "Male")
n_fem <- length(genero)
# Calcula el intervalo
resultado <- ic_proporcion(
exitos = total_mas,
n = n_fem,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Éxitos | 51 |
| n | 100 |
| Proporción | 0.51 |
| Error estándar | 0.05 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 0.098 |
| Extremo inferior | 0.412 |
| Extremo superior | 0.608 |
| Intervalo | 0.51 ± 0.098 |
Seleccionamos dos muestras nuevas.
df3 <-(datos[1:120,])
df4 <-(datos[1:10,])
str(df4)
## tibble [10 × 66] (S3: tbl_df/tbl/data.frame)
## $ Observation : num [1:10] 1 2 3 4 5 6 7 8 9 10
## $ ID : chr [1:10] "SB11201910010435" "SB11201910004475" "SB11201910011427" "SB11201910041975" ...
## $ Gender : chr [1:10] "Female" "Male" "Male" "Male" ...
## $ Like : chr [1:10] "TV" "Network" "Network" "TV" ...
## $ Age : num [1:10] 21.4 21.1 20.9 18.4 16.6 ...
## $ Smoke : chr [1:10] "No" "Yes" "Yes" "Yes" ...
## $ Height : num [1:10] 1.58 1.6 1.5 1.53 1.78 1.65 1.73 1.53 1.64 1.52
## $ Weight : num [1:10] 75 80 64 49 82 80 90 55 50 78
## $ BMI : num [1:10] 30 31.2 28.4 20.9 25.9 ...
## $ School : chr [1:10] "Private" "Public" "Private" "Public" ...
## $ SES : chr [1:10] "Medium" "High" "High" "Low" ...
## $ Enrollment : chr [1:10] "Credit" "Scholarship" "Scholarship" "Credit" ...
## $ Score : num [1:10] 81 78 77 70 68 65 54 50 36 35
## $ MotherHeight: chr [1:10] "Short_M" "Normal_M" "Normal_M" "Tall_M" ...
## $ MotherAge : num [1:10] 41 45 45 45 46 46 47 48 48 48
## $ MotherCHD : num [1:10] 0 0 0 0 1 0 0 0 0 1
## $ FatherHeight: chr [1:10] "Normal_F" "Short_F" "Tall_F" "Short_F" ...
## $ FatherAge : num [1:10] 40 43 44 45 45 46 46 48 48 49
## $ FatherCHD : num [1:10] 1 1 1 2 1 1 1 1 1 1
## $ Status : chr [1:10] "Distinguished" "Distinguished" "Distinguished" "Regular" ...
## $ SemAcum : num [1:10] 4.25 2.8 4.15 3.2 3.45 2.75 2.7 4.35 4.3 2.8
## $ Exam1 : num [1:10] 1.5 2.3 3.4 2.5 3.1 3.8 5 4 2.5 2.4
## $ Exam2 : num [1:10] 5 4.9 3.6 4.2 3.5 4.4 3 2.3 3.3 2.6
## $ Exam3 : num [1:10] 5 3.7 2 5 5 4.2 3.5 4.6 3.8 4.3
## $ Exam4 : num [1:10] 4.5 3.3 1.9 2.5 3 5 3.6 4.3 1.9 5
## $ ExamAcum : num [1:10] 16 14.2 10.9 14.2 14.6 17.4 15.1 15.2 11.5 14.3
## $ Definitive : num [1:10] 4 3.55 2.73 3.55 3.65 ...
## $ Expense : num [1:10] 48.9 72.1 85.2 56.6 64.6 63 40.8 65.4 37.3 63
## $ Income : num [1:10] 1.61 2.07 2.84 1.55 2.32 2.1 1.69 2.18 1.71 2.1
## $ Gas : num [1:10] 27.4 24.2 22.3 23.1 27.3 ...
## $ Course : chr [1:10] "Face-to-Face" "Virtual" "Face-to-Face" "Virtual" ...
## $ Law : chr [1:10] "Agree" "Agree" "Agree" "Agree" ...
## $ Economic : chr [1:10] "Regular" "Good" "Regular" "Bad" ...
## $ Race : chr [1:10] "Ethnic" "Ethnic" "Ethnic" "Ethnic" ...
## $ Region : chr [1:10] "North" "Center" "North" "Center" ...
## $ EMO1 : num [1:10] 1 4 3 4 2 3 2 3 4 2
## $ EMO2 : num [1:10] 2 4 1 2 1 1 4 1 2 2
## $ EMO3 : num [1:10] 2 1 3 3 2 4 2 4 3 3
## $ EMO4 : num [1:10] 1 2 3 1 4 2 3 2 1 1
## $ EMO5 : num [1:10] 4 1 2 2 2 2 1 1 2 2
## $ GOAL1 : chr [1:10] "Strongly agree" "Undecided" "Agree" "Agree" ...
## $ GOAL2 : chr [1:10] "Agree" "Disagree" "Disagree" "Undecided" ...
## $ GOAL3 : chr [1:10] "Strongly agree" "Disagree" "Agree" "Strongly agree" ...
## $ Pre_STAT1 : num [1:10] 2 1 5 4 1 4 4 2 2 2
## $ Pre_STAT2 : num [1:10] 4 1 1 3 4 1 2 3 3 5
## $ Pre_STAT3 : num [1:10] 2 1 3 1 1 5 4 3 3 2
## $ Pre_STAT4 : num [1:10] 5 1 1 2 2 3 2 3 2 4
## $ Post_STAT1 : num [1:10] 4 5 5 3 5 2 3 3 2 5
## $ Post_STAT2 : num [1:10] 5 1 2 2 3 3 2 3 2 3
## $ Post_STAT3 : num [1:10] 2 3 3 4 3 5 5 4 5 4
## $ Post_STAT4 : num [1:10] 2 3 3 5 4 4 3 5 5 1
## $ Pre_IDARE1 : chr [1:10] "Quite a bit" "Quite a bit" "Quite a bit" "Little" ...
## $ Pre_IDARE2 : chr [1:10] "Little" "Little" "Little" "Nothing" ...
## $ Pre_IDARE3 : chr [1:10] "Quite a bit" "A lot" "Quite a bit" "Quite a bit" ...
## $ Pre_IDARE4 : chr [1:10] "Quite a bit" "Nothing" "Quite a bit" "Quite a bit" ...
## $ Pre_IDARE5 : chr [1:10] "Little" "Quite a bit" "Little" "Nothing" ...
## $ Post_IDARE1 : chr [1:10] "A lot" "A little" "Nothing" "Quite a bit" ...
## $ Post_IDARE2 : chr [1:10] "A lot" "Nothing" "Quite a bit" "A little" ...
## $ Post_IDARE3 : chr [1:10] "A little" "Quite a bit" "Nothing" "A lot" ...
## $ Post_IDARE4 : chr [1:10] "Quite a bit" "A lot" "Nothing" "Quite a bit" ...
## $ Post_IDARE5 : chr [1:10] "A lot" "Quite a bit" "Nothing" "A lot" ...
## $ PSICO1 : chr [1:10] "Frequently" "Frequently" "Sometimes" "Almost always" ...
## $ PSICO2 : chr [1:10] "Almost always" "Sometimes" "Sometimes" "Frequently" ...
## $ PSICO3 : chr [1:10] "Frequently" "Sometimes" "Sometimes" "Frequently" ...
## $ PSICO4 : chr [1:10] "Almost always" "Frequently" "Frequently" "Almost never" ...
## $ PSICO5 : chr [1:10] "Almost always" "Frequently" "Sometimes" "Sometimes" ...
Calculamos el intervalo de confianza con media Z para la variable “Weight”.
# Elimina los valores perdidos (NA)
peso <- df3$Weight[!is.na(df3$Weight)]
# Calcula media y tamaño
media_peso <- mean(peso)
n_peso <- length(peso)
# Calcula el intervalo
resultado <- ic_media_z(
media = media_peso,
sigma = 6,
n = n_peso,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media | 74.265 |
| σ | 6 |
| Error estándar | 0.5477 |
| n | 120 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 1.0735 |
| Extremo inferior | 73.1915 |
| Extremo superior | 75.3385 |
| Intervalo | 74.265 ± 1.0735 |
Calculamos el intervalo de confianza para la variable “Weight”.
# Elimina los valores perdidos (NA)
peso <- df4$Weight[!is.na(df4$Weight)]
# Calcula media y tamaño
media_peso <- mean(peso)
s_peso <- sd(peso)
n_peso <- length(peso)
# Calcula el intervalo
resultado <- ic_media_t(
media = media_peso,
s = s_peso,
n = n_peso,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Media | 70.3 |
| s | 14.6595 |
| Error estándar | 4.6357 |
| n | 10 |
| Grados de libertad | 9 |
| Grado de confianza | 0.95 |
| Valor crítico | 2.2622 |
| Margen de error | 10.4868 |
| Extremo inferior | 59.8132 |
| Extremo superior | 80.7868 |
| Intervalo | 70.3 ± 10.4868 |
Calculamos el intervalo de proporción para la variable “School”.
# Elimina los valores perdidos (NA)
colegio <- df3$School[!is.na(df3$School)]
# Calcula número de estudiantes de género Female (éxitos) y tamaño total de la muestra.
total_priv <- sum(colegio == "Private")
n_priv <- length(colegio)
# Calcula el intervalo
resultado <- ic_proporcion(
exitos = total_priv,
n = n_priv,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Éxitos | 60 |
| n | 120 |
| Proporción | 0.5 |
| Error estándar | 0.0456 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 0.0895 |
| Extremo inferior | 0.4105 |
| Extremo superior | 0.5895 |
| Intervalo | 0.5 ± 0.0895 |
# Elimina los valores perdidos (NA)
colegio <- df3$School[!is.na(df3$School)]
# Calcula número de estudiantes de género Female (éxitos) y tamaño total de la muestra.
total_pub <- sum(colegio == "Public")
n_priv <- length(colegio)
# Calcula el intervalo
resultado <- ic_proporcion(
exitos = total_pub,
n = n_priv,
conf = 0.95
)
resultado
| Medida | Valor |
|---|---|
| Éxitos | 60 |
| n | 120 |
| Proporción | 0.5 |
| Error estándar | 0.0456 |
| Grado de confianza | 0.95 |
| Valor crítico | 1.96 |
| Margen de error | 0.0895 |
| Extremo inferior | 0.4105 |
| Extremo superior | 0.5895 |
| Intervalo | 0.5 ± 0.0895 |