El modelo lineal normal como base para comprender los GLM

EP7120-Modelos Lineales Generalizados Aplicados

Enver Gerald Tarazona Vargas

Universidad Nacional Agraria La Molina (UNALM), Perú

Del modelo lineal normal a los GLM: motivación y lógica general

Punto de partida: una pregunta de modelación

En regresión se parte de preguntas como:

  • ¿cómo cambia una respuesta cuando cambian ciertas covariables?
  • ¿qué variables explican mejor la variación observada?
  • ¿cuál es el efecto esperado de una covariable sobre la respuesta?
  • ¿cómo comparar grupos controlando por otras variables?
  • ¿cómo predecir la respuesta bajo condiciones dadas?

Estas preguntas requieren un modelo estadístico que conecte respuesta, covariables e incertidumbre.

¿Qué es un modelo estadístico?

Los modelos estadísticos se construyen a partir de modelos de probabilidad.

Los datos observados se tratan como realizaciones de variables aleatorias:

\[ Y_1,\ldots,Y_n \]

donde cada \(Y_i\) representa la información recogida para la \(i\)-ésima unidad observada.

El supuesto central es que:

\[ Y=(Y_1,\ldots,Y_n) \]

es generado por un modelo de probabilidad \(P\).

El problema estadístico

Si el modelo de probabilidad \(P\) fuera completamente conocido, no habría un problema estadístico de estimación.

El problema aparece cuando existe incertidumbre sobre \(P\).

En ese caso, se considera que \(P\) pertenece a una familia de modelos:

\[ \mathcal{M}=\{P_\theta:\theta \in \Theta\} \]

donde:

  • \(\theta\) representa un parámetro desconocido;
  • \(\Theta\) es el espacio paramétrico;
  • el análisis estadístico busca aprender sobre \(\theta\) a partir de los datos.

Modelos paramétricos

Un modelo es paramétrico cuando puede describirse mediante un número finito de parámetros.

En general, se representa como:

\[ \mathcal{M}=\{P_\theta:\theta \in \Theta \subset \mathbb{R}^p\} \]

donde:

  • \(p\) es la dimensión del vector de parámetros;
  • \(\theta\) contiene las cantidades desconocidas del modelo;
  • cada valor de \(\theta\) determina un modelo de probabilidad dentro de la familia.

En este marco, el análisis se concentra en estimar o contrastar valores posibles de \(\theta\).

Ejemplo: modelo normal

Un ejemplo básico de modelo paramétrico es:

\[ Y_1,\ldots,Y_n \overset{iid}{\sim} N(\mu,\sigma^2) \]

En este caso:

\[ \theta=(\mu,\sigma^2) \]

El modelo queda determinado por un número finito de parámetros.

El interés estadístico puede estar en estimar \(\mu\), estimar \(\sigma^2\) o contrastar hipótesis sobre estos parámetros.

Ejemplo: regresión lineal

En regresión, la distribución de la respuesta puede depender de covariables observadas.

Un ejemplo paramétrico es:

\[ Y_i \mid x_i \overset{ind}{\sim} N(\beta_0+\beta_1x_i,\sigma^2), \quad i=1,\ldots,n \]

En este caso, el parámetro desconocido es:

\[ \theta=(\beta_0,\beta_1,\sigma^2) \]

La media de la respuesta depende de \(x_i\) mediante una estructura lineal.

Modelos no paramétricos

En algunos problemas, restringir el análisis a una forma paramétrica específica puede ser demasiado limitado.

Los modelos no paramétricos buscan relajar esa restricción.

En estos modelos, la clase de distribuciones posibles es más amplia y el parámetro puede ser de dimensión infinita.

Por ejemplo, en regresión puede asumirse:

\[ Y_i \mid x_i \overset{ind}{\sim} N(m(x_i),\sigma^2) \]

donde \(m\) es una función desconocida.

Regresión paramétrica y no paramétrica

En regresión paramétrica, la forma de la relación se especifica mediante un número finito de parámetros.

Por ejemplo:

\[ E(Y_i \mid x_i)=\beta_0+\beta_1x_i \]

En regresión no paramétrica, la forma funcional es más flexible:

\[ E(Y_i \mid x_i)=m(x_i) \]

En este curso se trabajará principalmente con modelos paramétricos de regresión, donde la media de la respuesta se relaciona con covariables mediante una estructura especificada.

Estructura general de un modelo de regresión

Un modelo de regresión puede representarse, de manera general, como:

\[ Y_i = m(\mathbf{x}_i) + \varepsilon_i, \quad i = 1, \ldots, n \]

donde:

  • \(Y_i\): variable respuesta;
  • \(\mathbf{x}_i\): vector de variables explicativas;
  • \(m(\mathbf{x}_i)\): componente sistemático, explicado por las variables observadas;
  • \(\varepsilon_i\): componente aleatorio, no explicado por el modelo.

El modelo permite estudiar cómo cambia la respuesta según las variables explicativas, separando la parte estructurada de la variabilidad residual.

Media condicional

En un modelo de regresión, una formulación usual es modelar el comportamiento esperado de la respuesta dadas las variables explicativas:

\[ \mu_i = E(Y_i \mid \mathbf{x}_i) \]

donde:

  • \(\mu_i\): media condicional de la respuesta;
  • \(E(Y_i \mid \mathbf{x}_i)\): valor esperado de \(Y_i\) dados los valores de las variables explicativas.

A partir del modelo general:

\[ Y_i = m(\mathbf{x}_i) + \varepsilon_i \]

si \(E(\varepsilon_i)=0\), entonces:

\[ \mu_i = m(\mathbf{x}_i) \]

Por tanto, el componente sistemático representa el comportamiento esperado de la respuesta.

Explicar, estimar y predecir

A partir de un modelo de regresión, pueden distinguirse tres objetivos relacionados:

  • Explicar: describir cómo se relaciona la respuesta con las variables explicativas.
  • Estimar: obtener valores para los parámetros desconocidos del modelo.
  • Predecir: usar el modelo ajustado para anticipar valores de la respuesta bajo ciertas condiciones.

Estas tareas no son equivalentes.

Un mismo modelo puede ser útil para predicción, pero requerir cautela para interpretar efectos o establecer conclusiones sustantivas.

Tipos de respuesta en problemas de regresión

La variable respuesta no siempre tiene la misma naturaleza.

En aplicaciones reales puede ser:

  • continua;
  • binaria;
  • de conteo;
  • una proporción;
  • una tasa;
  • positiva y asimétrica.

El tipo de respuesta condiciona la forma del modelo, la distribución asumida, la estructura de la varianza y las herramientas de diagnóstico.

Necesidad de una clase más general de modelos

El modelo de regresión debe ser coherente con la naturaleza de la respuesta.

Cuando la respuesta no es continua o cuando su variabilidad cambia con el nivel esperado de la respuesta, una formulación normal con varianza constante puede ser insuficiente.

Por ello, se requiere una clase de modelos que permita:

  • mantener la lógica de regresión;
  • incorporar distintas distribuciones para la respuesta;
  • relacionar el comportamiento esperado de la respuesta con las variables explicativas;
  • adaptar la estimación, inferencia y diagnóstico al tipo de dato.

Elementos que se reutilizarán en GLM

Al pasar a modelos lineales generalizados se mantienen varios elementos de la lógica de regresión:

  • variable respuesta;
  • variables explicativas;
  • media condicional;
  • componente sistemático;
  • parámetros desconocidos;
  • estimación;
  • inferencia;
  • diagnóstico;
  • comparación de modelos.

Lo que cambia es la forma probabilística y la relación entre la media y el componente sistemático.

Pregunta de transición

La transición hacia los modelos lineales generalizados se organiza a partir de tres preguntas:

  • ¿qué distribución es adecuada para la respuesta?
  • ¿cómo se relaciona la media condicional con las variables explicativas?
  • ¿cómo cambia la varianza según el comportamiento esperado de la respuesta?

Estas preguntas permiten pasar del modelo lineal normal a una familia más amplia de modelos de regresión.

Formulación y estimación del modelo lineal normal

Modelo lineal normal

El modelo lineal normal se define como:

\[ Y_i = \mathbf{x}_i^\top \boldsymbol{\beta} + \varepsilon_i, \quad i = 1,\ldots,n \]

donde:

  • \(Y_i\): variable respuesta;
  • \(\mathbf{x}_i\): vector de variables explicativas;
  • \(\boldsymbol{\beta}\): vector de parámetros desconocidos;
  • \(\varepsilon_i\): error aleatorio.

