📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊

1 MI CURSO DE ESTADÍSTICA Y PROBABILIDAD - 2026

##[POR ROIVER TAPIA GARCIA]

🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯

2 SEMANA 8. Mi página Web en Estadistica

📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊

3 Clase N° 32. LABORATORIO-8 REGRESION LINEAL EN R

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀 ## (i)Datos

library(readxl) X00_DATOS202460ULTIMOS25 <- read_excel(“00. DATOS202460ULTIMOS25.xlsx”) View(X00_DATOS202460ULTIMOS25)

library(readxl)
DATOS2026  <- read_excel("00. DATOS202460ULTIMOS25.xlsx")
DATOS2026 

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

##<-========== PASO 4. =========->

3.1 (2i)Usando la aplicación para hacer la tabla

table_sexo<-table(DATOS2026$SEXO)
table_sexo
## 
##  Femenino Masculino 
##        42        32

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

##<-========== PASO 5.=========->

3.2 (3i)Gráfico de torta para SEXO

pie_1<-pie(table_sexo, col=c("lightblue","pink"),
        main="Estudio de Pastel.\n Distribución por sexos Roiver alejo.", labels = table_sexo)

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

##<-========== PASO 6. =========->

3.3 (4i)Construimos el diagrama de barras y el diagrama de Pastel para esta variable cualitativa

barp<-barplot(table_sexo, col = rainbow(5), border = "darkred",main = "Gráfico de Barras-Roiver alejo",sub = "UTB",xlab = "SEXO", ylab = "Conteo")
text(barp, table_sexo-30, labels = table_sexo)

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

##<-========== PASO 7. =========->

3.3.1 (5i)Usando la aplicación para hacer la tabla porcentual redondeando al entero mas cercano

table_sexo2<-round(table(DATOS2026$SEXO)/74*100)
table_sexo2
## 
##  Femenino Masculino 
##        57        43

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

##<-========== PASO 8. =========->

3.3.2 (6i)Construimos el diagrama de barras % y da pastel para esta variable cualitativa

barp2<-barplot(table_sexo2, col = rainbow(5), border = "darkred",main = "Gráfico de Barras-Roiver alejo",sub = "UTB",xlab = "SEXO", ylab = "Porcentaje")
text(barp2, table_sexo2-30, labels = table_sexo2)

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

##<-========== PASO 9. =========->

3.3.3 (7i)Las tablas de frecuencias y las representaciones gráficas son dos maneras equivalentes de presentar la información. Las dos exponen ordenadamente la información recogida en una muestra

pie_1<-pie(table_sexo2, col=c("lightblue","pink"),
        main="Estudio de Pastel.\n Distribución por sexos.", labels = table_sexo2)

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

##<-========== PASO 10. =========->

3.3.4 (8i)Usando la aplicación para hacer la tabla con dos varibles SEXO y CURSO

table_3<-table(DATOS2026$SEXO, DATOS2026$CURSO)
table_3
##            
##             ESTADISTICAI PROBABILIDAD
##   Femenino            16           26
##   Masculino           10           22

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

##<-========== PASO 11. =========->

3.3.5 (9i)Usando la aplicación para hacer el gráfico con dos varibles SEXO y CURSO

barp3<-barplot(table_3,
        main = "Gráfico de barras CURSO vs SEXO",
        xlab = "CURSO", ylab = "Frecuencia",
        col = c("pink", "blue"),
        legend.text = rownames(table_3),
        beside = TRUE) # Barras agrupadas
text(barp3, table_3-5, labels = table_3)

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

##<-========== PASO 12. =========->

3.3.6 (10i)Usando la aplicación para hacer la tabla con dos varibles SEXO y CURSO pero usando las frecuencias relativas aproximadas

table_4<-round(table(DATOS2026$SEXO, DATOS2026$CURSO)/74*100)
table_4
##            
##             ESTADISTICAI PROBABILIDAD
##   Femenino            22           35
##   Masculino           14           30

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

##<-========== PASO 13. =========->

3.3.7 (11i)Usando la aplicación para hacer el gráfico con dos varibles SEXO y CURSO pero usando las frecuencias relativas aproximadas

