1 No linealidad en modelos de Regresión

En los modelos de regresión lineal, se asume que existe una relación lineal entre la variable dependiente (respuesta) y las variables independientes (predictoras). Sin embargo, en muchos contextos aplicados esta relación no es estrictamente lineal. Cuando la relación entre las variables no puede representarse adecuadamente mediante una línea recta, hablamos de no linealidad.

Esto puede manifestarse de varias formas:

  • Curvas convexas o cóncavas.
  • Comportamientos asintóticos o exponenciales.
  • Cambios de pendiente en distintos tramos de la variable predictora.

Reconocer la no linealidad es fundamental para evitar conclusiones erróneas y mejorar la capacidad predictiva del modelo.

2 Funciones no lineales básicas

Cuando la relación entre las variables no es estrictamente lineal, puede abordarse mediante transformaciones de variables. Algunas funciones transformadas comúnmente utilizadas para modelar relaciones no lineales incluyen:

  • Logarítmica: \(y = a + b \cdot \log(x)\)
    • Útil cuando el efecto de la variable independiente disminuye progresivamente a medida que aumenta su valor.
  • Cuadrática (polinómica de segundo grado): \(y = a + bx + cx^2\)
    • Este modelo permite representar relaciones con curvatura, como una parábola, e incluye tanto el efecto lineal como el cuadrático de la variable independiente.
  • Raíz cuadrada: \(y = a + b\cdot√x\)
    • Se emplea cuando la relación entre las variables se suaviza o se estabiliza con valores crecientes de x.
  • Transformación cuadrática: \(Y \sim X + X^2\)
    • Consiste en elevar una variable al cuadrado para capturar su efecto no lineal.

En R, estas transformaciones se pueden aplicar directamente dentro de la fórmula del modelo utilizando la función lm() , lo que permite comparar modelos con distintas transformaciones y evaluar cuál representa mejor la relación entre las variables, mejorar el ajuste y las inferencias.

3 Evaluación comparativa de modelos

Para decidir si una transformación proporciona una representación más adecuada de la relación entre las variables (mejor ajuste), se pueden comparar distintos modelos a través de:

  • Gráficos de dispersión con líneas de tendencia ajustadas.
  • \(R^2\) y \(R^2\) ajustado
  • AIC (Criterio de Información de Akaike)
  • BIC (Criterio de Información Bayesiano)

4 Aplicación práctica

4.1 Cargamos los paquetes

library(readxl)
library(tidyverse)
library(lmtest)

4.2 Cargamos la base de datos

GRUPO1_MODIF <- read_excel("GRUPO1_MODIFICADO.xlsx")

4.3 Gráfico de dispersión

ggplot(GRUPO1_MODIF, aes(x = PESO, y = DIAM_ECUAT)) +
  geom_point() +
  labs(title = "Relación entre PESO y DIÁMETRO ECUATORIAL") +
  theme_minimal()

4.4 Modelado

4.4.1 Modelo de Regresión lineal simple

# Modelado
MODELO_lineal <- lm(DIAM_ECUAT ~ PESO, data = GRUPO1_MODIF)
summary(MODELO_lineal)
## 
## Call:
## lm(formula = DIAM_ECUAT ~ PESO, data = GRUPO1_MODIF)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.7437 -0.8547 -0.1411  0.8869  3.8395 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 43.031948   1.057914   40.68   <2e-16 ***
## PESO         0.177922   0.007277   24.45   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.572 on 57 degrees of freedom
## Multiple R-squared:  0.9129, Adjusted R-squared:  0.9114 
## F-statistic: 597.7 on 1 and 57 DF,  p-value: < 2.2e-16
# Visualización
ggplot(MODELO_lineal, aes(x = PESO, y = DIAM_ECUAT)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "blue") +
  labs(title = "Modelo lineal",
       x= "Peso",
       y= "Diámetro ecuatorial") +
  theme_minimal()

4.4.2 Ecuación del modelo de Regresión lineal

Ecuación del modelo:

\[DIAM.ECUATORIAL = 43.03 + 0.178⋅PESO\]

Interpretación:

  • Intercepto (43.03): Es el diámetro ecuatorial (mm) estimado cuando el peso es 0 gramos.
  • Pendiente (0.178): Por cada gramo adicional de peso, se espera que el diámetro aumente en promedio 0.178 mm, manteniéndose constante la relación.

4.4.3 Componentes del modelo lineal (lm) y su utilidad

# Permite conocer la información guardada en el objeto MODELO_lineal
names(MODELO_lineal)
##  [1] "coefficients"  "residuals"     "effects"       "rank"         
##  [5] "fitted.values" "assign"        "qr"            "df.residual"  
##  [9] "xlevels"       "call"          "terms"         "model"
# Principales componentes

