1. CARGA DE DATOS Y LIBRERÍAS

#===============================================================================
# 1. CARGA DE DATOS Y LIBRERÍAS
# Proyecto: Análisis de Regresión Lineal Simple aplicado a Sedimentos Marinos
#===============================================================================

#------------------------------------------------------------------------------
# Cargar las librerías necesarias
#------------------------------------------------------------------------------

library(dplyr)      # Manipulación de datos
library(gt)         # Creación de tablas profesionales
library(knitr)      # Integración de tablas en RMarkdown

#------------------------------------------------------------------------------
# Importar el conjunto de datos
#------------------------------------------------------------------------------

datos <- read.csv(
  "C:/Users/Grace/Downloads/dataset_geologico_limpio_80.4.csv",
  header = TRUE,
  sep = ",",
  dec = ".",
  stringsAsFactors = FALSE
)

#------------------------------------------------------------------------------
# Resumen general del conjunto de datos
#------------------------------------------------------------------------------

resumen_bd <- data.frame(
  Descripción = c(
    "Número de observaciones",
    "Número de variables"
  ),
  Valor = c(
    nrow(datos),
    ncol(datos)
  )
)

#------------------------------------------------------------------------------
# Mostrar el resumen del conjunto de datos
#------------------------------------------------------------------------------

resumen_bd %>%
  gt() %>%
  tab_header(
    title = md("**Tabla N.°1. Resumen del Conjunto de Datos**")
  ) %>%
  cols_align(
    align = "center"
  ) %>%
  tab_options(
    table.width = pct(60),
    column_labels.font.weight = "bold"
  )
Tabla N.°1. Resumen del Conjunto de Datos
Descripción Valor
Número de observaciones 27784
Número de variables 58

2. SELECCIÓN DE VARIABLES

Para el desarrollo del modelo de regresión lineal se seleccionaron dos variables cuantitativas pertenecientes al conjunto de datos de sedimentos marinos. La variable independiente corresponde al porcentaje de grava presente en cada muestra (GRAVEL_PCT), mientras que la variable dependiente corresponde al tamaño medio del grano (MEAN). Esta selección se fundamenta en que la presencia de partículas de grava influye directamente en la granulometría del sedimento, ya que un mayor contenido de grava suele estar asociado con partículas de mayor tamaño. Por esta razón, existe una relación de causa y efecto adecuada para el ajuste de un modelo de regresión lineal simple.

#==============================================================================
# 2. SELECCIÓN DE VARIABLES
#==============================================================================

#------------------------------------------------------------------------------
# Seleccionar las variables que participarán en el modelo de regresión lineal.
#------------------------------------------------------------------------------

# Variable Independiente (X)
#
# GRAVEL_PCT representa el porcentaje de grava presente en cada muestra
# de sedimento marino.

x <- as.numeric(datos$GRAVEL_PCT)      # X (Porcentaje de grava)

# Variable Dependiente (Y)
#
# MEAN representa el tamaño medio del grano del sedimento.

y <- as.numeric(datos$MEAN)            # Y (Tamaño medio del grano)

#------------------------------------------------------------------------------
# Construir una tabla resumen de las variables seleccionadas.
#------------------------------------------------------------------------------

tabla_variables <- data.frame(

  Rol = c(

    "Variable Independiente (X)",

    "Variable Dependiente (Y)"

  ),

  Variable = c(

    "GRAVEL_PCT",

    "MEAN"

  ),

  Descripción = c(

    "Porcentaje de grava (%)",

    "Tamaño medio del grano (Φ)"

  )

)

#------------------------------------------------------------------------------
# Mostrar la tabla de variables seleccionadas.
#------------------------------------------------------------------------------

tabla_variables %>%

  gt() %>%

  tab_header(

    title = md("**Tabla N.°2. Variables seleccionadas para el modelo de regresión lineal aplicado al análisis de sedimentos marinos recolectados en Estados Unidos.**")

  ) %>%

  cols_align(

    align = "center"

  ) %>%

  tab_options(

    table.width = pct(80),

    column_labels.font.weight = "bold"

  )
Tabla N.°2. Variables seleccionadas para el modelo de regresión lineal aplicado al análisis de sedimentos marinos recolectados en Estados Unidos.
Rol Variable Descripción
Variable Independiente (X) GRAVEL_PCT Porcentaje de grava (%)
Variable Dependiente (Y) MEAN Tamaño medio del grano (Φ)

3. TABLA DE PARES DE VALORES

Antes de ajustar el modelo de regresión lineal, es necesario verificar que el conjunto de datos contenga información válida, consistente y representativa del fenómeno estudiado. Para ello, se realizó un tratamiento de los datos que consistió en verificar la calidad de las observaciones, excluir registros con información inválida y agrupar observaciones repetidas. Este procedimiento permite ajustar el modelo de regresión utilizando únicamente pares de valores confiables, reduciendo la influencia de errores de registro y mejorando la representatividad del modelo respecto al comportamiento general de los sedimentos marinos.