barp4<-barplot(table_4,
        main = "Gráfico de barras CURSO vs SEXO en porcentajes",
        xlab = "CURSO", ylab = "Frecuencia",
        col = c("pink", "blue"),
        legend.text = rownames(table_4),
        beside = TRUE) # Barras agrupadas
text(barp4, table_4-5, labels = table_4)

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

##<-========== PASO 14. =========->

3.3.8 (12i)Usando la aplicación para hacer la tabla con dos varibles SEXO y CURSO

table_5<-table(DATOS2026$ESTRATO, DATOS2026$CURSO)
table_5
##      
##       ESTADISTICAI PROBABILIDAD
##   I              5           10
##   II             7           18
##   III            9            9
##   IV             5            5
##   V              0            5

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

##<-========== PASO 15. =========->

3.3.9 (13i)Usando la aplicación para hacer el gráfico con dos varibles SEXO y CURSO

barp3<-barplot(table_5,
        main = "Gráfico de barras CURSO vs ESTRATO",
        xlab = "CURSO", ylab = "Frecuencia",
        col = rainbow(5),
        legend.text = rownames(table_5),
        beside = TRUE) # Barras agrupadas
text(barp3, table_5-1, labels = table_3)

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

##<-========== PASO 16. =========->

3.3.10 (14i)Usando la aplicación para hacer la tabla con dos varibles SEXO y CURSO

table_6<-table(DATOS2026$ESTRATO, DATOS2026$SEXO)
table_6
##      
##       Femenino Masculino
##   I          8         7
##   II        17         8
##   III       10         8
##   IV         4         6
##   V          3         2

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

##<-========== PASO 17. =========->

3.3.11 (15i)Usando la aplicación para hacer el gráfico con dos varibles SEXO y CURSO

barp3<-barplot(table_6,
        main = "Gráfico de barras CURSO vs ESTRATO",
        xlab = "CURSO", ylab = "Frecuencia",
        col = rainbow(5),
        legend.text = rownames(table_6),
        beside = TRUE) # Barras agrupadas
text(barp3, table_6-1, labels = table_6)

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

##<-========== PASO 18. =========->

3.3.12 (16i)Tabla de Frecuencias Usando el paquete summarytools: observamos ya una tabla mas completa

library(readxl)
tabla_8 <- (DATOS2026$EDAD)
tabla_8
##  [1] 20 18 19 18 19 20 18 19 18 22 18 19 17 17 19 20 20 19 19 21 18 19 19 19 18
## [26] 19 20 17 22 18 19 18 18 17 17 18 21 18 18 18 18 19 18 17 18 19 18 21 18 19
## [51] 18 21 18 19 17 18 19 18 19 18 18 20 18 18 18 19 19 18 22 18 18 20 19 18

🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈

##<-========== PASO 19. =========->

3.3.13 (17i)Tabla de Frecuencias Usando el paquete summarytools: observamos ya una tabla mas completa

library(readxl)
summary(DATOS2026$EDAD)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    17.0    18.0    18.0    18.7    19.0    22.0

🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈

##<-========== PASO 20. =========->

3.3.14 (18i)Una primera vista del diagrama de caja para la variable Edad

boxplot(DATOS2026$EDAD, horizontal = TRUE, col = rainbow(3))

🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈

##<-========== PASO 21. =========->

3.3.15 (19i)Identificamos donde queda la mediana

x = DATOS2026$EDAD
boxplot(x, notch = TRUE, horizontal = TRUE, col = rainbow(3))
## Warning in (function (z, notch = FALSE, width = NULL, varwidth = FALSE, : some
## notches went outside hinges ('box'): maybe set notch=FALSE

🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠

##<-========== PASO 22. =========->

3.3.16 (20i)EDAD vs SEXO

x = DATOS2026$EDAD
y = DATOS2026$SEXO
boxplot(x~y, horizontal = TRUE, col = rainbow(3))

🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈

##<-========== PASO 23. =========->

3.3.17 (21i)EDAD vs ESTRATO

library(readxl)
x = DATOS2026$EDAD
z = DATOS2026$ESTRATO
boxplot(x~z, horizontal = TRUE, col = rainbow(3))

🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈

##<-========== PASO 24. =========->

3.3.18 (22i)EDAD vs ESTRATO vs SEXO

