📚 Mi curso de Estadística y Probabilidad - 2026

🌸 Semana 7. Mi página web en Estadística

🎓 Clase N° 28. Aquí comienza el Laboratorio 7


📂 Paso 1 · Datos

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

📋 Paso 2 · Usando la aplicación para hacer la tabla

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

🥧 Paso 3 · Gráfico de torta para SEXO

pie_1<-pie(table_sexo, col=c("#E8A0BF","#7FB5D5"),
        main="Estudio de Pastel.\n Distribución por sexos - Carolina Esalas.", labels = table_sexo)


📊 Paso 4 · Diagrama de barras y de pastel para esta variable cualitativa

barp<-barplot(table_sexo, col = paleta, border = borde,main = "Gráfico de Barras - Carolina Esalas",sub = "UTB",xlab = "SEXO", ylab = "Conteo")
text(barp, table_sexo-30, labels = table_sexo)


🔢 Paso 5 · Tabla porcentual redondeando al entero más cercano

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

📈 Paso 6 · Diagrama de barras % y de pastel para esta variable cualitativa

barp2<-barplot(table_sexo2, col = paleta, border = borde,main = "Gráfico de Barras - Carolina Esalas",sub = "UTB",xlab = "SEXO", ylab = "Porcentaje")
text(barp2, table_sexo2-30, labels = table_sexo2)


💡 Paso 7 · Tablas de frecuencias y representaciones gráficas

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("#E8A0BF","#7FB5D5"),
        main="Estudio de Pastel.\n Distribución por sexos - Carolina Esalas.", labels = table_sexo2)


🧮 Paso 8 · Tabla con dos variables: SEXO y CURSO

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

🎀 Paso 9 · Gráfico con dos variables: SEXO y CURSO

barp3<-barplot(table_3,
        main = "Gráfico de barras CURSO vs SEXO - Carolina Esalas",
        xlab = "CURSO", ylab = "Frecuencia",
        col = c("#E8A0BF", "#7FB5D5"),
        border = borde,
        legend.text = rownames(table_3),
        beside = TRUE) # Barras agrupadas
text(barp3, table_3-5, labels = table_3)


🧁 Paso 10 · Tabla SEXO y CURSO con frecuencias relativas aproximadas

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

🍭 Paso 11 · Gráfico SEXO y CURSO con frecuencias relativas aproximadas

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


🗂️ Paso 12 · Tabla con dos variables: ESTRATO 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 13 · Gráfico con dos variables: ESTRATO y CURSO

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


🗃️ Paso 14 · Tabla con dos variables: ESTRATO y SEXO

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 15 · Gráfico con dos variables: ESTRATO y SEXO

barp3<-barplot(table_6,
        main = "Gráfico de barras SEXO vs ESTRATO - Carolina Esalas",
        xlab = "SEXO", ylab = "Frecuencia",
        col = paleta,
        border = borde,
        legend.text = rownames(table_6),
        beside = TRUE) # Barras agrupadas
text(barp3, table_6-1, labels = table_6)


🧪 Paso 16 · Tabla de frecuencias con el paquete summarytools

Observamos ya una tabla más completa.

library(summarytools)
## Warning in fun(libname, pkgname): couldn't connect to display ":0"
## system might not have X11 capabilities; in case of errors when using dfSummary(), set st_options(use.x11 = FALSE)
tabla_8 <- freq(DATOS2026$EDAD)
tabla_8
## Frequencies  
## DATOS2026$EDAD  
## Type: Numeric  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##          17      7      9.46           9.46      9.46           9.46
##          18     32     43.24          52.70     43.24          52.70
##          19     21     28.38          81.08     28.38          81.08
##          20      7      9.46          90.54      9.46          90.54
##          21      4      5.41          95.95      5.41          95.95
##          22      3      4.05         100.00      4.05         100.00
##        <NA>      0                               0.00         100.00
##       Total     74    100.00         100.00    100.00         100.00

📝 Paso 17 · Medidas resumen de la variable EDAD

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

📦 Paso 18 · Primera vista del diagrama de caja para la variable EDAD

boxplot(DATOS2026$EDAD, horizontal = TRUE, col = paleta[1:3], border = borde,
        main = "Diagrama de caja de EDAD - Carolina Esalas", xlab = "EDAD")


🔍 Paso 19 · Identificamos dónde queda la mediana

x = DATOS2026$EDAD
boxplot(x, notch = TRUE, horizontal = TRUE, col = paleta[1:3], border = borde,
        main = "Diagrama de caja de EDAD con mediana - Carolina Esalas", xlab = "EDAD")
## Warning in (function (z, notch = FALSE, width = NULL, varwidth = FALSE, : some
## notches went outside hinges ('box'): maybe set notch=FALSE