Se asume que:

\[ \varepsilon_i \overset{iid}{\sim} N(0,\sigma^2) \]

Media y varianza condicional

A partir del modelo:

\[ Y_i = \mathbf{x}_i^\top \boldsymbol{\beta} + \varepsilon_i \]

si:

\[ E(\varepsilon_i)=0 \]

entonces:

\[ E(Y_i \mid \mathbf{x}_i)=\mu_i=\mathbf{x}_i^\top \boldsymbol{\beta} \]

Además, bajo el supuesto de varianza constante:

\[ \operatorname{Var}(Y_i \mid \mathbf{x}_i)=\sigma^2 \]

Por tanto, el modelo especifica una media lineal y una varianza constante.

Distribución condicional de la respuesta

Bajo los supuestos del modelo lineal normal:

\[ \varepsilon_i \overset{iid}{\sim} N(0,\sigma^2) \]

se obtiene:

\[ Y_i \mid \mathbf{x}_i \sim N(\mu_i,\sigma^2) \]

con:

\[ \mu_i=\mathbf{x}_i^\top \boldsymbol{\beta} \]

Así, la respuesta condicionada a las variables explicativas sigue una distribución normal con media dependiente de las covariables y varianza constante.

Forma matricial del modelo

Para las \(n\) observaciones, el modelo puede escribirse como:

\[ \mathbf{Y}=X\boldsymbol{\beta}+\boldsymbol{\varepsilon} \]

donde:

  • \(\mathbf{Y}\): vector de respuestas;
  • \(X\): matriz de diseño;
  • \(\boldsymbol{\beta}\): vector de parámetros;
  • \(\boldsymbol{\varepsilon}\): vector de errores.

Bajo normalidad:

\[ \boldsymbol{\varepsilon}\sim N_n(\mathbf{0},\sigma^2 I_n) \]

y, por tanto:

\[ \mathbf{Y}\mid X \sim N_n(X\boldsymbol{\beta},\sigma^2 I_n) \]

Matriz de diseño

La matriz de diseño organiza los valores observados de las variables explicativas:

\[ X = \begin{pmatrix} \mathbf{x}_1^\top \\ \mathbf{x}_2^\top \\ \vdots \\ \mathbf{x}_n^\top \end{pmatrix} = \begin{pmatrix} x_{11} & x_{12} & \cdots & x_{1p} \\ x_{21} & x_{22} & \cdots & x_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n1} & x_{n2} & \cdots & x_{np} \end{pmatrix} \]

Cada fila corresponde a una observación.

Cada columna corresponde a una variable explicativa, una codificación, una transformación o una interacción.

Si el modelo incluye intercepto, una columna de \(X\) está formada por unos.

Predictor lineal

El predictor lineal de la observación \(i\) es:

\[ \eta_i=\mathbf{x}_i^\top \boldsymbol{\beta} \]

En el modelo lineal normal:

\[ \mu_i=\eta_i \]

es decir:

\[ E(Y_i\mid \mathbf{x}_i)=\mathbf{x}_i^\top \boldsymbol{\beta} \]

Por tanto, la media condicional se modela directamente mediante una combinación lineal de las variables explicativas.

Estimación y supuestos: recordatorio

En el modelo lineal normal, la estimación clásica se basa en mínimos cuadrados:

\[ \widehat{\boldsymbol{\beta}} = (X^\top X)^{-1}X^\top \mathbf{y} \]

bajo los supuestos usuales:

  • linealidad de la media;
  • errores con media cero;
  • varianza constante;
  • independencia;
  • normalidad de los errores.

Estos elementos no se desarrollan nuevamente aquí; se retoman porque permiten comparar el modelo lineal normal con los GLM.

Modelo ajustado

Una vez estimado el vector de parámetros, el modelo ajustado se expresa como:

\[ \widehat{\mu}_i = \mathbf{x}_i^\top \widehat{\boldsymbol{\beta}}, \quad i = 1,\ldots,n \]

o, equivalentemente:

\[ \widehat{Y}_i = \mathbf{x}_i^\top \widehat{\boldsymbol{\beta}} \]

donde:

  • \(\widehat{\mu}_i\): media estimada de la respuesta para la observación \(i\);
  • \(\widehat{Y}_i\): valor ajustado por el modelo;
  • \(\widehat{\boldsymbol{\beta}}\): vector de coeficientes estimados.

El modelo ajustado permite pasar de la formulación teórica a la interpretación empírica.

Interpretación de los coeficientes estimados

En el modelo ajustado:

\[ \widehat{\mu}_i = \widehat{\beta}_1 x_{i1} + \widehat{\beta}_2 x_{i2} + \cdots + \widehat{\beta}_p x_{ip} \]

cada coeficiente estimado \(\widehat{\beta}_j\) representa el cambio esperado en la media de la respuesta asociado a una unidad adicional de \(x_{ij}\), manteniendo constantes las demás variables explicativas.

La interpretación depende de:

  • la escala de la respuesta;
  • la escala de la variable explicativa;
  • la codificación usada;
  • las demás variables incluidas en el modelo;
  • el contexto aplicado del problema.

Valores ajustados y residuos

Los valores ajustados se obtienen mediante:

\[ \widehat{\mathbf{y}}=X\widehat{\boldsymbol{\beta}} \]

El vector de residuos ordinarios es:

\[ \mathbf{r}=\mathbf{y}-\widehat{\mathbf{y}} \]

Los residuos resumen la parte de la respuesta observada que no es explicada por el modelo ajustado.

Esta idea será central para el diagnóstico del modelo.

Mínimos cuadrados y máxima verosimilitud

Bajo errores normales, la estimación de \(\boldsymbol{\beta}\) por mínimos cuadrados coincide con la estimación por máxima verosimilitud.

Esta conexión es importante porque los MLG se formulan a partir de máxima verosimilitud.

En el modelo lineal normal se dispone de una solución explícita para los coeficientes.

En los MLG, la estimación se obtiene usualmente mediante procedimientos iterativos.

Regresión lineal simple como caso particular

La regresión lineal simple corresponde al caso con una sola variable explicativa:

\[ Y_i = \beta_1 + \beta_2 x_i + \varepsilon_i, \quad i=1,\ldots,n \]

donde:

  • \(\beta_1\): intercepto;
  • \(\beta_2\): pendiente;
  • \(x_i\): valor observado de la variable explicativa;
  • \(\varepsilon_i\): error aleatorio.

Este caso permite visualizar la relación entre respuesta, media ajustada y residuo.

Interpretación de la pendiente

En el modelo:

\[ Y_i = \beta_1 + \beta_2 x_i + \varepsilon_i \]

la pendiente \(\beta_2\) representa el cambio esperado en la respuesta cuando la variable explicativa aumenta en una unidad.

La interpretación depende de:

  • la escala de \(Y_i\);
  • la escala de \(x_i\);
  • el contexto del problema;
  • la validez del supuesto de relación lineal.

En el modelo múltiple, esta interpretación se extiende considerando las demás covariables constantes.

Coeficiente de determinación

Con intercepto en el modelo, la variabilidad total se descompone como:

\[ \underbrace{\sum_{i=1}^{n}(y_i-\bar{y})^2}_{SQT} = \underbrace{\sum_{i=1}^{n}(\widehat{y}_i-\bar{y})^2}_{SQReg} + \underbrace{\sum_{i=1}^{n}(y_i-\widehat{y}_i)^2}_{SQRes} \]

Por tanto, el coeficiente de determinación se calcula como:

\[ R^2 = \frac{SQReg}{SQT} = 1-\frac{SQRes}{SQT} \]

El \(R^2\) mide la proporción de la variabilidad total de la respuesta explicada por el modelo ajustado.

Coeficiente de determinación ajustado

El coeficiente de determinación ajustado se calcula como:

\[ \bar{R}^2 = 1-\frac{QMRes}{QMT} \]

donde:

\[ QMRes=\frac{SQRes}{n-p} \qquad \text{y} \qquad QMT=\frac{SQT}{n-1} \]

Equivalentemente:

\[ \bar{R}^2 = 1- (1-R^2) \frac{n-1}{n-p} \]

El \(R^2\) ajustado penaliza la incorporación de parámetros y permite comparar modelos con distinta complejidad.

Ejemplo 1: Venta de tejados

El objetivo es explicar el número medio de tejados vendidos en una red de tiendas de construcción, a partir de características comerciales de cada filial.