3.1 Construcción de la tabla de pares de valores

El conjunto de datos contiene numerosas variables relacionadas con las características granulométricas de los sedimentos marinos. Sin embargo, para el ajuste del modelo de regresión únicamente se requieren la variable independiente y la variable dependiente. Por esta razón, se construye una tabla de pares de valores que contiene exclusivamente las variables seleccionadas para el análisis.

#==============================================================================
# 3.1 CONSTRUCCIÓN DE LA TABLA DE PARES DE VALORES
#==============================================================================

#------------------------------------------------------------------------------
# Construir una tabla que contiene únicamente las variables que participarán
# en el modelo de regresión lineal.
#
# X = GRAVEL_PCT -> Porcentaje de grava presente en cada muestra.
# Y = MEAN       -> Tamaño medio del grano del sedimento.
#------------------------------------------------------------------------------

TPV <- data.frame(

  x = as.numeric(datos$GRAVEL_PCT),

  y = as.numeric(datos$MEAN)

)

#------------------------------------------------------------------------------
# Registrar el número inicial de observaciones del conjunto de datos.
#
# Este valor servirá como referencia para conocer cuántos registros se
# conservan después del tratamiento de los datos.
#------------------------------------------------------------------------------

n_original <- nrow(TPV)

cat("Número inicial de observaciones:", n_original)
## Número inicial de observaciones: 27784

3.2 Verificación y exclusión de datos inválidos

Una vez construida la tabla de pares de valores, se verificó la calidad de la información contenida en el conjunto de datos. Para ello, se identificaron y excluyeron los registros con valores faltantes, infinitos o inconsistentes, ya que este tipo de observaciones no representa información válida para el ajuste del modelo de regresión y puede afectar la estimación de sus parámetros. En el caso de la variable independiente (GRAVEL_PCT), además se verificó que los valores correspondieran a porcentajes físicamente posibles dentro del intervalo comprendido entre 0 % y 100 %.

#------------------------------------------------------------------------------
# Identificar registros con valores faltantes (NA).
#------------------------------------------------------------------------------

n_na <- sum(!complete.cases(TPV))

# Conservar únicamente las observaciones que contienen información válida.
#
# Se excluyen:
# • Valores faltantes (NA).
# • Valores infinitos o no finitos.
# • Valores inconsistentes.

TPV_valida <- TPV %>%

  filter(

    !is.na(x),

    !is.na(y),

    is.finite(x),

    is.finite(y),

    x >= 0,

    x <= 100

  )

#------------------------------------------------------------------------------
# Registrar el número de observaciones válidas.
#------------------------------------------------------------------------------

n_validos <- nrow(TPV_valida)

#------------------------------------------------------------------------------
# # Calcular el número de observaciones excluidas durante esta etapa.
#------------------------------------------------------------------------------

n_invalidos <- n_original - n_validos

cat("Observaciones válidas:", n_validos, "\n")
## Observaciones válidas: 27286
cat("Observaciones excluidas:", n_invalidos)
## Observaciones excluidas: 498

3.3 Agrupación de observaciones repetidas

Durante la revisión del conjunto de datos se observó que algunos valores de la variable independiente se encontraban asociados a múltiples observaciones de la variable dependiente. En estos casos, se agruparon los registros repetidos y se calculó el promedio de la variable dependiente para obtener un único valor representativo por cada valor de la variable independiente. Este procedimiento permite construir un conjunto de pares de valores consistente, evita la repetición de una misma condición granulométrica y facilita el ajuste e interpretación del modelo de regresión lineal.

#==============================================================================
# 3.3 AGRUPACIÓN DE OBSERVACIONES REPETIDAS
#==============================================================================

#------------------------------------------------------------------------------
# Agrupar las observaciones que presentan el mismo valor de la variable
# independiente.
#
# Cuando un mismo valor de X aparece asociado a varias observaciones de Y,
# se calcula el promedio de la variable dependiente para obtener un único
# valor representativo de cada porcentaje de grava.
#------------------------------------------------------------------------------

TPV_agrupada <- TPV_valida %>%

  group_by(x) %>%

  summarise(

    y = mean(y, na.rm = TRUE),

    .groups = "drop"

  )

#------------------------------------------------------------------------------
# Registrar el número de observaciones después de la agrupación.
#------------------------------------------------------------------------------

n_agrupados <- nrow(TPV_agrupada)

#------------------------------------------------------------------------------
# Calcular cuántas observaciones fueron consolidadas durante la agrupación.
#------------------------------------------------------------------------------

n_reducidos <- n_validos - n_agrupados

cat("Observaciones después de la agrupación:", n_agrupados, "\n")
## Observaciones después de la agrupación: 4501
cat("Observaciones consolidadas:", n_reducidos)
## Observaciones consolidadas: 22785

3.4 Identificación y exclusión de valores atípicos mediante el método IQR