library(ggplot2)
ggplot(data= DATOS2026,mapping= aes(y=EDAD,x = ESTRATO, fill=SEXO))+geom_boxplot()+
  scale_y_continuous(name = "EDAD") +
  scale_x_discrete(labels = abbreviate, name = "ESTRATO")

🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈

##<-========== PASO 25. =========->

3.3.19 (23i)Estudiemos la variable ESTATURA y obtengamos sus seis medidas representativas

summary(DATOS2026$ESTATURA)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   153.0   163.0   168.0   168.4   174.0   192.0

🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈

##<-========== PASO 26. =========->

3.3.19.1 (24i)Una primera vista del diagrama de caja para la variable ESTATURA

boxplot(DATOS2026$ESTATURA, horizontal = TRUE, col = rainbow(3))

🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈

##<-========== PASO 27. =========->

3.3.19.2 (25i)Identificamos donde queda la mediana

x = DATOS2026$ESTATURA
boxplot(x, notch = TRUE, horizontal = TRUE, col = rainbow(3))

🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈

##<-========== PASO 28. =========->

3.3.19.3 (26i)EDAD vs SEXO

x = DATOS2026$ESTATURA
y = DATOS2026$SEXO
boxplot(x~y, horizontal = TRUE, col = rainbow(3))

🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈

##<-========== PASO 29. =========->

3.3.19.4 (27)EDAD vs ESTRATO

library(ggplot2)
x = DATOS2026$ESTATURA
z = DATOS2026$ESTRATO
boxplot(x~z, horizontal = TRUE, col = rainbow(3))

🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈

##<-========== PASO 30. =========->

3.3.20 (28i)ESTATURA vs ESTRATO vs SEXO

library(ggplot2)
ggplot(data= DATOS2026,mapping= aes(y=ESTATURA,x = ESTRATO, fill=SEXO))+geom_boxplot()+
  scale_y_continuous(name = "ESTATURA") +
  scale_x_discrete(labels = abbreviate, name = "ESTRATO")

🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈

##<-========== PASO 31. =========->

3.3.21 (29i)Histograma y tabla de frecuencias usando Regla de Sturges

3.3.21.0.1 Usando la libreria “agricolae”
library(agricolae)
h2<-graph.freq(DATOS2026$EDAD, col=colors()[75]) #[86]

🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈

##<-========== PASO 32. =========->

3.3.22 (30i)Tabla de fecuencias agrupadas Regla de Sturges

3.3.22.0.1 Usando la libreria “agricolae”
summary(h2)

🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈

##<-========== PASO 33. =========->

3.3.22.1 (31i)Polígono de frecuencia absolutas

3.3.22.1.0.1 frequency : counts (1) and relative (2)
plot(h2,  col=colors()[70], frequency = 1)
polygon.freq(h2, col = "red", frequency = 1, lwd = 2)

🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈

##<-========== PASO 34. =========->

3.3.23 (32i)Polígono de frecuencia relativas

3.3.23.0.0.1 frequency : counts (1) and relative (2)
plot(h2,  col=colors()[70], frequency = 2)
polygon.freq(h2, col = "red", frequency = 2, lwd = 2)

🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈

##<-========== PASO 35. =========->

3.3.24 (33i)Ojivas - usando R

fr_por_clase2<-h2$counts
fr_por_clase2
## [1]  7 32 21  0  7  4  0  3
total_n2<-sum(h2$counts)
total_n2
## [1] 74
fr_relativos2<-fr_por_clase2/total_n2
fr_porcentuales2<-100*fr_relativos2
fr_porcentuales2
## [1]  9.459459 43.243243 28.378378  0.000000  9.459459  5.405405  0.000000
## [8]  4.054054
cumsum(fr_por_clase2)
## [1]  7 39 60 60 67 71 71 74
cumsum(fr_relativos2)
## [1] 0.09459459 0.52702703 0.81081081 0.81081081 0.90540541 0.95945946 0.95945946
## [8] 1.00000000
cumsum(fr_porcentuales2)
## [1]   9.459459  52.702703  81.081081  81.081081  90.540541  95.945946  95.945946
## [8] 100.000000

🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈

##<-========== PASO 36. =========->