Se trabajará con el archivo vendas.txt, que contiene información de (n=26) filiales. Los datos corresponden a la venta anual de un tipo de tejado de madera, reportados originalmente por Neter et al. (1996, p. 449) y retomados en Paula, sección 1.14.1.

Variable respuesta:

  • telhados: total de tejados vendidos, en miles de metros cuadrados.

Variables explicativas:

  • clientes: número de clientes registrados en la tienda, en miles;
  • gastos: gastos de promoción del producto, en miles de dólares;
  • marcas: número de marcas competidoras;
  • potencial: potencial de la tienda; valores más altos indican mayor potencial.

Ejemplo 1: Exploración inicial de las variables

Antes de ajustar el modelo, se revisan las principales medidas descriptivas de las variables del ejemplo.

Ver código en R
library(dplyr)
library(knitr)

vendas <- read.table("vendas.txt", header = TRUE)

tabla_desc <- data.frame(
  Variable = c("telhados", "clientes", "gastos", "marcas", "potencial"),
  Media = c(
    mean(vendas$telhados),
    mean(vendas$clientes),
    mean(vendas$gastos),
    mean(vendas$marcas),
    mean(vendas$potencial)
  ),
  `Desv. estándar` = c(
    sd(vendas$telhados),
    sd(vendas$clientes),
    sd(vendas$gastos),
    sd(vendas$marcas),
    sd(vendas$potencial)
  ),
  Mínimo = c(
    min(vendas$telhados),
    min(vendas$clientes),
    min(vendas$gastos),
    min(vendas$marcas),
    min(vendas$potencial)
  ),
  Mediana = c(
    median(vendas$telhados),
    median(vendas$clientes),
    median(vendas$gastos),
    median(vendas$marcas),
    median(vendas$potencial)
  ),
  Máximo = c(
    max(vendas$telhados),
    max(vendas$clientes),
    max(vendas$gastos),
    max(vendas$marcas),
    max(vendas$potencial)
  )
)

kable(
  tabla_desc,
  digits = 2,
  align = "lrrrrr"
)
Variable Media Desv..estándar Mínimo Mediana Máximo
telhados 170.21 84.55 30.9 159.8 339.4
clientes 51.85 14.21 26.0 51.5 75.0
gastos 5.41 1.83 2.5 5.5 9.0
marcas 9.12 2.58 4.0 9.0 13.0
potencial 9.88 4.73 3.0 9.0 19.0

La tabla permite revisar la magnitud, dispersión y rango de las variables antes de formular el modelo.

Ejemplo 1: Distribución de telhados

Ver código en R
library(robustbase)

par(mfrow = c(1, 2))

adjbox(
  vendas$telhados,
  main = "Boxplot ajustado",
  ylab = "Tejados vendidos"
)

hist(
  vendas$telhados,
  probability = TRUE,
  main = "Distribución de telhados",
  xlab = "Tejados vendidos",
  ylab = "Densidad",
  breaks = 8
)

lines(
  density(vendas$telhados),
  lwd = 2
)

Ejemplo 1: Lectura de la distribución de telhados

En la distribución de telhados se observa:

  • ausencia de observaciones aberrantes evidentes según el boxplot ajustado;
  • ligera asimetría hacia la derecha;
  • dispersión importante en las ventas entre filiales.

La revisión gráfica sugiere que la respuesta puede tratarse inicialmente como continua para el ajuste del modelo lineal normal.

Ejemplo 1: Relaciones bivariadas con la respuesta

Ver código en R
library(ggplot2)
library(patchwork)

p1 <- ggplot(vendas, aes(x = clientes, y = telhados)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE) +
  labs(x = "Clientes registrados", y = "Tejados vendidos")

p2 <- ggplot(vendas, aes(x = gastos, y = telhados)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE) +
  labs(x = "Gastos de promoción", y = "Tejados vendidos")

p3 <- ggplot(vendas, aes(x = marcas, y = telhados)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE) +
  labs(x = "Marcas competidoras", y = "Tejados vendidos")

p4 <- ggplot(vendas, aes(x = potencial, y = telhados)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE) +
  labs(x = "Potencial de la tienda", y = "Tejados vendidos")

(p1 | p2) / (p3 | p4)

Ejemplo 1: Lectura de las relaciones bivariadas

  • La relación con clientes es claramente positiva: las filiales con más clientes registrados tienden a vender más tejados.

  • La relación con marcas es negativa: a mayor número de marcas competidoras, menor venta observada de tejados.

  • Las relaciones con gastos y potencial parecen positivas, pero visualmente son más débiles y con mayor dispersión.

  • Esta exploración sugiere que clientes y marcas podrían tener mayor aporte explicativo en el modelo múltiple.

Ejemplo 1: Matriz de correlaciones

Ver código en R
library(knitr)

cor(vendas[, c("telhados", "gastos", "clientes", "marcas", "potencial")]) |>
  round(3) |>
  kable()
telhados gastos clientes marcas potencial
telhados 1.000 0.159 0.783 -0.833 0.407
gastos 0.159 1.000 0.173 -0.038 -0.071
clientes 0.783 0.173 1.000 -0.324 0.468
marcas -0.833 -0.038 -0.324 1.000 -0.202
potencial 0.407 -0.071 0.468 -0.202 1.000

Ejemplo 1: Lectura de la matriz de correlaciones

En la matriz de correlaciones de Pearson se observa:

  • baja correlación entre telhados y gastos;
  • altas correlaciones entre telhados con clientes y marcas;
  • correlación moderada entre telhados y potencial;
  • correlaciones bajas entre las variables explicativas, excepto una correlación moderada entre clientes y potencial.

Estas correlaciones son coherentes con los diagramas de dispersión presentados a continuación.

Ejemplo 1: Modelo propuesto

Para la filial \(i\), sea \(Y_i\) el total de tejados vendidos.

Se propone el modelo lineal normal:

\[ Y_i = \beta_1 + \beta_2 gastos_i + \beta_3 clientes_i + \beta_4 marcas_i + \varepsilon_i, \quad i = 1, \ldots, 26 \]

con:

\[ \varepsilon_i \overset{iid}{\sim} N(0,\sigma^2) \]

Por tanto:

\[ E(Y_i \mid gastos_i, clientes_i, marcas_i) = \beta_1 + \beta_2 gastos_i + \beta_3 clientes_i + \beta_4 marcas_i \]

El modelo busca explicar el número medio de tejados vendidos a partir de gastos, clientes y marcas.

Ejemplo 1: Modelo ajustado

Ver código en R
mod_tejados <- lm(
  telhados ~ gastos + clientes + marcas,
  data = vendas
)

summary(mod_tejados)

Call:
lm(formula = telhados ~ gastos + clientes + marcas, data = vendas)

Residuals:
     Min       1Q   Median       3Q      Max 
-20.4450  -4.6552   0.6802   6.1668  14.3571 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 179.8443    12.6213  14.249 1.37e-12 ***
gastos        1.6772     1.0521   1.594    0.125    
clientes      3.3694     0.1432  23.524  < 2e-16 ***
marcas      -21.2165     0.7773 -27.295  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 9.491 on 22 degrees of freedom
Multiple R-squared:  0.9889,    Adjusted R-squared:  0.9874 
F-statistic: 654.1 on 3 and 22 DF,  p-value: < 2.2e-16

Ejemplo 1: Ecuación estimada e interpretación de los coeficientes

A partir del modelo ajustado, se obtiene:

\[ \widehat{\mu}_i = 179.844 + 1.677 gastos_i + 3.369 clientes_i - 21.217 marcas_i \]

donde \(\widehat{\mu}_i\) representa el número medio estimado de tejados vendidos para la filial \(i\).

Interpretación: Manteniendo constantes las demás variables:

  • por cada mil dólares adicionales en gastos de promoción, la venta media estimada aumenta en 1.677 miles de m²;
  • por cada mil clientes registrados adicionales, la venta media estimada aumenta en 3.369 miles de m²;
  • por cada marca competidora adicional, la venta media estimada disminuye en 21.217 miles de m².

Esta lectura corresponde a estimación e interpretación del modelo ajustado.

Ejemplo 1: Bondad de ajuste

Ver código en R
resumen_modelo <- summary(mod_tejados)

tabla_ajuste <- data.frame(
  Medida = c(
    "Error estándar residual",
    "R2",
    "R2 ajustado"
  ),
  Valor = c(
    resumen_modelo$sigma,
    resumen_modelo$r.squared,
    resumen_modelo$adj.r.squared
  )
)