Una vez obtenido un único valor representativo de la variable dependiente para cada valor de la variable independiente, se evaluó la presencia de valores atípicos mediante el método del rango intercuartílico (IQR). A diferencia del modelo logarítmico, en este modelo lineal el procedimiento se aplicó tanto a la variable independiente (GRAVEL_PCT) como a la variable dependiente (MEAN), debido a que los valores extremos en cualquiera de las dos variables pueden influir significativamente en la estimación de la pendiente y del intercepto de la recta de regresión. Por esta razón, se excluyeron únicamente las observaciones identificadas como atípicas, conservando los pares de valores que representan el comportamiento predominante del conjunto de datos y permitiendo obtener un modelo más representativo y estable.

#==============================================================================
# 3.4 IDENTIFICACIÓN Y EXCLUSIÓN DE VALORES ATÍPICOS
#     MEDIANTE EL MÉTODO IQR
#==============================================================================
#------------------------------------------------------------------------------
# Calcular el primer cuartil (Q1), tercer cuartil (Q3) y el rango
# intercuartílico (IQR) de la variable independiente.
#
# El método IQR permite identificar observaciones alejadas del comportamiento
# general de los datos sin asumir una distribución específica.
#------------------------------------------------------------------------------

Q1_x <- quantile(TPV_agrupada$x, 0.25, na.rm = TRUE)

Q3_x <- quantile(TPV_agrupada$x, 0.75, na.rm = TRUE)

IQR_x <- IQR(TPV_agrupada$x, na.rm = TRUE)

#------------------------------------------------------------------------------
# Calcular los límites de aceptación para la variable independiente.
#------------------------------------------------------------------------------

LI_x <- Q1_x - 1.5 * IQR_x

LS_x <- Q3_x + 1.5 * IQR_x

#------------------------------------------------------------------------------
# Calcular el primer cuartil (Q1), tercer cuartil (Q3) y el rango
# intercuartílico (IQR) de la variable dependiente.
#------------------------------------------------------------------------------

Q1_y <- quantile(TPV_agrupada$y, 0.25, na.rm = TRUE)

Q3_y <- quantile(TPV_agrupada$y, 0.75, na.rm = TRUE)

IQR_y <- IQR(TPV_agrupada$y, na.rm = TRUE)

#------------------------------------------------------------------------------
# Calcular los límites de aceptación para la variable dependiente.
#------------------------------------------------------------------------------

LI_y <- Q1_y - 1.5 * IQR_y

LS_y <- Q3_y + 1.5 * IQR_y

# Conservar únicamente las observaciones comprendidas dentro de los límites
# establecidos por el método IQR para ambas variables.
#
# Las observaciones identificadas como atípicas se excluyen del ajuste
# del modelo debido a que pueden influir de manera desproporcionada
# sobre la estimación de la pendiente y del intercepto.

TPV_final <- TPV_agrupada %>%

  filter(

    x >= LI_x,

    x <= LS_x,

    y >= LI_y,

    y <= LS_y

  )

#------------------------------------------------------------------------------
# Registrar el número final de observaciones utilizadas en el modelo.
#------------------------------------------------------------------------------

n_final <- nrow(TPV_final)

#------------------------------------------------------------------------------
# Calcular el número de observaciones identificadas como atípicas.
#------------------------------------------------------------------------------

n_outliers <- n_agrupados - n_final

cat("Observaciones utilizadas en el modelo:", n_final, "\n")
## Observaciones utilizadas en el modelo: 4236
cat("Observaciones atípicas excluidas:", n_outliers)
## Observaciones atípicas excluidas: 265

3.5 Conjunto final de pares de valores

Después del tratamiento y depuración del conjunto de datos se obtuvo el conjunto final de pares de valores que será utilizado para construir el diagrama de dispersión y ajustar el modelo de regresión lineal. Este conjunto representa las observaciones válidas, consistentes y representativas sobre las cuales se estimarán los parámetros del modelo y se realizarán las interpretaciones correspondientes.

#==============================================================================
# 3.5 CONJUNTO FINAL DE PARES DE VALORES
#==============================================================================

#------------------------------------------------------------------------------
# Numerar las observaciones del conjunto final.
#------------------------------------------------------------------------------

TPV_tabla <- TPV_final

TPV_tabla$Nro <- 1:nrow(TPV_tabla)

#------------------------------------------------------------------------------
# Reordenar las columnas para facilitar la lectura.
#------------------------------------------------------------------------------

TPV_tabla <- TPV_tabla %>%

  select(

    Nro,

    everything()

  )

#------------------------------------------------------------------------------
# Mostrar únicamente las primeras observaciones del conjunto final.
#
# Por motivos de presentación únicamente se muestran los primeros registros,
# aunque el modelo utiliza la totalidad de las observaciones disponibles.
#------------------------------------------------------------------------------