MODELO_lineal$coefficients
MODELO_lineal$residuals
MODELO_lineal$rank
MODELO_lineal$fitted.values
MODELO_lineal$call
MODELO_lineal$model

Tabla con los principales componentes del modelo

Componente Descripción
coefficients Coeficientes estimados del modelo (intercepto y pendiente).
residuals Diferencias entre valores observados y predichos (errores del modelo).
rank Rango del modelo: número de coeficientes linealmente independientes.
fitted.values Valores ajustados o predichos por el modelo.
call Llamada original a la función lm() que generó el modelo.
model Data frame con las variables utilizadas en el modelo.

Veamos un ejemplo:

MODELO_lineal$coefficients
## (Intercept)        PESO 
##  43.0319477   0.1779222

4.4.4 Modelo cuadrático

# Modelado
MODELO_cuad <- lm(DIAM_ECUAT ~ PESO + I(PESO^2), data = GRUPO1_MODIF)
summary(MODELO_cuad)
## 
## Call:
## lm(formula = DIAM_ECUAT ~ PESO + I(PESO^2), data = GRUPO1_MODIF)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.0492 -0.8633 -0.2359  0.7899  3.8182 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 34.2986068  3.2595820  10.522 6.99e-15 ***
## PESO         0.2998005  0.0438421   6.838 6.40e-09 ***
## I(PESO^2)   -0.0004093  0.0001454  -2.815  0.00673 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.484 on 56 degrees of freedom
## Multiple R-squared:  0.9237, Adjusted R-squared:  0.921 
## F-statistic: 339.1 on 2 and 56 DF,  p-value: < 2.2e-16
# Visualización
ggplot(GRUPO1_MODIF, aes(x = PESO, y = DIAM_ECUAT)) +
  geom_point() +
  stat_smooth(method = "lm", formula = y ~ x + I(x^2), se = FALSE, color = "red") +
  labs(title = "Modelo cuadrático",
       x = "Peso",
       y = "Diámetro ecuatorial") +
  theme_minimal()

En el gráfico se observa que a medida que el peso del fruto aumenta, también lo hace el diámetro ecuatorial. Sin embargo, el efecto del peso no es constante: el crecimiento del diámetro se desacelera con pesos mayores. Esto se debe al efecto del término cuadrático negativo.

4.4.5 Ecuación del modelo de Regresión Cuadrática

Ecuación del modelo:

\[ DIAM\_ECUAT = 34.30 + 0.2998 \cdot PESO - 0.0004093 \cdot PESO^2 \]

Donde:

  • α (el intercepto) representa el valor esperado del diámetro ecuatorial cuando el peso es 0.
  • β1 es el coeficiente lineal asociado a PESO: indica cómo varía DIAM_ECUAT por unidad de aumento en PESO, pero considerando que también hay un efecto cuadrático.
  • β2 es el coeficiente cuadrático asociado a PESO2: determina la curvatura de la relación.
    • Si β2 > 0, la curva es cóncava hacia arriba (forma de “U”).
    • Si β2 < 0, la curva es cóncava hacia abajo (forma de “∩”).

Interpretación:

  • En este modelo de regresión cuadrática, no asumimos que el diámetro crece siempre en forma constante con el peso. El término cuadrático negativo indica que la relación entre PESO y DIAM_ECUAT es curva cóncava: el diámetro aumenta con el peso, pero llega a un punto máximo y luego disminuye.

4.4.6 Comparación gráfica de modelo lineal y cuadrático

ggplot(GRUPO1_MODIF, aes(PESO, DIAM_ECUAT)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "blue", size = 0.8 ) +
  geom_smooth(method = "lm", formula = y ~ x + I(x^2), se = FALSE, color = "red", size = 0.8) +
  labs(title = "Modelo lineal vs Modelo Cuadrático",
       x = "Peso",
       y = "Diámetro ecuatorial") +
  theme_minimal()

4.5 Transformaciones

4.5.1 Modelo con transformación logarítmica de la variable dependiente: Diámetro ecuatorial

MODELO_log_y <- lm(log(DIAM_ECUAT) ~ PESO, data = GRUPO1_MODIF)
summary(MODELO_log_y)
## 
## Call:
## lm(formula = log(DIAM_ECUAT) ~ PESO, data = GRUPO1_MODIF)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.05177 -0.01383  0.00091  0.01466  0.05938 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 3.8497280  0.0170515  225.77   <2e-16 ***
## PESO        0.0026137  0.0001173   22.28   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.02533 on 57 degrees of freedom
## Multiple R-squared:  0.897,  Adjusted R-squared:  0.8952 
## F-statistic: 496.5 on 1 and 57 DF,  p-value: < 2.2e-16