tabla_ajuste |>
  mutate(Valor = round(Valor, 4)) |>
  knitr::kable()
Medida Valor
Error estándar residual 9.4905
R2 0.9889
R2 ajustado 0.9874

Ejemplo 1: Interpretación de la bondad de ajuste

El modelo presenta:

  • error estándar residual: 9.491;
  • \(R^2 = 0.989\);
  • \(R^2\) ajustado = 0.987.

El valor de \(R^2 = 0.989\) indica que el modelo explica aproximadamente el 98.9% de la variabilidad observada en la venta de tejados entre filiales.

El \(R^2\) ajustado, igual a 0.987, sigue siendo muy alto después de penalizar por el número de parámetros incluidos en el modelo.

Por tanto, el modelo tiene una alta capacidad descriptiva para explicar las diferencias observadas en telhados a partir de gastos, clientes y marcas.

El error estándar residual de 9.491 indica que, en promedio, las diferencias típicas entre las ventas observadas y las ventas ajustadas son de aproximadamente 9.491 miles de m² de tejados.

Inferencia y predicción en el modelo lineal normal

Inferencia en el modelo lineal normal

Después de estimar el modelo, interesa evaluar la incertidumbre asociada a los parámetros.

La inferencia clásica se realiza bajo el supuesto de que el modelo está correctamente especificado y que sus supuestos principales son razonables.

En esta sección se revisan:

  • prueba global del modelo;
  • pruebas individuales para coeficientes;
  • restricciones lineales;
  • modelos anidados;
  • intervalos de confianza;
  • predicción.

El diagnóstico posterior evaluará si estos supuestos son compatibles con los datos.

Prueba global del modelo

La prueba global evalúa si el conjunto de variables explicativas aporta información para explicar la respuesta.

Para un modelo con intercepto, se contrasta:

\[ H_0:\beta_2=\beta_3=\cdots=\beta_p=0 \]

frente a:

\[ H_1:\text{al menos un } \beta_j \neq 0,\quad j=2,\ldots,p \]

Bajo \(H_0\), el modelo se reduce a un modelo con intercepto.

Bajo \(H_1\), al menos una variable explicativa contribuye al modelo.

Estadístico F global

La prueba global se basa en comparar la variabilidad explicada por el modelo con la variabilidad residual:

\[ F = \frac{QMReg}{QMRes} = \frac{SQReg/(p-1)}{SQRes/(n-p)} = \frac{ \left[\sum_{i=1}^{n}(\widehat{y}_i-\bar{y})^2\right]/(p-1) }{ \left[\sum_{i=1}^{n}(y_i-\widehat{y}_i)^2\right]/(n-p) } \]

donde:

  • \(SQReg\): suma de cuadrados explicada por la regresión;
  • \(SQRes\): suma de cuadrados residual;
  • \(p\): número de parámetros del modelo;
  • \(n\): tamaño de muestra.

Bajo \(H_0\):

\[ F \sim F_{p-1,n-p} \]

Tabla ANOVA del modelo lineal

La prueba global suele resumirse mediante la tabla ANOVA:

Fuente Suma de cuadrados gl Cuadrado medio Estadístico
Regresión \(SQReg\) \(p-1\) \(QMReg=SQReg/(p-1)\) \(F=QMReg/QMRes\)
Residual \(SQRes\) \(n-p\) \(QMRes=SQRes/(n-p)\)
Total \(SQT\) \(n-1\)

La tabla ANOVA resume la descomposición de la variabilidad y permite evaluar si el modelo con covariables mejora respecto al modelo con solo intercepto.

Ejemplo 1: Prueba global del modelo

Para el modelo ajustado:

\[ Y_i = \beta_1 + \beta_2 gastos_i + \beta_3 clientes_i + \beta_4 marcas_i + \varepsilon_i \]

se evalúa:

\[ H_0:\beta_2=\beta_3=\beta_4=0 \]

frente a:

\[ H_1:\text{al menos uno de } \beta_2,\beta_3,\beta_4 \text{ es distinto de cero} \]

Ver código en R
library(olsrr)

ols_anova(mod_tejados)
                                 ANOVA                                  
-----------------------------------------------------------------------
                  Sum of                                               
                 Squares        DF    Mean Square       F         Sig. 
-----------------------------------------------------------------------
Regression    176732.665         3      58910.888    654.059    0.0000 
Residual        1981.534        22         90.070                      
Total         178714.198        25                                     
-----------------------------------------------------------------------

Ejemplo 1: Interpretación de la prueba global

La prueba F global evalúa si el modelo con gastos, clientes y marcas mejora el ajuste respecto a un modelo con solo intercepto.

A partir de la tabla ANOVA:

  • la variabilidad explicada por la regresión se compara con la variabilidad residual;
  • el estadístico observado es \(F_{obs} = 654.06\), con \(gl_1 = 3\) y \(gl_2 = 22\);
  • el valor-p asociado es <2e-16.

Como el valor-p es muy pequeño, se rechaza la hipótesis nula de que las pendientes de gastos, clientes y marcas sean simultáneamente iguales a cero.

Por tanto, la prueba global indica que el conjunto de variables explicativas aporta información para explicar la venta media de tejados.

Antes de revisar coeficientes individuales, el modelo muestra evidencia global de utilidad explicativa.

Distribución de los estimadores

Bajo los supuestos del modelo lineal normal:

\[ \widehat{\boldsymbol{\beta}} \sim N_p \left( \boldsymbol{\beta}, \sigma^2 (X^\top X)^{-1} \right) \]

Por tanto, para cada coeficiente:

\[ \widehat{\beta}_j \sim N \left( \beta_j, \sigma^2 c_{jj} \right) \]

donde \(c_{jj}\) es el elemento diagonal \(j\) de la matriz:

\[ (X^\top X)^{-1} \]

Esta distribución permite construir pruebas de hipótesis e intervalos de confianza para los coeficientes.

Error estándar de los coeficientes

Como \(\sigma^2\) es desconocida, se estima mediante:

\[ \widehat{\sigma}^2 = \frac{SQRes}{n-p} \]

Entonces:

\[ \widehat{Var}(\widehat{\beta}_j) = \widehat{\sigma}^2 c_{jj} \]

y el error estándar estimado es:

\[ \widehat{SE}(\widehat{\beta}_j) = \sqrt{ \widehat{\sigma}^2 c_{jj} } \]

Este error estándar mide la incertidumbre asociada a la estimación de \(\beta_j\).

Pruebas individuales para coeficientes

Para evaluar un coeficiente individual, se plantea una hipótesis nula de igualdad:

\[ H_0:\beta_j=\beta_{j0} \]

La hipótesis alternativa puede ser bilateral o unilateral:

\[ H_1:\beta_j \neq \beta_{j0} \qquad H_1:\beta_j > \beta_{j0} \qquad H_1:\beta_j < \beta_{j0} \]

El estadístico de prueba es:

\[ t= \frac{\widehat{\beta}_j-\beta_{j0}} {\widehat{SE}(\widehat{\beta}_j)} \]

Bajo \(H_0\): \(t \sim t_{n-p}\)

Cuando el valor hipotético es \(\beta_{j0}=0\), el estadístico se reduce a:

\[ t= \frac{\widehat{\beta}_j} {\widehat{SE}(\widehat{\beta}_j)} \]

En regresión, este caso es frecuente porque permite evaluar si la variable asociada al coeficiente aporta información al modelo, manteniendo constantes las demás variables.

Ejemplo 1: Pruebas individuales para coeficientes

Para el modelo de venta de tejados, se evalúa individualmente cada coeficiente asociado a las variables explicativas.

En el caso usual, para cada variable se contrasta:

\[ H_0:\beta_j=0 \]

frente a:

\[ H_1:\beta_j \neq 0 \]

Ver código en R
summary(mod_tejados)$coefficients
              Estimate Std. Error    t value     Pr(>|t|)
(Intercept) 179.844285 12.6213290  14.249235 1.373950e-12
gastos        1.677243  1.0520933   1.594196 1.251589e-01
clientes      3.369392  0.1432307  23.524241 4.371281e-17
marcas      -21.216510  0.7772988 -27.295179 1.842109e-18

La tabla presenta, para cada coeficiente, la estimación, su error estándar, el estadístico t y el valor-p asociado.

Ejemplo 1: Interpretación de las pruebas individuales