head(TPV_tabla,20) %>%

  gt() %>%

  cols_label(

    Nro = "N°",

    x = "GRAVEL_PCT (%)",

    y = "MEAN (Φ)"

  ) %>%

  tab_header(

    title = md("**Tabla N.°3. Conjunto final de pares de valores utilizados para el ajuste del modelo de regresión lineal.**")

  ) %>%

  fmt_number(

    columns = c(x,y),

    decimals = 4

  ) %>%

  cols_align(

    align = "center"

  ) %>%

  tab_options(

    table.width = pct(90),

    column_labels.font.weight = "bold"

  )
Tabla N.°3. Conjunto final de pares de valores utilizados para el ajuste del modelo de regresión lineal.
GRAVEL_PCT (%) MEAN (Φ)
1 0.0000 0.8024
2 0.0100 0.7919
3 0.0200 0.8326
4 0.0300 0.7982
5 0.0400 0.8019
6 0.0414 0.6333
7 0.0500 0.8066
8 0.0600 0.8215
9 0.0700 0.8114
10 0.0800 0.8187
11 0.0839 0.8687
12 0.0900 0.8063
13 0.0999 0.6685
14 0.1000 0.8060
15 0.1021 0.4848
16 0.1100 0.8246
17 0.1200 0.8193
18 0.1222 0.9506
19 0.1300 0.8216
20 0.1339 0.7829
#------------------------------------------------------------------------------
# Definir las variables finales del modelo.
#------------------------------------------------------------------------------

x <- TPV_final$x

y <- TPV_final$y

4. DIAGRAMA DE DISPERSIÓN

El diagrama de dispersión constituye el punto de partida del análisis de regresión, ya que permite observar la distribución de las observaciones y el comportamiento existente entre la variable independiente y la variable dependiente. A partir de esta representación gráfica será posible formular una conjetura acerca del tipo de relación matemática que podría describir el comportamiento conjunto de ambas variables. En este caso, el objetivo es evaluar si la relación observada entre el porcentaje de grava (GRAVEL_PCT) y el tamaño medio del grano (MEAN) puede representarse adecuadamente mediante un modelo de regresión lineal.

#------------------------------------------------------------------------------
# Selección de una muestra aleatoria para la visualización
#------------------------------------------------------------------------------

# El conjunto de datos contiene miles de observaciones. Si se representaran
# todas simultáneamente, muchos puntos quedarían superpuestos, dificultando
# la interpretación visual de la nube de dispersión.
#
# Por esta razón se selecciona una muestra aleatoria representativa únicamente
# con fines de visualización.
#
# IMPORTANTE:
# El modelo de regresión lineal NO se ajustará utilizando esta muestra,
# sino con la totalidad de las observaciones depuradas.

set.seed(2026)

indice_visual <- sample(

  1:length(x),

  min(3000, length(x))

)

#------------------------------------------------------------------------------
# Configuración gráfica
#------------------------------------------------------------------------------

par(oma = c(1,1,1,1))

#------------------------------------------------------------------------------
# Construcción del diagrama de dispersión
#------------------------------------------------------------------------------

plot(

  x[indice_visual],

  y[indice_visual],

  # Apariencia de los puntos
  pch = 16,

  cex = 0.7,

  col = rgb(0,0,1,0.35),

  # Título de la gráfica
  main = "Gráfica N.°1. Diagrama de dispersión entre GRAVEL_PCT y MEAN",

  # Etiquetas de los ejes
  xlab = "GRAVEL_PCT (Porcentaje de grava, %)",

  ylab = "MEAN (Tamaño medio del grano, Φ)"

)

#------------------------------------------------------------------------------
# Agregar una cuadrícula para facilitar la lectura del gráfico
#------------------------------------------------------------------------------

grid()

#------------------------------------------------------------------------------
# Dibujar un marco alrededor de la gráfica
#------------------------------------------------------------------------------

box(which = "outer")

La nube de puntos evidencia una tendencia creciente entre el porcentaje de grava (GRAVEL_PCT) y el tamaño medio del grano (MEAN). A medida que aumenta el contenido de grava en los sedimentos, el tamaño medio del grano también tiende a incrementarse. Además, la distribución de los puntos muestra un comportamiento aproximadamente lineal, lo que sugiere que un modelo de regresión lineal podría describir adecuadamente la relación existente entre ambas variables. Esta observación constituye la base para plantear la conjetura del modelo en la siguiente sección.

5. CONJETURA DEL MODELO

La conjetura del modelo consiste en plantear una hipótesis acerca del tipo de función matemática que podría describir la relación observada entre las variables. Para ello, se analiza la forma de la nube de puntos obtenida en el diagrama de dispersión, identificando el comportamiento que mejor representa la distribución de las observaciones. Esta etapa corresponde a una hipótesis inicial que posteriormente será comprobada mediante la estimación de los parámetros del modelo y su comparación con las observaciones reales.

Forma general del modelo propuesto

Y = a + bX

Y = MEAN

X = GRAVEL_PCT

a = Intercepto del modelo

b = Pendiente de la recta