👫 Paso 20 · EDAD vs SEXO

x = DATOS2026$EDAD
y = DATOS2026$SEXO
boxplot(x~y, horizontal = TRUE, col = paleta[1:3], border = borde,
        main = "EDAD vs SEXO - Carolina Esalas")


🏠 Paso 21 · EDAD vs ESTRATO

library(ggplot2)
x = DATOS2026$EDAD
z = DATOS2026$ESTRATO
boxplot(x~z, horizontal = TRUE, col = paleta[1:3], border = borde,
        main = "EDAD vs ESTRATO - Carolina Esalas")


🎯 Paso 22 · 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") +
  scale_fill_manual(values = c("#E8A0BF", "#7FB5D5")) +
  labs(title = "EDAD vs ESTRATO vs SEXO - Carolina Esalas") +
  theme_minimal(base_size = 13) +
  theme(plot.title = element_text(face = "bold", color = "#5b3f8c"),
        plot.caption = element_text(face = "italic", color = "#D6739F"),
        panel.background = element_rect(fill = "#fff6fa", color = NA))


📏 Paso 23 · Variable ESTATURA y 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 24 · Primera vista del diagrama de caja para ESTATURA

boxplot(DATOS2026$ESTATURA, horizontal = TRUE, col = paleta[1:3], border = borde,
        main = "Diagrama de caja de ESTATURA - Carolina Esalas", xlab = "ESTATURA")


🔍 Paso 25 · Identificamos dónde queda la mediana

x = DATOS2026$ESTATURA
boxplot(x, notch = TRUE, horizontal = TRUE, col = paleta[1:3], border = borde,
        main = "Diagrama de caja de ESTATURA con mediana - Carolina Esalas", xlab = "ESTATURA")


👫 Paso 26 · ESTATURA vs SEXO

x = DATOS2026$ESTATURA
y = DATOS2026$SEXO
boxplot(x~y, horizontal = TRUE, col = paleta[1:3], border = borde,
        main = "ESTATURA vs SEXO - Carolina Esalas")


🏠 Paso 27 · ESTATURA vs ESTRATO

library(ggplot2)
x = DATOS2026$ESTATURA
z = DATOS2026$ESTRATO
boxplot(x~z, horizontal = TRUE, col = paleta[1:3], border = borde,
        main = "ESTATURA vs ESTRATO - Carolina Esalas")


🎯 Paso 28 · 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") +
  scale_fill_manual(values = c("#E8A0BF", "#7FB5D5")) +
  labs(title = "ESTATURA vs ESTRATO vs SEXO - Carolina Esalas") +
  theme_minimal(base_size = 13) +
  theme(plot.title = element_text(face = "bold", color = "#5b3f8c"),
        plot.caption = element_text(face = "italic", color = "#D6739F"),
        panel.background = element_rect(fill = "#fff6fa", color = NA))


📊 Paso 29 · Histograma y tabla de frecuencias usando la Regla de Sturges

Usando la librería “agricolae”

library(agricolae)
h2<-graph.freq(DATOS2026$EDAD, col="#B39DDB",
               main = "Histograma de EDAD - Carolina Esalas") #[86]


🗒️ Paso 30 · Tabla de frecuencias agrupadas Regla de Sturges

Usando la librería “agricolae”

summary(h2)

📐 Paso 31 · Polígono de frecuencias absolutas

frequency : counts (1) and relative (2)

plot(h2,  col="#7FB5D5", frequency = 1,
     main = "Polígono de frecuencias absolutas - Carolina Esalas")
polygon.freq(h2, col = "#D6739F", frequency = 1, lwd = 2)


📉 Paso 32 · Polígono de frecuencias relativas

frequency : counts (1) and relative (2)

plot(h2,  col="#8FD1B5", frequency = 2,
     main = "Polígono de frecuencias relativas - Carolina Esalas")
polygon.freq(h2, col = "#D6739F", frequency = 2, lwd = 2)


🧠 Paso 33 · 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 34 · Ojivas - frecuencias porcentuales

p4<-cumsum(fr_porcentuales2)
plot(p4, col = "#D6739F", main = "Ojiva de frecuencias porcentuales - Carolina Esalas",
     xlab = "Clase", ylab = "Frecuencia porcentual acumulada", pch = 19)
lines(p4, col = "#8E72C7", lwd = 2)


✅ Aquí finaliza el Laboratorio 7


🔬 Aquí inicia el Laboratorio 8. Variables relacionadas


🧮 Paso 35 · Tablas bivariadas - Contamos SEXO vs CURSO (ambas cualitativas)

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