A partir de la salida del modelo, usando un nivel de significancia de \(\alpha=0.05\):

  • Para gastos, el valor-p es 0.1252. Como 0.1252 > 0.05, no se rechaza \(H_0:\beta_2=0\). No hay evidencia estadística suficiente para afirmar que gastos aporte individualmente al modelo, manteniendo constantes clientes y marcas.

  • Para clientes, el valor-p es 4.37e-17. Como 4.37e-17 < 0.05, se rechaza \(H_0:\beta_3=0\). Existe evidencia estadística de que clientes aporta individualmente al modelo, manteniendo constantes gastos y marcas.

  • Para marcas, el valor-p es 1.84e-18. Como 1.84e-18 < 0.05, se rechaza \(H_0:\beta_4=0\). Existe evidencia estadística de que marcas aporta individualmente al modelo, manteniendo constantes gastos y clientes.

Ejemplo 1: Lectura conjunta

La prueba global indicó que el conjunto de variables explicativas aporta información para explicar telhados.

Las pruebas individuales muestran que:

  • clientes tiene un coeficiente estimado positivo (3.3694) y evidencia estadística individual clara;
  • marcas tiene un coeficiente estimado negativo (-21.2165) y evidencia estadística individual clara;
  • gastos tiene un coeficiente estimado positivo (1.6772), pero no presenta evidencia estadística individual al nivel 0.05.

Por tanto, dentro del modelo ajustado, el aporte individual más claro corresponde a clientes y marcas.

La interpretación sigue siendo condicional al modelo múltiple: cada coeficiente se evalúa manteniendo constantes las demás variables incluidas.

Intervalos de confianza para coeficientes

A partir de la distribución t del estadístico:

\[ \frac{\widehat{\beta}_j-\beta_j} {\widehat{SE}(\widehat{\beta}_j)} \sim t_{n-p} \]

un intervalo de confianza al nivel \(1-\alpha\) para \(\beta_j\) es:

\[ \widehat{\beta}_j \pm t_{1-\alpha/2,n-p} \widehat{SE}(\widehat{\beta}_j) \]

El intervalo resume el rango de valores plausibles para el coeficiente \(\beta_j\) bajo el modelo ajustado.

Interpretación de los intervalos

El intervalo de confianza permite evaluar la magnitud y precisión de la estimación.

Para un coeficiente \(\beta_j\):

  • intervalos estrechos indican mayor precisión;
  • intervalos amplios indican mayor incertidumbre;
  • si el intervalo contiene cero, el efecto estimado puede ser compatible con ausencia de efecto lineal;
  • si el intervalo no contiene cero, hay evidencia contra \(H_0:\beta_j=0\) al nivel correspondiente.

La interpretación debe considerar la escala de la variable y el contexto del problema.

Ejemplo 1: Intervalos de confianza para coeficientes

Ver código en R
confint(mod_tejados, level = 0.95)
                 2.5 %     97.5 %
(Intercept) 153.669251 206.019319
gastos       -0.504665   3.859151
clientes      3.072350   3.666435
marcas      -22.828529 -19.604491

Los intervalos se construyen al 95% de confianza para los coeficientes del modelo ajustado:

  • Para gastos, el intervalo es aproximadamente \([-0.505,\ 3.859]\).
    Esto indica que, manteniendo constantes clientes y marcas, el efecto medio de un aumento de mil dólares en gastos de promoción podría estar entre una disminución de 0.505 y un aumento de 3.859 miles de m² de tejados vendidos. Como el intervalo incluye cero, no hay evidencia clara de un efecto lineal individual de gastos.

  • Para clientes, el intervalo es aproximadamente \([3.072,\ 3.666]\).
    Esto indica que, manteniendo constantes gastos y marcas, por cada mil clientes registrados adicionales, la venta media de tejados aumenta entre 3.072 y 3.666 miles de m².

  • Para marcas, el intervalo es aproximadamente \([-22.828,\ -19.605]\).
    Esto indica que, manteniendo constantes gastos y clientes, por cada marca competidora adicional, la venta media de tejados disminuye entre 19.605 y 22.828 miles de m².

Los intervalos de clientes y marcas no contienen cero, mientras que el intervalo de gastos sí lo contiene.

Hipótesis lineal general

Además de probar coeficientes individuales, puede ser necesario evaluar hipótesis simultáneas sobre varios coeficientes.

Una hipótesis lineal general puede escribirse como:

\[ H_0:R\boldsymbol{\beta}=\mathbf{r} \]

frente a:

\[ H_1:R\boldsymbol{\beta}\neq\mathbf{r} \]

donde:

  • \(R\): matriz que define las hipótesis lineales;
  • \(\boldsymbol{\beta}\): vector de parámetros del modelo;
  • \(\mathbf{r}\): vector de valores hipotéticos;
  • \(q\): número de hipótesis lineales independientes.

Si el modelo tiene \(p\) parámetros, entonces \(R\) es una matriz de dimensión \(q \times p\).

Ejemplo: exclusión conjunta de variables

Suponga el modelo con vector de parámetros:

\[ \boldsymbol{\beta} = (\beta_1,\beta_2,\beta_3,\beta_4)^\top \]

Si se desea probar:

\[ H_0:\beta_2=\beta_3=0 \]

entonces esta hipótesis puede escribirse como:

\[ H_0: \begin{pmatrix} 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0 \end{pmatrix} \begin{pmatrix} \beta_1\\ \beta_2\\ \beta_3\\ \beta_4 \end{pmatrix} = \begin{pmatrix} 0\\ 0 \end{pmatrix} \]

En este caso, la matriz \(R\) selecciona los coeficientes que se desea evaluar conjuntamente.

Ejemplo: igualdad entre coeficientes

Si se desea probar que dos efectos son iguales:

\[ H_0:\beta_2=\beta_3 \]

la hipótesis se reescribe como:

\[ H_0:\beta_2-\beta_3=0 \]

Por tanto:

\[ H_0: \begin{pmatrix} 0 & 1 & -1 & 0 \end{pmatrix} \begin{pmatrix} \beta_1\\ \beta_2\\ \beta_3\\ \beta_4 \end{pmatrix} = 0 \]

Aquí, la matriz \(R\) no selecciona coeficientes por separado, sino que construye una diferencia entre ellos.

Ejemplo: combinación lineal de coeficientes

Si se desea probar:

\[ H_0:\beta_2+\beta_3=1 \]

entonces:

\[ H_0: \begin{pmatrix} 0 & 1 & 1 & 0 \end{pmatrix} \begin{pmatrix} \beta_1\\ \beta_2\\ \beta_3\\ \beta_4 \end{pmatrix} = 1 \]

En este caso:

\[ R= \begin{pmatrix} 0 & 1 & 1 & 0 \end{pmatrix}, \qquad \mathbf{r}=1 \]

La matriz \(R\) permite representar combinaciones lineales de los coeficientes, no solo exclusión de variables.

Ejemplo: varias restricciones simultáneas

Suponga el modelo con vector de parámetros:

\[ \boldsymbol{\beta} = (\beta_1,\beta_2,\beta_3,\beta_4)^\top \]

Si se desea probar simultáneamente:

\[ H_0: \begin{cases} \beta_2=\beta_3 \\ \beta_4=0 \end{cases} \]

entonces se reescribe como:

\[ H_0: \begin{cases} \beta_2-\beta_3=0 \\ \beta_4=0 \end{cases} \]

y puede expresarse matricialmente como:

\[ H_0: \begin{pmatrix} 0 & 1 & -1 & 0\\ 0 & 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} \beta_1\\ \beta_2\\ \beta_3\\ \beta_4 \end{pmatrix} = \begin{pmatrix} 0\\ 0 \end{pmatrix} \]

Aquí, la matriz \(R\) representa dos restricciones lineales independientes evaluadas de manera conjunta.

Hipótesis lineal general y modelos anidados

La hipótesis lineal general permite comparar modelos anidados.

El modelo completo no impone la hipótesis:

\[ R\boldsymbol{\beta}=\mathbf{r} \]

El modelo reducido corresponde al modelo ajustado bajo:

\[ H_0:R\boldsymbol{\beta}=\mathbf{r} \]

La comparación evalúa si imponer la hipótesis lineal produce una pérdida importante de ajuste.

Si la pérdida es pequeña, el modelo reducido puede ser suficiente; si la pérdida es grande, el modelo completo aporta información adicional.

Prueba F para la hipótesis lineal general

Para comparar el modelo reducido con el modelo completo se usa:

\[ F= \frac{ (SQRes_R-SQRes_C)/(p_C-p_R) }{ SQRes_C/(n-p_C) } \]

donde:

  • \(SQRes_R\): suma de cuadrados residual del modelo reducido, ajustado bajo \(H_0\);
  • \(SQRes_C\): suma de cuadrados residual del modelo completo;
  • \(p_R\): número de parámetros del modelo reducido;
  • \(p_C\): número de parámetros del modelo completo.

Bajo \(H_0\):

\[ F\sim F_{p_C-p_R,\ n-p_C} \]

Lectura de la prueba

La hipótesis nula plantea que la hipótesis lineal general es compatible con los datos.

El numerador mide la pérdida promedio de ajuste al imponer \(H_0\):

\[ SQRes_R-SQRes_C \]

El denominador corresponde al cuadrado medio residual del modelo completo:

\[ \frac{SQRes_C}{n-p_C} \]

Si el estadístico \(F\) es grande y el valor-p es pequeño, se rechaza \(H_0\).

En ese caso, la hipótesis lineal planteada no es compatible con el modelo ajustado.

Si no se rechaza \(H_0\), el modelo reducido puede considerarse suficiente desde el punto de vista inferencial. Esta lógica será importante más adelante para selección de modelos.

Ejemplo 1: Hipótesis lineal simultánea

Consideremos el modelo completo:

\[ Y_i = \beta_1 + \beta_2 gastos_i + \beta_3 clientes_i + \beta_4 marcas_i + \beta_5 potencial_i + \varepsilon_i \]

Se desea evaluar si gastos y potencial aportan información adicional al modelo, una vez consideradas clientes y marcas.

La hipótesis simultánea es:

\[ H_0: \begin{cases} \beta_2=0 \\ \beta_5=0 \end{cases} \]

frente a:

\[ H_1:\text{al menos una de las dos restricciones no se cumple} \]

Esta hipótesis es razonable porque evalúa conjuntamente dos variables comerciales cuyo aporte podría ser débil después de controlar por clientes registrados y marcas competidoras.

Ejemplo 1: Forma matricial de la hipótesis

La hipótesis puede escribirse como:

\[ H_0:R\boldsymbol{\beta}=\mathbf{r} \]

donde:

\[ \boldsymbol{\beta} = \begin{pmatrix} \beta_1\\ \beta_2\\ \beta_3\\ \beta_4\\ \beta_5 \end{pmatrix} \]

y:

\[ R= \begin{pmatrix} 0 & 1 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 1 \end{pmatrix}, \qquad \mathbf{r} = \begin{pmatrix} 0\\ 0 \end{pmatrix} \]

La primera fila de \(R\) selecciona el coeficiente de gastos.

La segunda fila de \(R\) selecciona el coeficiente de potencial.

Por tanto, se evalúan dos restricciones lineales simultáneamente.

Ejemplo 1: Modelo completo y modelo reducido

El modelo completo es:

\[ Y_i = \beta_1 + \beta_2 gastos_i + \beta_3 clientes_i + \beta_4 marcas_i + \beta_5 potencial_i + \varepsilon_i \]

Bajo \(H_0:\beta_2=\beta_5=0\), el modelo reducido queda:

\[ Y_i = \beta_1 + \beta_3 clientes_i + \beta_4 marcas_i + \varepsilon_i \]

La prueba compara si el modelo completo mejora suficientemente el ajuste respecto al modelo reducido.

Ejemplo 1: Modelo reducido

Bajo la hipótesis nula, se ajusta el modelo reducido:

\[ Y_i = \beta_1 + \beta_3 clientes_i + \beta_4 marcas_i + \varepsilon_i \]

Ver código en R
mod_reducido <- lm(
  telhados ~ clientes + marcas,
  data = vendas
)

summary(mod_reducido)

Call:
lm(formula = telhados ~ clientes + marcas, data = vendas)

Residuals:
     Min       1Q   Median       3Q      Max 
-18.4136  -6.1499  -0.5683   6.2472  20.3185 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 186.6940    12.2587   15.23 1.66e-13 ***
clientes      3.4081     0.1458   23.37  < 2e-16 ***
marcas      -21.1930     0.8028  -26.40  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 9.803 on 23 degrees of freedom
Multiple R-squared:  0.9876,    Adjusted R-squared:  0.9866 
F-statistic: 918.3 on 2 and 23 DF,  p-value: < 2.2e-16

Ejemplo 1: Modelo completo

El modelo completo incorpora gastos y potencial:

\[ Y_i = \beta_1 + \beta_2 gastos_i + \beta_3 clientes_i + \beta_4 marcas_i + \beta_5 potencial_i + \varepsilon_i \]

Ver código en R
mod_completo <- lm(
  telhados ~ gastos + clientes + marcas + potencial,
  data = vendas
)

summary(mod_completo)

Call:
lm(formula = telhados ~ gastos + clientes + marcas + potencial, 
    data = vendas)

Residuals:
     Min       1Q   Median       3Q      Max 
-19.0906  -5.9796   0.8968   6.5667  14.7985 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 178.3203    12.9603  13.759 5.62e-12 ***
gastos        1.8071     1.0810   1.672    0.109    
clientes      3.3178     0.1629  20.368 2.60e-15 ***
marcas      -21.1850     0.7879 -26.887  < 2e-16 ***
potencial     0.3245     0.4678   0.694    0.495    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 9.604 on 21 degrees of freedom
Multiple R-squared:  0.9892,    Adjusted R-squared:  0.9871 
F-statistic: 479.1 on 4 and 21 DF,  p-value: < 2.2e-16

Ejemplo 1: Comparación inicial de modelos

Ver código en R
tabla_modelos <- data.frame(
  Modelo = c("Reducido", "Completo"),
  Variables = c(
    "clientes + marcas",
    "gastos + clientes + marcas + potencial"
  ),
  `Número de parámetros` = c(
    length(coef(mod_reducido)),
    length(coef(mod_completo))
  ),
  `SQRes` = c(
    sum(residuals(mod_reducido)^2),
    sum(residuals(mod_completo)^2)
  )
)

knitr::kable(
  tabla_modelos,
  digits = 4
)
Modelo Variables Número.de.parámetros SQRes
Reducido clientes + marcas 3 2210.442
Completo gastos + clientes + marcas + potencial 5 1937.137

El modelo completo reduce la suma de cuadrados residual respecto al modelo reducido. La prueba F evaluará si esa reducción es suficientemente grande en relación con la variabilidad residual del modelo completo.

Ejemplo 1: Cálculo manual del estadístico F

Se contrasta si gastos y potencial aportan información adicional al modelo con clientes y marcas:

\[ H_0:\beta_2=\beta_5=0 \]

Modelo reducido: telhados ~ clientes + marcas
Modelo completo: telhados ~ gastos + clientes + marcas + potencial

A partir de la comparación de modelos:

\[ SQRes_R = 2210.442, \qquad SQRes_C = 1937.137 \]

\[ p_R=3, \qquad p_C=5, \qquad n=26 \]

Entonces:

\[ F = \frac{(SQRes_R-SQRes_C)/(p_C-p_R)} {SQRes_C/(n-p_C)} = \frac{(2210.442-1937.137)/(5-3)} {1937.137/(26-5)} = \frac{273.305/2}{1937.137/21} = 1.482 \]

Con grados de libertad: \(gl_1=p_C-p_R=2,\qquad gl_2=n-p_C=21\)

El valor-p asociado es: \(p\text{-valor}=0.250\)

Ver código en R
SQRes_R <- sum(residuals(mod_reducido)^2)
SQRes_C <- sum(residuals(mod_completo)^2)

n <- nobs(mod_completo)
p_R <- length(coef(mod_reducido))
p_C <- length(coef(mod_completo))

F_manual <- ((SQRes_R - SQRes_C) / (p_C - p_R)) /
  (SQRes_C / (n - p_C))

p_valor_manual <- pf(
  F_manual,
  df1 = p_C - p_R,
  df2 = n - p_C,
  lower.tail = FALSE
)

data.frame(
  SQRes_reducido = SQRes_R,
  SQRes_completo = SQRes_C,
  F = F_manual,
  gl1 = p_C - p_R,
  gl2 = n - p_C,
  valor_p = p_valor_manual
) |>
  knitr::kable(digits = 4)
SQRes_reducido SQRes_completo F gl1 gl2 valor_p
2210.442 1937.137 1.4814 2 21 0.2501

Ejemplo 1: Contraste usando una función en R