Al analizar la forma de la nube de puntos presentada en la Gráfica N.°1, se observa una tendencia creciente cuya distribución sigue aproximadamente un comportamiento rectilíneo. Esto indica que, conforme aumenta el porcentaje de grava (GRAVEL_PCT), el tamaño medio del grano (MEAN) también tiende a incrementarse de manera aproximadamente proporcional. Debido a este comportamiento, se plantea como hipótesis que un modelo de regresión lineal simple podría describir adecuadamente la relación existente entre ambas variables. Esta conjetura será comprobada mediante la estimación de los parámetros del modelo y la evaluación de su capacidad para representar las observaciones reales.

6. PARÁMETROS DEL MODELO

Una vez seleccionado el modelo lineal, es necesario estimar sus parámetros para obtener la ecuación matemática que describe la relación entre el porcentaje de grava y el tamaño medio del grano. Estos parámetros corresponden al intercepto y a la pendiente de la recta, los cuales determinan su posición e inclinación. La interpretación de dichos parámetros permite comprender cómo varía el tamaño medio del grano conforme aumenta el porcentaje de grava presente en los sedimentos marinos.

#==============================================================================
# 6. PARÁMETROS DEL MODELO
#==============================================================================

#------------------------------------------------------------------------------
# Ajuste del modelo de regresión lineal.
#
# En esta etapa se estiman los parámetros del modelo mediante el método
# de mínimos cuadrados ordinarios.
#
# Modelo teórico:
#
#                Y = a + bX
#
# donde:
#
# Y = Tamaño medio del grano (MEAN)
# X = Porcentaje de grava (GRAVEL_PCT)
#------------------------------------------------------------------------------

modelo_lineal <- lm(

  y ~ x

)

#------------------------------------------------------------------------------
# Obtener los coeficientes estimados del modelo.
#------------------------------------------------------------------------------

coeficientes <- coef(modelo_lineal)

#------------------------------------------------------------------------------
# Intercepto del modelo (a).
#
# Representa el valor esperado del tamaño medio del grano cuando el
# porcentaje de grava es igual a cero.
#------------------------------------------------------------------------------

intercepto <- coeficientes[1]

#------------------------------------------------------------------------------
# Pendiente del modelo (b).
#
# Indica la variación promedio esperada del tamaño medio del grano
# por cada incremento de una unidad porcentual en el contenido de grava.
#------------------------------------------------------------------------------

pendiente <- coeficientes[2]

#------------------------------------------------------------------------------
# Construcción de la tabla de parámetros estimados.
#------------------------------------------------------------------------------

tabla_parametros <- data.frame(

  Parámetro = c(

    "Intercepto (a)",

    "Pendiente (b)"

  ),

  Valor = c(

    intercepto,

    pendiente

  )

)

#------------------------------------------------------------------------------
# Mostrar la tabla de parámetros estimados.
#------------------------------------------------------------------------------

tabla_parametros %>%

  gt() %>%

  fmt_number(

    columns = Valor,

    decimals = 4

  ) %>%

  cols_align(

    align = "center"

  ) %>%

  tab_header(

title = md("**Tabla N.°4. Parámetros estimados del modelo de regresión lineal entre el porcentaje de grava (GRAVEL_PCT) y el tamaño medio del grano (MEAN) del conjunto de datos de sedimentos marinos.**")

  ) %>%

  tab_options(

    table.width = pct(80),

    column_labels.font.weight = "bold"

  )
Tabla N.°4. Parámetros estimados del modelo de regresión lineal entre el porcentaje de grava (GRAVEL_PCT) y el tamaño medio del grano (MEAN) del conjunto de datos de sedimentos marinos.
Parámetro Valor
Intercepto (a) 0.8040
Pendiente (b) 0.0749

Los parámetros estimados corresponden al intercepto (a) y a la pendiente (b) del modelo lineal. Estos coeficientes permiten construir la ecuación ajustada que describe matemáticamente la relación existente entre el porcentaje de grava y el tamaño medio del grano, constituyendo la base para realizar estimaciones e interpretar el comportamiento del fenómeno sedimentológico analizado.

6.1 Ecuación del modelo lineal

#==============================================================================
# 6.1 ECUACIÓN DEL MODELO LINEAL
#==============================================================================

#------------------------------------------------------------------------------
# Construcción automática de la ecuación ajustada.
#------------------------------------------------------------------------------

ecuacion <- paste0(

  "MEAN (Φ) = ",

  round(intercepto,4),

  ifelse(pendiente >= 0, " + ", " - "),

  round(abs(pendiente),4),

  " · GRAVEL_PCT"

)

#------------------------------------------------------------------------------
# Configuración del área gráfica.
#------------------------------------------------------------------------------

plot.new()

plot.window(

  xlim = c(0,100),

  ylim = c(0,100)

)

#==============================================================================
# MODELO TEÓRICO
#==============================================================================

rect(

  5,58,

  95,92,

  border = "#1F4E79",

  lwd = 3

)

text(

  50,

  87,

  "MODELO TEÓRICO",

  font = 2,

  cex = 1.45,

  col = "#1F4E79"

)