🎀 Paso 36 · Diagrama de barras - Contamos SEXO vs CURSO

barp_bv1<-barplot(table_bv1,
        main = "Gráfico de barras CURSO vs SEXO - Carolina Esalas",
        xlab = "CURSO", ylab = "Frecuencia",
        col = c("#E8A0BF", "#7FB5D5"),
        border = borde,
        legend.text = rownames(table_bv1),
        beside = TRUE) # Barras agrupadas
text(barp_bv1, table_bv1-5, labels = table_bv1)


🗂️ Paso 37 · Tabla bivariada - Contamos 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

🌈 Paso 38 · Diagrama de barras ESTRATO vs CURSO

barp_bv2<-barplot(table_bv2,
        main = "Gráfico de barras CURSO vs ESTRATO - Carolina Esalas",
        xlab = "CURSO", ylab = "Frecuencia",
        col = paleta,
        border = borde,
        legend.text = rownames(table_bv2),
        beside = TRUE) # Barras agrupadas
text(barp_bv2, table_bv2-1, labels = table_bv2)


📦 Paso 39 · Una variable cualitativa y la otra cuantitativa: boxplot

x = DATOS2026$EDAD
y = DATOS2026$SEXO
boxplot(x~y, horizontal = TRUE, col = paleta[1:3], border = borde,
        main = "EDAD vs SEXO - Carolina Esalas")


📦 Paso 40 · Una variable cualitativa y la otra cuantitativa: boxplot

library(ggplot2)
x = DATOS2026$EDAD
z = DATOS2026$ESTRATO
boxplot(x~z, horizontal = TRUE, xlab = "EDAD", ylab = "ESTRATOS", col = paleta[1:3], border = borde,
        main = "EDAD vs ESTRATOS - Carolina Esalas")


📦 Paso 41 · Una variable cualitativa y la otra cuantitativa: boxplot

library(ggplot2)
x = DATOS2026$ESTATURA
z = DATOS2026$SEXO
boxplot(x~z, horizontal = TRUE, xlab = "ESTATURA", ylab = "SEXO", col = paleta[1:3], border = borde,
        main = "ESTATURA vs SEXO - Carolina Esalas")


🔵 Paso 42 · Dos variables cuantitativas: diagrama de dispersión

library(ggplot2)
x = DATOS2026$ESTATURA
y = DATOS2026$PESO
plot(x,y,  xlab = "ESTATURA", ylab = "PESO", col = acento, pch = 19,
     main = "Diagrama de dispersión ESTATURA vs PESO - Carolina Esalas")
#dibujar una línea punteada vertical en el valor medio
mean(x)
## [1] 168.3919
mean(y)
## [1] 63.32432
abline (v = mean (x), lwd = 3, lty = 2, col = "#8E72C7")
 #dibujar una línea punteada horizontal en el valor medio
abline (h = mean (y), lwd = 3, lty = 2, col = "#8E72C7")


⚖️ Paso 43 · Medias de las variables

mean(x)
## [1] 168.3919
mean(y)
## [1] 63.32432

📈 Paso 44 · Recta de regresión lineal simple

regresion1 = lm(y~x, data=DATOS2026)
regresion1
## 
## Call:
## lm(formula = y ~ x, data = DATOS2026)
## 
## Coefficients:
## (Intercept)            x  
##    -84.1267       0.8756

📉 Paso 45 · Recta de regresión lineal simple 2

regresion2 = lm(x~y, data=DATOS2026)
regresion2
## 
## Call:
## lm(formula = x ~ y, data = DATOS2026)
## 
## Coefficients:
## (Intercept)            y  
##    137.0763       0.4945

💻 Paso 46 · Recta de regresión lineal simple

Haciendo uso de RStudio con la función summary.

summary(regresion2)
## 
## Call:
## lm(formula = x ~ y, 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 ***
## y             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

✨ Paso 47 · Diagrama de dispersión y recta de regresión

library(ggplot2)
x = DATOS2026$ESTATURA
y = DATOS2026$PESO
plot(x,y,  xlab = "ESTATURA", ylab = "PESO", col = acento, pch = 19,
     main = "Regresión lineal de ESTATURA vs PESO - Carolina Esalas",
     sub = "y_ajus= a + bx = -13.2018+0.4552x, r= 0.4352732")
#dibujar una línea punteada vertical en el valor medio
abline (v = mean (x), lwd = 3, lty = 2, col = "#8E72C7")
 #dibujar una línea punteada horizontal en el valor medio
abline (h = mean (y), lwd = 3, lty = 2, col = "#8E72C7")

#ajustar un modelo de regresión lineal a los datos
 regresion1 <- lm (y ~ x, data = DATOS2026)