Ver código en R
anova(mod_reducido, mod_completo)
Analysis of Variance Table

Model 1: telhados ~ clientes + marcas
Model 2: telhados ~ gastos + clientes + marcas + potencial
  Res.Df    RSS Df Sum of Sq      F Pr(>F)
1     23 2210.4                           
2     21 1937.1  2    273.31 1.4814 0.2501

La función anova() compara los dos modelos anidados.

Debe producir el mismo estadístico F y el mismo valor-p que el cálculo manual.

Ejemplo 1: Contraste con hipótesis lineal general

Ver código en R
library(car)

linearHypothesis(
  mod_completo,
  c(
    "gastos = 0",
    "potencial = 0"
  )
)

Linear hypothesis test:
gastos = 0
potencial = 0

Model 1: restricted model
Model 2: telhados ~ gastos + clientes + marcas + potencial

  Res.Df    RSS Df Sum of Sq      F Pr(>F)
1     23 2210.4                           
2     21 1937.1  2    273.31 1.4814 0.2501

Esta función contrasta directamente:

\[ H_0: \begin{cases} \beta_2=0 \\ \beta_5=0 \end{cases} \]

Debe coincidir con la comparación entre el modelo reducido y el modelo completo.

Ejemplo 1: Lectura del contraste

La prueba evalúa si gastos y potencial, considerados simultáneamente, mejoran el modelo que ya contiene clientes y marcas.

La hipótesis evaluada fue:

\[ H_0:\beta_2=\beta_5=0 \]

El estadístico obtenido fue:

\[ F=1.482 \]

con grados de libertad:

\[ gl_1=2, \qquad gl_2=21 \]

y valor-p:

\[ p\text{-valor}=0.250 \]

Como:

\[ 0.250 > 0.05 \]

no se rechaza \(H_0\) al nivel de significancia de 5%.

Por tanto, no se encuentra evidencia estadística suficiente para afirmar que gastos y potencial mejoren conjuntamente el ajuste del modelo, una vez incluidas clientes y marcas.

Nueva observación y vector de covariables

Suponga una nueva observación que no pertenece a la muestra.

Sus valores para las variables explicativas se representan por:

\[ \mathbf{z} = (z_1,z_2,\ldots,z_p)^\top \]

En el modelo lineal normal:

\[ Y(\mathbf{z}) = \mathbf{z}^\top\boldsymbol{\beta} + \varepsilon(\mathbf{z}) \]

Por tanto:

\[ E\{Y(\mathbf{z})\} = \mu(\mathbf{z}) = \mathbf{z}^\top\boldsymbol{\beta} \]

y su estimador es:

\[ \widehat{\mu}(\mathbf{z}) = \mathbf{z}^\top\widehat{\boldsymbol{\beta}} \]

Intervalos y bandas

Para una nueva observación con covariables \(\mathbf{z}\), se pueden construir resultados puntuales o simultáneos.

Resultado Cobertura
Intervalo Un valor específico de \(\mathbf{z}\)
Banda Un conjunto de valores de \(\mathbf{z}\)

Un intervalo responde a una pregunta puntual.

Una banda responde a una pregunta simultánea sobre varios valores de \(\mathbf{z}\).

Por eso, una banda suele ser más amplia que un intervalo puntual.

Valor esperado y nueva observación

También debe distinguirse entre estimar el valor esperado y predecir una nueva observación.

Objetivo Cantidad
Valor esperado \(\mu(\mathbf{z})=E\{Y(\mathbf{z})\}\)
Nueva observación \(Y(\mathbf{z})\)

Para el valor esperado se considera la incertidumbre asociada a la estimación de \(\mu(\mathbf{z})\).

Para una nueva observación se incorpora, además, la variabilidad aleatoria de \(\varepsilon(\mathbf{z})\).

Por ello, los intervalos y bandas de predicción son más amplios.

Varianza del estimador en \(\mathbf{z}\)

Como:

\[ \widehat{\mu}(\mathbf{z}) = \mathbf{z}^\top\widehat{\boldsymbol{\beta}} \]

se tiene:

\[ Var\{\widehat{\mu}(\mathbf{z})\} = \sigma^2 \mathbf{z}^\top (X^\top X)^{-1} \mathbf{z} \]

Como \(\sigma^2\) es desconocida, se reemplaza por:

\[ s^2=\frac{SQRes}{n-p} \]

Entonces:

\[ \widehat{Var}\{\widehat{\mu}(\mathbf{z})\} = s^2 \mathbf{z}^\top (X^\top X)^{-1} \mathbf{z} \]

Intervalo de confianza para el valor esperado

Un intervalo de confianza de nivel \(1-\alpha\) para:

\[ \mu(\mathbf{z})=E\{Y(\mathbf{z})\} \]

es:

\[ \widehat{\mu}(\mathbf{z}) \pm t_{1-\alpha/2,n-p} s \left\{ \mathbf{z}^\top (X^\top X)^{-1} \mathbf{z} \right\}^{1/2} \]

Este intervalo se construye para un valor específico de \(\mathbf{z}\).

Cuantifica la incertidumbre asociada a estimar el valor esperado de la respuesta en ese punto.

Intervalo de predicción

Para una nueva observación individual:

\[ Y(\mathbf{z}) = \mathbf{z}^\top\boldsymbol{\beta} + \varepsilon(\mathbf{z}) \]

el intervalo de predicción de nivel \(1-\alpha\) es:

\[ \widehat{\mu}(\mathbf{z}) \pm t_{1-\alpha/2,n-p} s \left\{ 1+ \mathbf{z}^\top (X^\top X)^{-1} \mathbf{z} \right\}^{1/2} \]

El término adicional \(1\) incorpora la variabilidad propia de una nueva observación.

Por eso, este intervalo es más amplio que el intervalo para el valor esperado.

Intervalo de confianza vs. intervalo de predicción

Para un mismo vector \(\mathbf{z}\):

Objetivo Expresión de incertidumbre
Valor esperado \(s\left\{\mathbf{z}^\top(X^\top X)^{-1}\mathbf{z}\right\}^{1/2}\)
Nueva observación \(s\left\{1+\mathbf{z}^\top(X^\top X)^{-1}\mathbf{z}\right\}^{1/2}\)

La diferencia está en el término adicional \(1\).

Ese término aparece solo cuando se predice una observación individual.

Banda de confianza para el valor esperado

Una banda de confianza cubre simultáneamente el valor esperado:

\[ \mu(\mathbf{z})=E\{Y(\mathbf{z})\} \]

para un conjunto de valores de \(\mathbf{z}\).

La banda de confianza de nivel \(1-\alpha\) es:

\[ \widehat{\mu}(\mathbf{z}) \pm \sqrt{c_\alpha}\, s \left\{ \mathbf{z}^\top (X^\top X)^{-1} \mathbf{z} \right\}^{1/2} \]

donde \(c_\alpha\) se obtiene de:

\[ P\{F_{p,n-p}\leq c_\alpha\}=1-\alpha \]

es decir, \(c_\alpha\) es el cuantil \(1-\alpha\) de una distribución F con \(p\) y \(n-p\) grados de libertad.

A diferencia del intervalo, la banda controla la incertidumbre simultáneamente para varios valores de \(\mathbf{z}\).

Banda de predicción

La banda de predicción cubre simultáneamente nuevas observaciones:

\[ Y(\mathbf{z}) \]

para un conjunto de valores de \(\mathbf{z}\).

La banda de predicción de nivel \(1-\alpha\) es:

\[ \widehat{\mu}(\mathbf{z}) \pm \sqrt{c_\alpha}\, s \left\{ 1+ \mathbf{z}^\top (X^\top X)^{-1} \mathbf{z} \right\}^{1/2} \]

La banda de predicción es más amplia que la banda de confianza porque incorpora la variabilidad individual de nuevas observaciones.

Caso de regresión lineal simple

En regresión lineal simple, para una nueva observación con valor explicativo \(z\):

\[ \mathbf{z}^\top (X^\top X)^{-1} \mathbf{z} = \frac{1}{n} + \frac{(z-\bar{x})^2}{S_{xx}} \]

donde:

\[ S_{xx} = \sum_{i=1}^{n} (x_i-\bar{x})^2 \]

Por tanto, la incertidumbre aumenta cuando \(z\) se aleja de \(\bar{x}\).

Esto explica por qué los intervalos y bandas se ensanchan hacia los extremos del rango observado de la variable explicativa.

Ejemplo 1: Modelo simple para ilustrar intervalos y bandas