text(

  50,

  72,

  "MEAN (Φ) = a + b · GRAVEL_PCT",

  font = 2,

  cex = 1.28,

  col = "#C0392B"

)

#==============================================================================
# MODELO AJUSTADO
#==============================================================================

rect(

  5,8,

  95,48,

  border = "#1F4E79",

  lwd = 3

)

text(

  50,

  43,

  "MODELO LINEAL AJUSTADO",

  font = 2,

  cex = 1.45,

  col = "#1F4E79"

)

text(

  50,

  24,

  ecuacion,

  font = 2,

  cex = 1.18,

  col = "#C0392B"

)

#------------------------------------------------------------------------------
# Nota inferior.
#------------------------------------------------------------------------------

text(

  50,

  3,

  "Ecuación obtenida mediante el método de mínimos cuadrados ordinarios.",

  cex = 0.85,

  col = "gray40"

)

box()

La ecuación del modelo lineal representa la expresión matemática que mejor describe la relación observada entre el porcentaje de grava (GRAVEL_PCT) y el tamaño medio del grano (MEAN), de acuerdo con el criterio de mínimos cuadrados ordinarios. A partir de esta ecuación será posible estimar el valor esperado del tamaño medio del grano para diferentes porcentajes de grava comprendidos dentro del intervalo de observaciones utilizado para ajustar el modelo.

7. REALIDAD Y MODELO

Una vez estimados los parámetros del modelo de regresión lineal, se compara gráficamente la recta ajustada con las observaciones reales del conjunto de datos. Esta superposición permite verificar visualmente si el modelo obtenido representa adecuadamente la relación existente entre el porcentaje de grava (GRAVEL_PCT) y el tamaño medio del grano (MEAN). La comparación constituye una validación gráfica previa a la evaluación estadística mediante el coeficiente de correlación de Pearson y el coeficiente de determinación (R²).

#==============================================================================
# 7. SUPERPOSICIÓN DEL MODELO CON LA REALIDAD
#==============================================================================

#------------------------------------------------------------------------------
# Construcción de una secuencia ordenada de valores de la variable
# independiente para dibujar una recta continua.
#------------------------------------------------------------------------------

x_modelo <- seq(

  from = min(x),

  to = max(x),

  length.out = 300

)

#------------------------------------------------------------------------------
# Calcular los valores estimados por el modelo para cada valor de x_modelo.
#------------------------------------------------------------------------------

y_modelo <- predict(

  modelo_lineal,

  newdata = data.frame(

    x = x_modelo

  )

)

#------------------------------------------------------------------------------
# Configuración gráfica.
#------------------------------------------------------------------------------

par(oma = c(1,1,1,1))

#------------------------------------------------------------------------------
# Gráfico de las observaciones reales.
#------------------------------------------------------------------------------

plot(

  x,

  y,

  pch = 16,

  cex = 0.55,

  col = rgb(0,0,1,0.30),

  main = "Gráfica N.°2. Superposición del modelo lineal\ncon las observaciones reales",

  xlab = "GRAVEL_PCT (Porcentaje de grava, %)",

  ylab = "MEAN (Tamaño medio del grano, Φ)"

)

#------------------------------------------------------------------------------
# Superponer la recta ajustada.
#------------------------------------------------------------------------------

lines(

  x_modelo,

  y_modelo,

  col = "red3",

  lwd = 3

)

#------------------------------------------------------------------------------
# Agregar una cuadrícula para facilitar la lectura.
#------------------------------------------------------------------------------

grid()

#------------------------------------------------------------------------------
# Dibujar un marco alrededor del gráfico.
#------------------------------------------------------------------------------

box(which = "outer")

#------------------------------------------------------------------------------
# Incorporar la leyenda.
#------------------------------------------------------------------------------

legend(

  "bottomright",

  legend = c(

    "Observaciones reales",

    "Modelo lineal "

  ),

  pch = c(

    16,

    NA

  ),

  lty = c(

    NA,

    1

  ),

  lwd = c(

    NA,

    3

  ),

  col = c(

    rgb(0,0,1,0.30),

    "red3"

  ),

  bty = "n"

)

La superposición entre las observaciones reales y la recta ajustada evidencia que el modelo lineal representa adecuadamente la tendencia general del conjunto de datos. Se observa que la recta sigue el comportamiento predominante de las observaciones, describiendo de manera satisfactoria la relación existente entre el porcentaje de grava (GRAVEL_PCT) y el tamaño medio del grano (MEAN). Las diferencias entre algunos puntos y la recta corresponden a la variabilidad natural presente en los sedimentos marinos y a factores adicionales que no forman parte del modelo.

8. TEST DE PEARSON

Después de verificar visualmente la correspondencia entre el modelo ajustado y las observaciones reales, se procede a evaluar cuantitativamente la calidad del ajuste mediante el coeficiente de correlación de Pearson y el coeficiente de determinación (R²). Estos indicadores permiten medir la intensidad de la relación entre las variables y la capacidad explicativa del modelo de regresión lineal.