3.4 (34i)Ojivas - frecuencias porcentuales

p4 <- cumsum(fr_porcentuales2)
plot(p4, col = "red", pch = 16)
lines(p4, col = "red")

🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈

####<-========== AQUI FINALIZA EL LABORATORIO 7. =========-> 🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈🌈🧪🌟💻✨🧠📈🔬⚗️📚💻🌈🧪🌟💻✨🧠📈

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

4 Aqui comienza el laboratorio 8

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

5 PASO 37. Tabla bivariada: SEXO vs CURSO (ambas cualitativas)

table_bv1 <- table(DATOS2026$SEXO, DATOS2026$CURSO)
table_bv1
##            
##             ESTADISTICAI PROBABILIDAD
##   Femenino            16           26
##   Masculino           10           22

🌈🧪🌟💻✨🧠📈

5.1 PASO 38. Diagrama de barras: SEXO vs CURSO

barp_bv1 <- barplot(table_bv1,
                    main = "Gráfico de barras CURSO vs SEXO ROIVER GARCIA",
                    xlab = "CURSO", ylab = "Frecuencia",
                    col = c("pink", "blue"),
                    ylim = c(0, max(table_bv1) * 1.15),
                    legend.text = rownames(table_bv1),
                    args.legend = list(x = "topright"),
                    beside = TRUE)  # Barras agrupadas
# Etiquetas encima de cada barra
text(barp_bv1, table_bv1, labels = table_bv1, pos = 3, cex = 0.8)

🌈🧪🌟💻✨🧠📈

5.2 PASO 39. Tabla bivariada: ESTRATO vs CURSO

table_bv2 <- table(DATOS2026$ESTRATO, DATOS2026$CURSO)
table_bv2
##      
##       ESTADISTICAI PROBABILIDAD
##   I              5           10
##   II             7           18
##   III            9            9
##   IV             5            5
##   V              0            5

🌈🧪🌟💻✨🧠📈

5.3 PASO 40. Diagrama de barras: ESTRATO vs CURSO

barp_bv2 <- barplot(table_bv2,
                    main = "Gráfico de barras CURSO vs ESTRATO ROIVER GARCIA",
                    xlab = "CURSO", ylab = "Frecuencia",
                    col = rainbow(nrow(table_bv2)),
                    ylim = c(0, max(table_bv2) * 1.15),
                    legend.text = rownames(table_bv2),
                    args.legend = list(x = "topright"),
                    beside = TRUE)  # Barras agrupadas
text(barp_bv2, table_bv2, labels = table_bv2, pos = 3, cex = 0.8)

🌈🧪🌟💻✨🧠📈

5.4 PASO 41. Cualitativa vs cuantitativa: boxplot de EDAD según SEXO

boxplot(EDAD ~ SEXO, data = DATOS2026, horizontal = TRUE,
        xlab = "EDAD", ylab = "SEXO ROIVER GARCIA",
        col = rainbow(nlevels(factor(DATOS2026$SEXO))))

🌈🧪🌟💻✨🧠📈

5.5 PASO 42. Cualitativa vs cuantitativa: boxplot de EDAD según ESTRATO

boxplot(EDAD ~ factor(ESTRATO), data = DATOS2026, horizontal = TRUE,
        xlab = "EDAD", ylab = "ESTRATO ROIVER TAPIA",
        col = rainbow(nlevels(factor(DATOS2026$ESTRATO))))

🌈🧪🌟💻✨🧠📈

5.6 PASO 43. Cualitativa vs cuantitativa: boxplot de ESTATURA según SEXO

boxplot(ESTATURA ~ SEXO, data = DATOS2026, horizontal = TRUE,
        xlab = "ESTATURA", ylab = "SEXO ROIVER TAPIA",
        col = rainbow(nlevels(factor(DATOS2026$SEXO))))

🌈🧪🌟💻✨🧠📈

5.7 PASO 44. Dos cuantitativas: diagrama de dispersión ESTATURA vs PESO

x <- DATOS2026$ESTATURA
y <- DATOS2026$PESO