Para visualizar la diferencia entre intervalos y bandas, se usa el modelo lineal simple entre telhados y clientes:

\[ Y_i=\beta_1+\beta_2 clientes_i+\varepsilon_i \]

donde:

  • telhados: venta de tejados, en miles de m²;
  • clientes: número de clientes registrados, en miles.
Ver código en R
mod_simple <- lm(
  telhados ~ clientes,
  data = vendas
)

summary(mod_simple)

Call:
lm(formula = telhados ~ clientes, data = vendas)

Residuals:
     Min       1Q   Median       3Q      Max 
-102.180  -35.661    1.311   38.032  102.350 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -71.2084    40.5584  -1.756   0.0919 .  
clientes      4.6564     0.7555   6.164 2.28e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 53.69 on 24 degrees of freedom
Multiple R-squared:  0.6128,    Adjusted R-squared:  0.5967 
F-statistic: 37.99 on 1 and 24 DF,  p-value: 2.282e-06

Este modelo permite representar gráficamente la recta ajustada, los intervalos puntuales y las bandas.

Ejemplo 1: Intervalos para una nueva filial

Para una nueva filial que no pertenece a la muestra, se considera:

\[ z=60 \]

es decir, clientes = 60 miles de clientes registrados.

Ver código en R
nuevo <- data.frame(clientes = 60)

ic_60 <- predict(
  mod_simple,
  newdata = nuevo,
  interval = "confidence",
  level = 0.95
)

ip_60 <- predict(
  mod_simple,
  newdata = nuevo,
  interval = "prediction",
  level = 0.95
)

tabla_60 <- data.frame(
  Resultado = c(
    "Intervalo de confianza",
    "Intervalo de predicción"
  ),
  Objetivo = c(
    "Valor esperado de telhados",
    "Nueva filial individual"
  ),
  Estimacion = c(ic_60[1, "fit"], ip_60[1, "fit"]),
  LI = c(ic_60[1, "lwr"], ip_60[1, "lwr"]),
  LS = c(ic_60[1, "upr"], ip_60[1, "upr"])
)

knitr::kable(
  tabla_60,
  digits = 2,
  col.names = c(
    "Resultado",
    "Objetivo",
    "Estimación",
    "Límite inferior",
    "Límite superior"
  )
)
Resultado Objetivo Estimación Límite inferior Límite superior
Intervalo de confianza Valor esperado de telhados 208.18 183.00 233.35
Intervalo de predicción Nueva filial individual 208.18 94.53 321.82

Los intervalos se interpretan solo para el valor específico clientes = 60.

Ejemplo 1: Lectura de los intervalos

Para clientes = 60, el intervalo de confianza responde:

¿Cuál es el rango plausible para el valor esperado de telhados en filiales con 60 mil clientes registrados?

El intervalo de predicción responde:

¿Cuál es el rango plausible para la venta de una nueva filial individual con 60 mil clientes registrados?

Ambos usan la misma estimación puntual, pero no tienen la misma interpretación.

El intervalo de predicción es más amplio porque incorpora la variabilidad individual de una nueva filial.

Ejemplo 1: Cálculo de bandas simultáneas

Para construir una banda, ya no se trabaja con un único valor de clientes.

Se evalúa el modelo sobre una grilla de valores dentro del rango observado de clientes.

Ver código en R
grid_clientes <- data.frame(
  clientes = seq(
    min(vendas$clientes),
    max(vendas$clientes),
    length.out = 100
  )
)

X <- model.matrix(mod_simple)
X0 <- model.matrix(~ clientes, data = grid_clientes)

beta_hat <- coef(mod_simple)
s <- summary(mod_simple)$sigma

n <- nobs(mod_simple)
p <- length(beta_hat)
alpha <- 0.05

c_alpha <- qf(
  1 - alpha,
  df1 = p,
  df2 = n - p
)

fit <- as.vector(X0 %*% beta_hat)

h0 <- rowSums((X0 %*% solve(t(X) %*% X)) * X0)

band_data <- data.frame(
  clientes = grid_clientes$clientes,
  fit = fit,
  bc_lwr = fit - sqrt(c_alpha) * s * sqrt(h0),
  bc_upr = fit + sqrt(c_alpha) * s * sqrt(h0),
  bp_lwr = fit - sqrt(c_alpha) * s * sqrt(1 + h0),
  bp_upr = fit + sqrt(c_alpha) * s * sqrt(1 + h0)
)

La banda se construye para representar una región sobre un conjunto de valores de clientes.

Ejemplo 1: Banda de confianza

Ver código en R
ggplot(vendas, aes(x = clientes, y = telhados)) +
  geom_point() +
  geom_ribbon(
    data = band_data,
    aes(x = clientes, ymin = bc_lwr, ymax = bc_upr),
    inherit.aes = FALSE,
    alpha = 0.25
  ) +
  geom_line(
    data = band_data,
    aes(x = clientes, y = fit),
    inherit.aes = FALSE
  ) +
  labs(
    x = "Clientes registrados",
    y = "Tejados vendidos",
    title = "Banda de confianza para el valor esperado"
  )

La región sombreada representa la banda de confianza para el valor esperado de telhados.

Ejemplo 1: Lectura de la banda de confianza

La banda de confianza no se interpreta para un único valor de clientes.

Se interpreta sobre todo el rango de valores de clientes considerado en la gráfica.

La pregunta que responde es:

¿En qué región plausible se ubica la relación esperada entre clientes y telhados?

Por tanto, la banda de confianza se refiere a la recta esperada, no a una filial individual.

Ejemplo 1: Banda de predicción

Ver código en R
ggplot(vendas, aes(x = clientes, y = telhados)) +
  geom_point() +
  geom_ribbon(
    data = band_data,
    aes(x = clientes, ymin = bp_lwr, ymax = bp_upr),
    inherit.aes = FALSE,
    alpha = 0.25
  ) +
  geom_line(
    data = band_data,
    aes(x = clientes, y = fit),
    inherit.aes = FALSE
  ) +
  labs(
    x = "Clientes registrados",
    y = "Tejados vendidos",
    title = "Banda de predicción para nuevas filiales"
  )

La región sombreada representa la banda de predicción para nuevas filiales individuales.

Ejemplo 1: Lectura de la banda de predicción

La banda de predicción se interpreta sobre el rango de valores de clientes considerado.

La pregunta que responde es:

¿En qué región plausible podrían ubicarse nuevas filiales individuales?

Esta banda es más amplia que la banda de confianza porque incorpora la variabilidad propia de una nueva observación.

En resumen:

Resultado Se presenta como Interpretación
Intervalo Tabla para un valor específico Lectura puntual
Banda Región sombreada Lectura simultánea sobre un rango
Confianza Valor esperado Relación esperada
Predicción Nueva observación Filial individual

Referencias

Agresti, A. (2015). Foundations of linear and generalized linear models. Wiley.
Blitzstein, J. K., & Hwang, J. (2019). Introduction to probability (2nd ed.). Chapman; Hall/CRC.
Casella, G., & Berger, R. L. (2002). Statistical inference (2nd ed.). Duxbury.
DeGroot, M. H., & Schervish, M. J. (2012). Probability and statistics (4th ed.). Pearson.
Dobson, A. J., & Barnett, A. G. (2018). An introduction to generalized linear models (4th ed.). Chapman; Hall/CRC.
Faraway, J. J. (2016). Extending the linear model with R: Generalized linear, mixed effects and nonparametric regression models (2nd ed.). Chapman; Hall/CRC.
Hogg, R. V., McKean, J. W., & Craig, A. T. (2019). Introduction to mathematical statistics (8th ed.). Pearson.
Larsen, R. J., & Marx, M. L. (2008). An introduction to mathematical statistics and its applications (4th ed.). Pearson.
McCullagh, P., & Nelder, J. A. (1989). Generalized linear models (2nd ed.). Chapman; Hall.
Pawitan, Y. (2001). In all likelihood: Statistical modelling and inference using likelihood. Oxford University Press.
Pitman, J. (1993). Probability. Springer.
Rice, J. A. (2006). Mathematical statistics and data analysis (3rd ed.). Duxbury Press.
Ross, S. (2014). A first course in probability (9th ed.). Pearson.
Wackerly, D. D., Mendenhall, W., & Scheaffer, R. L. (2008). Mathematical statistics with applications (7th ed.). Thomson Brooks/Cole.
Weisberg, S. (2014). Applied linear regression (4th ed.). Wiley.