El presente trabajo práctico aborda el cálculo de probabilidades sobre distribuciones teóricas (Normal y t de Student) y el análisis de normalidad e intervalos de confianza sobre datos reales de composición corporal, siguiendo los lineamientos de inferencia estadística de las Clases 2 y 3 (Pérez, 2026).
Los ingresos mensuales (en millones de $) siguen una distribución Normal con media 1 y desvío 0,3. Se busca el percentil 90, es decir, el valor mínimo que separa al 10% de mayores ingresos.
valor_min <- qnorm(0.90, mean = 1, sd = 0.3)
valor_min
## [1] 1.384465
El valor mínimo para pertenecer al 10% que más gana es 1.3845 millones de $.
Se calcula P(X > 0,9) bajo la misma distribución Normal(1 ; 0,3).
prob <- 1 - pnorm(0.9, mean = 1, sd = 0.3)
prob
## [1] 0.6305587
La probabilidad de que un trabajador cobre más de $900.000 es 63.06%.
Se calcula P(-2 < T < 2) bajo una distribución t de Student con 4 grados de libertad.
prob_t <- pt(2, df = 4) - pt(-2, df = 4)
prob_t
## [1] 0.8838835
La probabilidad del intervalo (-2 ; 2) es 88.39%.
datos <- read.csv("obesidad_tp1.csv", sep = ";", dec = ",")
str(datos)
## 'data.frame': 249 obs. of 2 variables:
## $ grc : num 10.4 6.3 20.9 18.8 27 4.1 11.7 7.1 7.8 25.4 ...
## $ peso: num 185 155 210 171 168 ...
summary(datos)
## grc peso
## Min. : 0.00 Min. :118.5
## 1st Qu.:12.50 1st Qu.:159.2
## Median :19.20 Median :176.8
## Mean :19.21 Mean :179.1
## 3rd Qu.:25.30 3rd Qu.:197.0
## Max. :47.50 Max. :363.1
Dado que n = 249, se utilizan los tests de Lilliefors y Anderson-Darling, apropiados para muestras grandes (Diapositiva 18, Clase 3). Shapiro-Wilk no corresponde ya que está indicado para n < 50.
lt_grc <- lillie.test(datos$grc)
lt_peso <- lillie.test(datos$peso)
ad_grc <- ad.test(datos$grc)
ad_peso <- ad.test(datos$peso)
lt_grc; lt_peso
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: datos$grc
## D = 0.041844, p-value = 0.3583
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: datos$peso
## D = 0.058731, p-value = 0.03699
ad_grc; ad_peso
##
## Anderson-Darling normality test
##
## data: datos$grc
## A = 0.41153, p-value = 0.3383
##
## Anderson-Darling normality test
##
## data: datos$peso
## A = 1.2248, p-value = 0.003373
resultados_norm <- data.frame(
Variable = c("grc", "grc", "peso", "peso"),
Test = c("Lilliefors", "Anderson-Darling",
"Lilliefors", "Anderson-Darling"),
p_valor = c(round(lt_grc$p.value, 4),
round(ad_grc$p.value, 4),
round(lt_peso$p.value, 4),
round(ad_peso$p.value, 4)),
Decisión = c(
ifelse(lt_grc$p.value > 0.05, "No se rechaza H₀ → Normal", "Se rechaza H₀ → No normal"),
ifelse(ad_grc$p.value > 0.05, "No se rechaza H₀ → Normal", "Se rechaza H₀ → No normal"),
ifelse(lt_peso$p.value > 0.05, "No se rechaza H₀ → Normal", "Se rechaza H₀ → No normal"),
ifelse(ad_peso$p.value > 0.05, "No se rechaza H₀ → Normal", "Se rechaza H₀ → No normal")
)
)
kable(resultados_norm,
col.names = c("Variable", "Test", "p-valor", "Decisión (α = 0.05)"),
align = c("l", "l", "c", "l"))
| Variable | Test | p-valor | Decisión (α = 0.05) |
|---|---|---|---|
| grc | Lilliefors | 0.3583 | No se rechaza H₀ → Normal |
| grc | Anderson-Darling | 0.3383 | No se rechaza H₀ → Normal |
| peso | Lilliefors | 0.0370 | Se rechaza H₀ → No normal |
| peso | Anderson-Darling | 0.0034 | Se rechaza H₀ → No normal |
p1 <- ggplot(datos, aes(sample = grc)) +
stat_qq(color = "steelblue") +
stat_qq_line(color = "red") +
labs(title = "QQ-Plot — GRC",
x = "Cuantiles teóricos", y = "Cuantiles observados") +
theme_minimal()
p2 <- ggplot(datos, aes(sample = peso)) +
stat_qq(color = "darkorange") +
stat_qq_line(color = "red") +
labs(title = "QQ-Plot — PESO",
x = "Cuantiles teóricos", y = "Cuantiles observados") +
theme_minimal()
gridExtra::grid.arrange(p1, p2, ncol = 2)
Nota: para los QQ-plots con
ggplot2necesitás instalargridExtrasi no lo tenés:install.packages("gridExtra")
Conclusión: La variable grc presenta
p-valores mayores a 0,05 en ambos tests por lo que puede considerarse
normal. La variable peso presenta p-valores menores a 0,05
por lo que no puede considerarse normal.
Dado que grc es normal y la varianza poblacional es
desconocida, se utiliza la distribución t-Student con n-1 grados de
libertad (Diapositiva 14-15, Clase 2).
ic_grc <- t.test(datos$grc, conf.level = 0.95)
ic_grc
##
## One Sample t-test
##
## data: datos$grc
## t = 36.262, df = 248, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 18.16284 20.24921
## sample estimates:
## mean of x
## 19.20602
tabla_ic <- data.frame(
Media = round(ic_grc$estimate, 4),
LI = round(ic_grc$conf.int[1], 4),
LS = round(ic_grc$conf.int[2], 4),
Confianza = "95%",
gl = ic_grc$parameter
)
kable(tabla_ic,
col.names = c("Media muestral", "Límite inferior",
"Límite superior", "Confianza", "gl"),
align = c("c", "c", "c", "c", "c"))
| Media muestral | Límite inferior | Límite superior | Confianza | gl | |
|---|---|---|---|---|---|
| mean of x | 19.206 | 18.1628 | 20.2492 | 95% | 248 |
Conclusión: Se tiene una confianza del 95% de que el intervalo [18.16 ; 20.25] contiene a la verdadera media poblacional de grasa corporal, utilizando el estadístico t con 248 grados de libertad.
Pérez, S. N. (2026). Fundamentos de Estadística [Diapositivas de las Clases 2 y 3]. Especialización en Ciencia de Datos, Universidad Nacional del Oeste.
Devore, J. L. (2008). Probabilidad y estadística para ingeniería y ciencias (7ma ed.). Cengage Learning.