#definir los valores de intersección y pendiente
 a <- -13.20178 #Intercepto 
b <- 0.4552 # pendiente

#agregue la línea de regresión ajustada al diagrama de dispersión
 abline (a = a, b = b, col = "#5B9BBF", lwd = 2)


🧩 Paso 48 · Problema de aplicación

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

📁 (a) Datos

taller_rl <- data.frame (x = 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), y = 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))

🔵 Paso 49 · (b) Diagrama de dispersión

plot(taller_rl$x,taller_rl$y,  xlab = "PESO", ylab = "ESTATURA", col = acento, pch = 19,
     main = "Diagrama de dispersión PESO vs ESTATURA - Carolina Esalas")
#dibujar una línea punteada vertical en el valor medio
mean(taller_rl$x)
## [1] 69.88
mean(taller_rl$y)
## [1] 168.84
abline (v = mean (taller_rl$x), lwd = 3, lty = 2, col = "#8E72C7")
 #dibujar una línea punteada horizontal en el valor medio
abline (h = mean (taller_rl$y), lwd = 3, lty = 2, col = "#8E72C7")


🤝 Paso 50 · Coeficiente de correlación de Pearson

cor(taller_rl$x,taller_rl$y)
## [1] 0.5133798

Se concluye que existe una cierta relación lineal entre la estatura y el peso.


📐 Paso 51 · (d) Recta de regresión lineal simple

regresion3 = lm(taller_rl$y~taller_rl$x, data=taller_rl)
regresion3
## 
## Call:
## lm(formula = taller_rl$y ~ taller_rl$x, data = taller_rl)
## 
## Coefficients:
## (Intercept)  taller_rl$x  
##    143.9296       0.3565

💡 (e) Recta de regresión lineal simple

Haciendo uso de RStudio con la función summary.

summary(regresion3)
## 
## Call:
## lm(formula = taller_rl$y ~ taller_rl$x, 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 ***
## taller_rl$x   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
plot(taller_rl$x,taller_rl$y,  xlab = "PESO", ylab = "ESTATURA", col = acento, pch = 19,
     main = "Recta de regresión PESO vs ESTATURA - Carolina Esalas")
#dibujar una línea punteada vertical en el valor medio
mean(taller_rl$x)
## [1] 69.88
mean(taller_rl$y)
## [1] 168.84
abline (v = mean (taller_rl$x), lwd = 3, lty = 2, col = "#8E72C7")
 #dibujar una línea punteada horizontal en el valor medio

abline (h = mean (taller_rl$y), lwd = 3, lty = 2, col = "#8E72C7")

#ajustar un modelo de regresión lineal a los datos
 regresion3 = lm(taller_rl$y~taller_rl$x, data=taller_rl)

#definir los valores de intersección y pendiente
 a <- 143.9296 #Intercepto 
b <- 0.3565 # pendiente

#agregue la línea de regresión ajustada al diagrama de dispersión
 abline (a = a, b = b, col = "#5B9BBF", lwd = 2)


🩸 Paso 52 · Fichero EdadPesoGrasas.txt

Los datos del fichero EdadPesoGrasas.txt corresponden a tres variables medidas en 25 individuos: edad, peso y cantidad de grasas en sangre. Para leer el fichero de datos y saber los nombres de las variables:

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

🔗 Paso 53 · Matriz de diagramas de dispersión

pairs(grasas, col = acento, pch = 19,
      main = "Matriz de dispersión - Carolina Esalas")


🧮 Paso 54 · 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

📏 Paso 55 · 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

🌷 Paso 56 · Representación gráfica de la recta de mínimos cuadrados

plot(grasas$edad, grasas$grasas, xlab='Edad', ylab='Grasas', col = acento, pch = 19,
     main = "Recta de mínimos cuadrados: Grasas vs Edad - Carolina Esalas")
abline(regresion, col = "#5B9BBF", lwd = 2)


🔮 Paso 57 · Predicción con la recta de mínimos cuadrados

Supongamos que queremos utilizar la recta de mínimos cuadrados para predecir la cantidad de grasas para individuos de edades 30, 31, 32, …, 50.

nuevas.edades <- data.frame(edad = seq(30, 50))
predict(regresion, nuevas.edades)
##        1        2        3        4        5        6        7        8 
## 262.1954 267.5161 272.8368 278.1575 283.4781 288.7988 294.1195 299.4402 
##        9       10       11       12       13       14       15       16 
## 304.7608 310.0815 315.4022 320.7229 326.0435 331.3642 336.6849 342.0056 
##       17       18       19       20       21 
## 347.3263 352.6469 357.9676 363.2883 368.6090

🎉 Aquí finaliza el Laboratorio 8