Donde:

  • α = 3.8497 Es el valor estimado de log(DIAM_ECUAT) cuando PESO = 0 gramos.
  • β = 0.00261 Por cada gramo adicional de peso, el logaritmo del diámetro ecuatorial aumenta 0.00261 unidades.

4.6 Ecuación del Modelo

Modelo ajustado:

\[log(DIAM.ECUATORIAL) = 3.849 + 0.00261⋅PESO\] Como el modelo predice \(\log(\text{DIAM_ECUAT})\), podemos aplicar la función exponencial para volver a la escala original:

\[ \text{DIAM_ECUAT} = e^{3.849 + 0.00261 \cdot \text{PESO}} \]

Interpretación:

  • Este modelo supone que la relación entre el peso y el diámetro ecuatorial es exponencial creciente.
  • La transformación logarítmica de la variable dependiente permite linealizar una relación curva.
  • El coeficiente de PESO nos indica que, en promedio, por cada gramo adicional de peso, el diámetro ecuatorial aumenta un 0.26%.
  • El modelo es estadísticamente significativo, con un alto valor t y p-value menor a 0.001.

4.7 Predicción de la variable respuesta

Vamos a calcular el valor esperado del diámetro ecuatorial (mm) para un peso de 150 gramos, usando los tres modelos obtenidos:

# Peso a predecir
peso <- 150

# Modelo Lineal
DIAMETRO_MODELO_lineal <- 43.03 + 0.178 * peso
DIAMETRO_MODELO_lineal
## [1] 69.73
# Modelo Cuadrático
DIAMETRO_MODELO_cuadratico <- 34.30 + 0.2998 * peso - 0.0004093 * peso^2
DIAMETRO_MODELO_cuadratico
## [1] 70.06075
# Modelo Logarítmico (escala original)
DIAMETRO_MODELO_log_Y <- exp(3.849 + 0.00261 * peso)
DIAMETRO_MODELO_log_Y
## [1] 69.44256
Modelo Fórmula Predicción
Lineal DIAM_ECUAT = 43.03 + 0.178 * PESO 69.73
Cuadrático DIAM_ECUAT = 34.30 + 0.2998 * PESO - 0.0004093 * PESO2 70.06
Log_Y DIAM_ECUAT = e 3.849 + 0.00261 * PESO 69.44

4.8 Comparación de modelos

4.8.1 Criterio de Información de Akaike (AIC)

AIC(MODELO_lineal, MODELO_cuad, MODELO_log_y)
##               df       AIC
## MODELO_lineal  3  224.7415
## MODELO_cuad    4  218.9345
## MODELO_log_y   3 -262.3410

4.8.2 Criterio de Información Bayesiano (BIC)

BIC(MODELO_lineal, MODELO_cuad, MODELO_log_y)
##               df       BIC
## MODELO_lineal  3  230.9741
## MODELO_cuad    4  227.2446
## MODELO_log_y   3 -256.1084

4.9 Comparación de indicadores de ajuste para los tres modelos

Modelo R² Ajustado AIC BIC
Lineal 0.9114 224.74 230.97
Cuadrático 0.9210 218.93 227.24
Log_Y 0.8952 –262.34 –256.10

4.10 Conclusiones

  • El modelo lineal simple presenta buen ajuste (R² ajustado = 0.911), pero no es el más eficiente en términos de los criterios AIC y BIC.
  • El modelo cuadrático mejora ligeramente el R², lo que indica una mejor capacidad explicativa, pero introduce complejidad al modelo sin mejorar significativamente en AIC y BIC.
  • El modelo con transformación logarítmica de la variable dependiente muestra los valores de AIC y BIC más bajos, lo que sugiere que es el más parsimonioso en términos estadísticos.
  • Desde el punto de vista de los criterios AIC y BIC:
  • El modelo logarítmico tiene menos parámetros (solo dos): intercepto y coeficiente de PESO.
  • El modelo cuadrático tiene tres parámetros: intercepto, PESO, y PESO².
  • Si bien el modelo logarítmico es más eficiente, su interpretación puede ser menos directa que la de los otros modelos, ya que requiere volver a la escala original mediante la función exponencial para una comprensión intuitiva de los resultados.

4.11 ¿Qué modelo seleccionar?

La elección del modelo depende del objetivo del análisis:

  • Si se busca máxima capacidad explicativa en la misma escala de las variables originales, el modelo cuadrático es una buena opción.

  • Si se prioriza un modelo más eficiente estadísticamente y con menor complejidad, conviene optar por el modelo con transformación logarítmica.

En contextos aplicados donde se requiere interpretar los resultados directamente en unidades originales, podría preferirse el modelo cuadrático pese a su ligera complejidad adicional.