#==============================================================================
# 8. TEST DE PEARSON
#==============================================================================

#------------------------------------------------------------------------------
# Obtener los valores estimados por el modelo.
#------------------------------------------------------------------------------

y_estimado <- predict(modelo_lineal)

#------------------------------------------------------------------------------
# Calcular el coeficiente de correlación de Pearson entre los valores
# observados y los valores estimados.
#------------------------------------------------------------------------------

r <- cor(x, y)
#------------------------------------------------------------------------------
# Calcular el coeficiente de determinación (R²).
#------------------------------------------------------------------------------

R2 <- summary(modelo_lineal)$r.squared

#------------------------------------------------------------------------------
# Construcción de la tabla de indicadores estadísticos.
#------------------------------------------------------------------------------

tabla_tests <- data.frame(

  Indicador = c(

    "Coeficiente de correlación de Pearson (r)",

    "Coeficiente de determinación (R²)"

  ),

  Valor = c(

    r,

    R2

  )

)

#------------------------------------------------------------------------------
# Mostrar la tabla de resultados.
#------------------------------------------------------------------------------

tabla_tests %>%

  gt() %>%

  cols_label(

    Indicador = "Indicador estadístico",

    Valor = "Valor"

  ) %>%

  fmt_number(

    columns = Valor,

    decimals = 4

  ) %>%

  cols_align(

    align = "center"

  ) %>%

  tab_header(

title = md("**Tabla N.°5. Indicadores estadísticos para evaluar la calidad del ajuste del modelo de regresión lineal.**")

  ) %>%

  tab_options(

    table.width = pct(85),

    column_labels.font.weight = "bold"

  )
Tabla N.°5. Indicadores estadísticos para evaluar la calidad del ajuste del modelo de regresión lineal.
Indicador estadístico Valor
Coeficiente de correlación de Pearson (r) 0.9944
Coeficiente de determinación (R²) 0.9889

El coeficiente de correlación de Pearson obtenido (r = 0.9944) evidencia una relación lineal positiva muy fuerte entre el porcentaje de grava (GRAVEL_PCT) y el tamaño medio del grano (MEAN). Asimismo, el coeficiente de determinación (R² = 0.9889) indica que aproximadamente el 98.89 % de la variabilidad observada en el tamaño medio del grano es explicada por el porcentaje de grava, mientras que el 1.11 % restante puede atribuirse a otros factores sedimentológicos no considerados en este análisis. En conjunto, estos resultados muestran que el modelo lineal representa satisfactoriamente la relación existente entre ambas variables.

9. RESTRICCIONES DEL MODELO

Todo modelo matemático posee condiciones bajo las cuales puede ser utilizado de forma adecuada. En el caso del modelo de regresión lineal obtenido, las restricciones están determinadas por el intervalo de observaciones utilizado durante el ajuste del modelo. Por esta razón, antes de realizar estimaciones es necesario establecer el rango de valores para el cual la ecuación puede proporcionar resultados confiables.

#==============================================================================
# 9. RESTRICCIONES DEL MODELO
#==============================================================================

#------------------------------------------------------------------------------
# Obtener el rango observado de la variable independiente.
#------------------------------------------------------------------------------

xmin <- min(x)

xmax <- max(x)

#------------------------------------------------------------------------------
# Configuración del área gráfica.
#------------------------------------------------------------------------------

plot.new()

plot.window(

  xlim = c(0,100),

  ylim = c(0,100)

)

#------------------------------------------------------------------------------
# Recuadro principal.
#------------------------------------------------------------------------------

rect(

  5,10,

  95,90,

  border = "#1F4E79",

  lwd = 3

)

#------------------------------------------------------------------------------
# Título.
#------------------------------------------------------------------------------

text(

  50,

  84,

  "RESTRICCIONES DEL MODELO",

  cex = 1.45,

  font = 2,

  col = "#1F4E79"

)

#------------------------------------------------------------------------------
# Intervalo observado del conjunto de datos.
#------------------------------------------------------------------------------

text(

  50,

  60,

  "Rango observado del conjunto de datos:",

  cex = 1.15,

  font = 2

)

text(

  50,

  48,

  paste0(

    round(xmin,2),

    " ≤ GRAVEL_PCT ≤ ",

    round(xmax,2)

  ),

  cex = 1.25,

  font = 2,

  col = "#C0392B"

)

#------------------------------------------------------------------------------
# Nota aclaratoria.
#------------------------------------------------------------------------------

text(

  50,

  24,

  "No se recomienda extrapolar el modelo",

  cex = 0.95,

  col = "gray40"

)

text(

  50,

  18,

  "fuera del intervalo observado.",

  cex = 0.95,

  col = "gray40"

)

box()

El modelo de regresión lineal fue ajustado utilizando únicamente observaciones comprendidas dentro del intervalo mostrado anteriormente. Por esta razón, las estimaciones realizadas para valores de GRAVEL_PCT pertenecientes a dicho rango corresponden a interpolaciones y pueden considerarse confiables. En cambio, utilizar la ecuación para valores inferiores o superiores al intervalo observado constituye una extrapolación, por lo que los resultados obtenidos podrían no representar adecuadamente el comportamiento real de los sedimentos marinos.