plot(x, y, xlab = "ESTATURA", ylab = "PESO", pch = 19, col = "tomato")
# Líneas punteadas en los valores medios
abline(v = mean(x, na.rm = TRUE), lwd = 3, lty = 2)
abline(h = mean(y, na.rm = TRUE), lwd = 3, lty = 2)

Medias:

mean(x, na.rm = TRUE)
## [1] 168.3919
mean(y, na.rm = TRUE)
## [1] 63.32432

🌈🧪🌟💻✨🧠📈

5.8 PASO 45. Recta de regresión lineal simple: PESO en función de ESTATURA

regresion1 <- lm(PESO ~ ESTATURA, data = DATOS2026)
regresion1
## 
## Call:
## lm(formula = PESO ~ ESTATURA, data = DATOS2026)
## 
## Coefficients:
## (Intercept)     ESTATURA  
##    -84.1267       0.8756

🌈🧪🌟💻✨🧠📈

5.9 PASO 46. Recta de regresión lineal simple: ESTATURA en función de PESO

regresion2 <- lm(ESTATURA ~ PESO, data = DATOS2026)
regresion2
## 
## Call:
## lm(formula = ESTATURA ~ PESO, data = DATOS2026)
## 
## Coefficients:
## (Intercept)         PESO  
##    137.0763       0.4945

🌈🧪🌟💻✨🧠📈

5.10 PASO 47. Resumen de la regresión con summary

summary(regresion2)
## 
## Call:
## lm(formula = ESTATURA ~ PESO, data = DATOS2026)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -13.7479  -4.6462  -0.2041   4.1066  16.1973 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 137.07631    4.28941  31.957  < 2e-16 ***
## PESO          0.49453    0.06669   7.416 1.88e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6.47 on 72 degrees of freedom
## Multiple R-squared:  0.433,  Adjusted R-squared:  0.4252 
## F-statistic: 54.99 on 1 and 72 DF,  p-value: 1.881e-10

🌈🧪🌟💻✨🧠📈

5.11 PASO 48. Diagrama de dispersión con la recta de regresión

Los coeficientes y el coeficiente de correlación se calculan automáticamente (no hace falta copiarlos a mano).

r  <- cor(DATOS2026$ESTATURA, DATOS2026$PESO, use = "complete.obs")
a1 <- coef(regresion1)[1]  # Intercepto
b1 <- coef(regresion1)[2]  # Pendiente

plot(DATOS2026$ESTATURA, DATOS2026$PESO,
     xlab = "ESTATURA", ylab = "PESO", pch = 19, col = "tomato",
     main = sprintf("y_ajus = a + bx = %.4f + %.4f x,  r = %.4f", a1, b1, r))
abline(v = mean(DATOS2026$ESTATURA, na.rm = TRUE), lwd = 3, lty = 2)
abline(h = mean(DATOS2026$PESO, na.rm = TRUE), lwd = 3, lty = 2)
abline(regresion1, col = "steelblue", lwd = 2)

🎯🎯🎯🎯🎯🎯🎯🎯🎯🎯

5.12 PASO 49. Problema de aplicación

En la siguiente base de datos se encuentran los pesos y estaturas de 25 estudiantes seleccionados al azar de un grupo de Estadística I de la UTB. Complete el siguiente formulario de preguntas.

5.12.1 (a) Datos

taller_rl <- data.frame(
  peso = c(88, 77, 68, 80, 68, 55, 89, 61, 72, 72, 79, 75, 68,
           65, 70, 52, 78, 55, 96, 75, 44, 57, 60, 50, 93),
  estatura = c(175, 183, 158, 165, 175, 160, 160, 156, 174, 171, 160, 184, 163,
               176, 167, 172, 168, 167, 181, 175, 153, 154, 169, 168, 187)
)
nrow(taller_rl)  # número de estudiantes
## [1] 25

🧪🌟💻✨🧠📈

5.13 PASO 50. (b) Diagrama de dispersión

plot(taller_rl$peso, taller_rl$estatura,
     xlab = "PESO", ylab = "ESTATURA", pch = 19, col = "tomato")
abline(v = mean(taller_rl$peso), lwd = 3, lty = 2)
abline(h = mean(taller_rl$estatura), lwd = 3, lty = 2)

Medias:

mean(taller_rl$peso)
## [1] 69.88
mean(taller_rl$estatura)
## [1] 168.84

🧪🌟💻✨🧠📈

5.14 PASO 51. (c) Coeficiente de correlación de Pearson

r3 <- cor(taller_rl$peso, taller_rl$estatura)
r3
## [1] 0.5133798

Como r = 0.5134, se concluye que existe una relación lineal positiva y moderada entre el peso y la estatura.

🧪🌟💻✨🧠📈

5.15 PASO 52. (d) Recta de regresión lineal simple

regresion3 <- lm(estatura ~ peso, data = taller_rl)
regresion3
## 
## Call:
## lm(formula = estatura ~ peso, data = taller_rl)
## 
## Coefficients:
## (Intercept)         peso  
##    143.9296       0.3565

5.16 PASO 53. (e) Resumen con summary

summary(regresion3)
## 
## Call:
## lm(formula = estatura ~ peso, data = taller_rl)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -15.656  -6.614   1.404   6.247  13.335 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 143.9296     8.8404  16.281 4.06e-14 ***
## peso          0.3565     0.1242   2.869  0.00867 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.315 on 23 degrees of freedom
## Multiple R-squared:  0.2636, Adjusted R-squared:  0.2315 
## F-statistic: 8.231 on 1 and 23 DF,  p-value: 0.008673

Diagrama de dispersión con la recta ajustada:

plot(taller_rl$peso, taller_rl$estatura,
     xlab = "PESO", ylab = "ESTATURA", pch = 19, col = "tomato",
     main = sprintf("estatura = %.4f + %.4f peso",
                    coef(regresion3)[1], coef(regresion3)[2]))
abline(v = mean(taller_rl$peso), lwd = 3, lty = 2)
abline(h = mean(taller_rl$estatura), lwd = 3, lty = 2)
abline(regresion3, col = "steelblue", lwd = 2)

🧪🌟💻✨🧠📈

5.17 PASO 54. Datos EdadPesoGrasas

Los datos del fichero EdadPesoGrasas.txt corresponden a tres variables medidas en 25 individuos: edad, peso y cantidad de grasas en sangre.

grasas <- read.table("http://verso.mat.uam.es/~joser.berrendero/datos/EdadPesoGrasas.txt",
                     header = TRUE)
names(grasas)
## [1] "peso"   "edad"   "grasas"

Si la URL ya no está disponible, descargue el archivo y use read.table("EdadPesoGrasas.txt", header = TRUE).

🧪🌟💻✨🧠📈

5.18 PASO 55. Matriz de diagramas de dispersión

pairs(grasas)

5.19 PASO 56. Matriz de correlación

cor(grasas)
##             peso      edad    grasas
## peso   1.0000000 0.2400133 0.2652935
## edad   0.2400133 1.0000000 0.8373534
## grasas 0.2652935 0.8373534 1.0000000

🧪🌟💻✨🧠📈

5.20 PASO 57. Cálculo de la recta de mínimos cuadrados

regresion <- lm(grasas ~ edad, data = grasas)
summary(regresion)
## 
## Call:
## lm(formula = grasas ~ edad, data = grasas)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -63.478 -26.816  -3.854  28.315  90.881 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 102.5751    29.6376   3.461  0.00212 ** 
## edad          5.3207     0.7243   7.346 1.79e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 43.46 on 23 degrees of freedom
## Multiple R-squared:  0.7012, Adjusted R-squared:  0.6882 
## F-statistic: 53.96 on 1 and 23 DF,  p-value: 1.794e-07

5.21 PASO 58. Representación gráfica de la recta de mínimos cuadrados

plot(grasas$edad, grasas$grasas, xlab = "Edad", ylab = "Grasas", pch = 19)
abline(regresion, col = "steelblue", lwd = 2)

🧪🌟💻✨🧠📈

5.22 PASO 59. Predicción para individuos de 30 a 50 años

nuevas.edades <- data.frame(edad = seq(30, 50))
predicciones  <- predict(regresion, nuevas.edades)
data.frame(edad = nuevas.edades$edad, grasas_predichas = round(predicciones, 2))

Nota: las edades fuera del rango observado en los datos son extrapolaciones y deben interpretarse con cautela.


AQUÍ FINALIZA EL LABORATORIO 8

🧪