10. ESTIMACIÓN MEDIANTE EL MODELO

Una de las principales aplicaciones de los modelos de regresión consiste en estimar el valor esperado de una variable dependiente a partir de un valor conocido de la variable independiente. En esta sección se utiliza el modelo de regresión lineal obtenido para estimar el tamaño medio del grano (MEAN) correspondiente a un porcentaje específico de grava (GRAVEL_PCT). Debido a que el valor seleccionado pertenece al intervalo observado en el conjunto de datos, la estimación corresponde a una interpolación, por lo que el resultado puede considerarse confiable dentro del dominio de aplicación del modelo.

#==============================================================================
# 10. ESTIMACIÓN MEDIANTE EL MODELO
#==============================================================================

#------------------------------------------------------------------------------
# Valor de la variable independiente para realizar la estimación.
#
# El valor seleccionado pertenece al intervalo observado del conjunto de datos,
# por lo que la estimación corresponde a una interpolación.
#------------------------------------------------------------------------------

x_estimacion <- 35

#------------------------------------------------------------------------------
# Estimar el valor esperado de la variable dependiente utilizando
# el modelo de regresión lineal.
#------------------------------------------------------------------------------

y_estimacion <- predict(

  modelo_lineal,

  newdata = data.frame(

    x = x_estimacion

  )

)

#------------------------------------------------------------------------------
# Configuración del área gráfica.
#------------------------------------------------------------------------------

plot.new()

plot.window(

  xlim = c(0,100),

  ylim = c(0,100)

)

#------------------------------------------------------------------------------
# Recuadro principal.
#------------------------------------------------------------------------------

rect(

  5,15,

  95,85,

  border = "#1F4E79",

  lwd = 3

)

#------------------------------------------------------------------------------
# Título.
#------------------------------------------------------------------------------

text(

  50,

  79,

  "ESTIMACIÓN DEL MODELO LINEAL",

  cex = 1.35,

  font = 2,

  col = "#1F4E79"

)

#------------------------------------------------------------------------------
# Descripción.
#------------------------------------------------------------------------------

text(

  50,

  63,

  paste(

    "Para una muestra con un porcentaje",

    "de grava (GRAVEL_PCT) igual a"

  ),

  cex = 0.98

)

text(

  50,

  55,

  paste0(

    x_estimacion,

    " %"

  ),

  cex = 1.40,

  font = 2,

  col = "#C0392B"

)

text(

  50,

  43,

  "el modelo estima un tamaño medio del grano (MEAN) de:",

  cex = 1.05

)

#------------------------------------------------------------------------------
# Resultado de la estimación.
#------------------------------------------------------------------------------

text(

  50,

  30,

  paste0(

    round(y_estimacion,4),

    " Φ"

  ),

  cex = 2,

  font = 2,

  col = "#C0392B"

)

#------------------------------------------------------------------------------
# Nota inferior.
#------------------------------------------------------------------------------

text(

  50,

  18,

  "Estimación obtenida mediante el modelo de regresión lineal ajustado.",

  cex = 0.83,

  col = "gray40"

)

box()

Interpretación

Para una muestra de sedimento marino con un porcentaje de grava (GRAVEL_PCT) igual al 35 %, el modelo de regresión lineal estima un tamaño medio del grano (MEAN) de 3.4246 Φ. Debido a que este valor pertenece al intervalo de observaciones utilizado para ajustar el modelo (0 % ≤ GRAVEL_PCT ≤ 70.55 %), la estimación corresponde a una interpolación, por lo que puede considerarse confiable para describir el comportamiento de los sedimentos marinos analizados.

El modelo obtenido permite estimar el tamaño medio del grano a partir del porcentaje de grava presente en una muestra, constituyendo una herramienta de apoyo para estudios granulométricos y análisis sedimentológicos cuando no se dispone de mediciones directas del tamaño medio del grano.

11. CONCLUSIÓN

Entre el porcentaje de grava (GRAVEL_PCT) y el tamaño medio del grano (MEAN) de los sedimentos marinos recolectados en Estados Unidos existe una relación lineal positiva, representada por el modelo MEAN (Φ) = 0.8040 + 0.0749·GRAVEL_PCT, donde X representa el porcentaje de grava (%) y Y el tamaño medio del grano (Φ). El modelo presenta una relación positiva muy fuerte (r = 0.9944) y explica aproximadamente el 98.89 % de la variabilidad observada en el tamaño medio del grano (R² = 0.9889), mientras que el 1.11 % restante se atribuye a otros factores sedimentológicos no considerados en el análisis. Asimismo, para una muestra con un 35 % de grava, el modelo estima un tamaño medio del grano de 3.4246 Φ, constituyendo una herramienta útil para realizar estimaciones granulométricas dentro del intervalo de datos analizado.