# opts_chunk$set(echo=FALSE, warning=FALSE, error=FALSE, message=FALSE)

PRESENTACIÓN DEL CURSO

EVALUACIÓN

  • 2 Exámenes parciales 25%

    • 1o. cuando acabemos regresión lineal simple.

    • 2o. cuando acabemos regresión lineal múltiple.

  • 1 Proyecto (acumulativo) 5%

    • 3 entregas.

    • Se evaluará: forma y fondo (fondo sobre forma).

  • Tareas: 15%

  • Examen final: 30%

  • Formulario: proyecto grupal. No tiene valor para la calificación. Sujeto a veto por el profesor.

CRITERIOS Y POLÍTICAS

  • El canal primario de comunicación entre nosotros será la Bandeja de Entrada de Canvas. Por favor, estén atentos también a la sección de Anuncios.

  • La asistencia no es obligatoria, pero les recomiendo enfáticamente que asistan a clase. No hay un sustituto claro para el aprendizaje activo. Aprovéchenlo.

  • Como cualquier materia, se espera que ustedes hagan una gran parte del trabajo por su cuenta (fuera de clase). Una parte de este trabajo es previo a la clase, revisando el material propuesto para cada tema. Otra parte, también muy importante, es el trabajo posterior a la clase (repaso y tareas).

    • Una buena regla “de dedo” es realizar, al menos, el mismo número de ejercicios que los realizados en clase y en las tareas de manera independiente.

    • Hagan y entreguen las tareas. La experiencia señala claramente que quienes hacen el trabajo son los que obtienen resultados sobresalientes.

  • Sobre las calificaciones:

    • Calificaciones parciales (exámenes y tareas) no se redondean. La calificación final sí.

    • El redondeo es estricto, no hay negociaciones.

    • Acorde al Art. 27 del Reglamento de Alumnos, es condición necesaria aprobar el examen final.

    • La calificación del examen final no se redondea. Calificaciones menores a 6 (estricto) son reprobatorias.

  • En la calificación de los exámenes se evaluará (en la medida de lo posible): 1) planteamiento, 2) desarrollo y 3) resultado. El resultado correcto puede resultar en una valoración positiva; un resultado incorrecto, pero con buen planteamiento o desarrollo, puede aportar puntos; resultados incorrectos, sin planteamiento o desarrollo claros no permiten valoración alguna.

  • El estándar para la presentación de resultados será a 4 decimales.

Material adicional

BIBLIOGRAFÍA BÁSICA

  • Kutner et al. (2004)
  • Weisberg (2005)
  • Draper and Smith (1966)
  • Mendenhall and Sincich (1996)
  • Eaton (2007)
  • Shalizi (2024)

Desde luego, estos apuntes que están basados en las fuentes referenciadas y en mis propios apuntes de la materia con base en el curso impartido por el Dr. Alberto Tubilla Estefan en el semestre de enero a mayo del 2000.

Para la bibliografía completa, consulta la sección de referencias.

SOFTWARE

Para el desarrollo de ejemplos, tareas y proyectos yo usaré R.

En particular estas notas fueron desarrolladas utilizando la versión 4.5.1 de R.

INTRODUCCIÓN

The Guide is definitive. Reality is frequently inaccurate. The Hitchhiker’s Guide to the Galaxy. Douglas Adams.

El nombre de la materia no nos dice mucho, ¿o sí? Bueno, pues en efecto, vamos a tomar algunos de los conceptos aprendidos en Estadística Matemática y vamos a buscar aplicarlos a un contexto específico. Este curso se podría llamar también Análisis de Regresión, que es la técnica que vamos a aprender.

El análisis de regresión es uno de los múltiples métodos de modelado estadístico así que, antes de comenzar a hablar del análisis de regresión revisaremos qué es el modelado estadístico.

MODELADO ESTADÍSTICO

¿Qué es un modelo? Un modelo es una representación de una cosa. Como el modelo no es la cosa en sí, generalmente decimos que es una representación simplificada de la cosa (lo cual puede dar lugar a malas interpretaciones porque un modelo puede estar lejos de ser simple). En ocasiones se dice también que un modelo es una abstracción de la realidad (lo cual nos aleja, probablemente de la simplificación).

El modelo, al no ser la cosa en sí, es claro que omite o modifica aspectos de la cosa modelada. El material, el tamaño, algunas de sus funciones o características, son diferentes a las de la cosa modelada. En este proceso de simplificación es muy probable que se alteren aspectos relevantes respecto del funcionamiento de la cosa real. Si esto sucede, entonces, ¿para qué modelamos?

“Todos los modelos están equivocados, pero algunos son útiles.” - George Box, 1979.

Modelamos por una diversidad de motivos:

  • Para entender mejor algunos aspectos específicos de nuestro objeto de estudio, eliminando el ruido (¿innecesario?) de sus otras características.

  • Para realizar pronósticos sobre el comportamiento futuro de nuestro objeto de estudio.

  • Para entender la interacción de los componentes internos del objeto de estudio.

  • Para entender la interacción del objeto de estudio con elementos ajenos.

Existen diferentes tipos de modelos, desde luego, pero a nosotros nos interesarán en particular los modelos matemáticos. Este tipo de modelos serán, entonces, representaciones matemáticas (abstractas) de cosas. Es decir, utilizaremos conceptos, lenguaje y objetos matemáticos para describir algo (típicamente algo que proviene de la realidad, lo que eso sea).

Distinguiremos ahora a los modelos matemáticos entre determinísticos y estocásticos. Un modelo matemático determinístico representa un aspecto de la realidad en el que no existe incertidumbre (o bien el efecto de la incertidumbre para los fines de nuestro estudio es insignificante), mientras que un modelo estocástico describe objetos cuyo comportamiento es incierto por lo que incorpora en la descripción del objeto una descripción de la incertidumbre asociada a su comportamiento.

Las líneas que separan a un tipo de modelos del otro (hablando de los modelos matemáticos) no siempre es clara, y el investigador o analista tiene que tomar la decisión de que tipo de modelo es el más apropiado (de ahí la importancia de una formación amplia). Es posible entonces que surja la pregunta: si puedo describir algo sin incertidumbre, ¿por qué utilizaríamos un modelo estadístico?

Ejemplo
En la medida de lo posible, para trabajar los ejemplos estaremos utilizando el mismo conjunto de datos a lo largo de estos apuntes. Es difícil encontrar un conjunto de datos que se presten para su adecuado tratamiento en todos los temas, sin embargo procuraremos utilizarlos de manera consistente en parte para ejemplificar problemas que podemos encontrar en la vida real.

Consideremos el siguiente caso. Contamos con 15 observaciones de la ventas y el gasto realizado en promoción en diferentes medios para los mismos periodos. Los datos fueron obtenidos utilizando el paquete datarium (Kassambara 2019) de R. Los datos corresponden al conjunto de datos nombrado como marketing y, de acuerdo con la ayuda del paquete contienen mediciones sobre el impacto de tres diferentes medios de publicidad (Youtube, Facebook y periódico) sobre las ventas. Los datos corresponden 200 registros sobre el presupuesto de publicidad ejercido (en miles de dólares) y las ventas observadas (en millones de dólares).

¿Por qué sería interesante estudiar estos datos? Quizá nos interesa determinar si el gasto realizado valió la pena, a lo mejor nos interesa intentar pronosticar cuáles serían las ventas si aumentamos o disminuimos nuestro gasto en promoción.

data(marketing)

force(marketing)
temp <- marketing[1:15, ]

skimr::skim_tee(temp)
## ── Data Summary ────────────────────────
##                            Values
## Name                       data  
## Number of rows             15    
## Number of columns          4     
## _______________________          
## Column type frequency:           
##   numeric                  4     
## ________________________         
## Group variables            None  
## 
## ── Variable type: numeric ──────────────────────────────────────────────────────
##   skim_variable n_missing complete_rate  mean    sd    p0  p25   p50   p75  p100
## 1 youtube               0             1 130.  98.8  10.3  41.0 117   228.  276. 
## 2 facebook              0             1  30.9 19.7   2.52 11.0  39.4  46.3  58.7
## 3 newspaper             0             1  46.4 31.9   1.2  19.7  54.1  74.6  90  
## 4 sales                 0             1  14.8  5.87  5.76 11.1  12.7  18.4  26.5
##   hist 
## 1 ▇▃▃▃▆
## 2 ▇▂▂▇▅
## 3 ▇▆▂▆▇
## 4 ▂▇▃▂▂
ggplot(data = temp) +
  aes(x = sales) +
  geom_boxplot() +
  theme_classic()

ggplot(data = temp) +
  aes(x = youtube) +
  geom_boxplot() +
  theme_classic()

ggplot(data = temp) +
  aes(x = facebook) +
  geom_boxplot() +
  theme_classic()

ggplot(data = temp) +
  aes(x = newspaper) +
  geom_boxplot() +
  theme_classic()

ggplot(data = temp) +
  aes(x = youtube, y = sales) +
  geom_point() +
  theme_classic() +
  labs(x = 'Youtube', y = 'Ventas')

ggplot(data = temp) +
  aes(x = facebook, y = sales) +
  geom_point() +
  theme_classic() +
  labs(x = 'Facebook', y = 'Ventas')

ggplot(data = temp) +
  aes(x = newspaper, y = sales) +
  geom_point() +
  theme_classic() +
  labs(x = 'Newspaper', y = 'Ventas')

Queremos, entonces, modelar la relación entre estas variables. Vamos a comenzar fijando nuestra atención en el gasto en publicidad en Youtube. Alguien con un conocimiento (rudimentario, incluso) de álgebra, podría sugerir modelarlas mediante un polinomio. De hecho, algo que es relativamente directo de plantear, sería utilizar un polinomio de grado 14.

¿Por qué? ¿Cómo crees que será el ajuste de este modelo a nuestros datos? ¿Cuál sería la representación algebraica de este modelo?

ggplot(data = temp) +
  aes(x = youtube, y = sales) +
  geom_point() +
  geom_smooth(
    method = 'glm', formula = y ~ poly(x, degree = 14, raw = TRUE), se = FALSE
    ) +
  theme_classic()

El ajuste de este modelo a los datos es perfecto pero, ¿es un buen modelo? ¿Por qué?

Es muy probable que tu respuesta haya sido que no es un buen modelo (aunque no tengamos todavía los elementos para decir con conocimiento de causa por qué). Una alternativa sería, entonces, plantear un modelo que tome en cuenta la incertidumbre asociada a la relación entre las variables. Es decir, un modelo estadístico que describa la relación (estocástica) que existe entre las ventas y el gasto en publicidad.

A lo que hicimos con el modelo de la gráfica anterior suele llamársele “sobreajuste” y, aunque en la gran mayoría de los casos es señal de un trabajo de modelado deficiente, es importante tener en cuenta que no siempre es visto como algo negativo. En ocasiones puede ser un aspecto intensionalmente introducido en el diseño del modelo.

Como mucho de lo que veremos en este curso, es algo que ustedes deben aprender a identificar y juzgar como técnicos especialistas.

Un modelo bueno, entonces, no necesariamente es un modelo que se ajusta perfectamente a los datos, sino uno que, además, logra explicar razonablemente bien el fenómeno. En este sentido, el concepto de parsimonia del modelo se vuelve relevante: se busca construir un modelo que no incluya parámetros que no se requieren. Por otro lado, el alcance del modelo es importante. Adicionalmente (conjuntamente), buscamos modelos que sean invariantes, que sean estables ante cambios en las condiciones (en los datos).

Proyecto: análisis exploratorio / descriptivo de los datos del proyecto.


A manera de resumen, entonces, podemos decir que usamos los modelos estadísticos para aprender de un conjunto de datos (aprendizaje estadístico). En este sentido, existen una gran variedad de modelos estadísticos determinados por el objetivo que se persigue en el uso de dichos modelos así como por las técnicas que se emplean en su construcción. En este curso nos centraremos en un tipo de modelos estadísticos: los modelos de regresión lineal.

Material adicional

ANÁLISIS DE REGRESIÓN

El análisis de regresión es una rama de la estadística que desarrolla los métodos y procedimientos para establecer una relación entre una variable \(y\) (conocida como la variable independiente, yo voy a usar el término empleado por Tukey: variable respuesta) y un conjunto de variables \(x_1, x_2, \dots, x_k\) (las variables independientes, predictivas, explicativas o estímulo), que típicamente se pueden controlar o bien se pueden observar aunque no controlar. El objetivo, entonces, es que el comportamiento de la variable \(y\) pueda ser pronosticado mediante la observación de las variables explicativas. En otras palabras, se busca construir un modelo.

Ejemplo
Pensemos que se desea dar un pronóstico de la altura de una persona. Podemos tomar como referencia la altura de un grupo de personas y con base en esa información dar un pronóstico o estimación de la altura de una nueva persona. Sin embargo, es posible mejorar nuestro pronóstico si lo alimentamos con variables relevantes.

¿Puedes nombrar algunas variables que pudieran ayudar a mejorar el pronóstico?

Es decir, podemos mejorar nuestro pronóstico si lo condicionamos a la observación de otras variables que creemos ayudan a explicar la altura de las personas.


Un modelo no es otra cosa que una simplificación de la realidad. En este caso, intentamos modelar el comportamiento de la variable respuesta por medio del comportamiento de las variables explicativas y típicamente nos interesará determinar en qué medida los cambios en las variables explicativas afectan a la variable respuesta. Como toda simplificación, nuestro modelo tendrá un error que, desde luego, buscamos que sea lo menor posible.

La fuente del error de nuestro modelo puede ser muy diversa:

  • errores de medición al recoger las variables explicativas o la variable respuesta;

  • errores en el diseño del modelo (e.g., el modelo no contiene todas las variables relevantes o la forma de nuestro modelo puede no ser la más apropiada);

  • la naturaleza aleatoria inherente a la variable de interés;

  • el desconocimiento de la totalidad de la población de interés.

Aunque considerar la fuente del error puede ser un aspecto muy relevante del proceso de modelado, por lo pronto no nos preocuparemos por ello. Simplemente consideraremos que nuestro modelo explica parcialmente el comportamiento de la variable de interés, aunque muy frecuentemente la última causa será la que más nos ocupe. En principio, lo único que requeriremos es que los errores no estén sistemáticamente correlacionados o sesgados.

Un aspecto de los errores que sí es importante considerar es en relación a la variable explicativa. Dado que normalmente se asume que esta variable es la variable de control, asumiremos que los valores de esta variable no están sujetos a errores de medición. Cuando esto no es así, se pueden observar impactos directos en el modelo estimado (ver Kutner et al. (2004), cap. 4.5).

Recordemos que en estadística el término población no se refiere a un conjunto de personas, sino a un conjunto de datos que nos interesa estudiar. Frecuentemente se da el caso en el que nos es difícil contar con el conjunto de datos completo:

  • porque sería prohibitivamente costoso (en tiempo, dinero o cualquier otro recurso escaso) obtenerlo, o bien

  • porque el conjunto de datos implica aspectos conceptuales difíciles de capturar.

En estos casos, para poder realizar inferencias sobre la población de interés, es necesario recurrir a muestras, subconjuntos de valores de la población. El hecho de que la muestra no contenga toda la información contenida en la población es la fuente de error a la que hacemos referencia más arriba.

En cualquier caso, es importante observar que, para el análisis de regresión, tanto la variable respuesta como las variables explicativas deben ser variables observables. Existen casos en los que nos interesa realizar inferencia sobre la relación existente entre variables observables y variables no observables (latentes) pero para ello es necesario utilizar técnicas especiales fuera del alcance del análisis de regresión.

Entonces, podemos plantear que el análisis de regresión consiste en encontrar la relación estadística entre la variable respuesta y las variables explicativas, representada por la función \(f(\cdot)\) tal que:

\[ y = f(x_1, x_2, \dots, x_k) + \epsilon \]

donde \(\epsilon\) es el error asociado a nuestro modelo, y buscamos que \(\epsilon\) sea lo más pequeño posible.

El análisis de regresión fue desarrollado a finales del siglo XIX por Francis Galton al estudiar la relación entre la altura de padres e hijos y notar que la altura de los hijos tanto de padres altos como bajos de estatura parecía revertirse o regresar a la media del grupo.

El análisis de regresión puede tener tres grandes propósitos (mutuamente no exclusivos):

  • descripción

  • control

  • predicción

Sin embargo, cualquiera que sea el uso que se haga del análisis de regresión, hay que tener particular cuidado con no malinterpretar la relación estadística entre las variables, evidenciada por el modelo de regresión, como una relación de causalidad. Considera por ejemplo el caso del uso de una regresión para determinar la precisión de un termómetro, podemos tomar mediciones del termómetro (variable independiente) y con base en dichas lecturas predecir la temperatura ambiente (predicción que podemos contrastar con otras mediciones para determinar la precisión del termómetro empleado). Bajo ninguna circunstancia podríamos aseverar que el termómetro influye en la temperatura ambiente (causalidad). Para poder establecer una relación que implique causalidad es necesario utilizar otras herramientas.

Para lograr esto haremos uso, desde luego, de conceptos de probabilidad y estadística matemática. Los anexos incluyen secciones relativas a los antecedentes de probabilidad y estadística que serán útiles en las siguientes secciones.

REGRESIÓN LINEAL SIMPLE

Lecturas recomendadas
  • Draper and Smith (1966), cap. 1.

  • Kutner et al. (2004), cap. 1.

  • DeGroot (1988), cap. 10.1.


El modelo de regresión lineal más sencillo involucra una variable respuesta (también llamada variable dependiente) y una variable explicativa (o independiente) y, como su nombre lo indica, la función que modela a la relación entre las variables es la más sencilla posible, una función lineal. El modelo, entonces, adopta la forma siguiente:

\[Y_i = \beta_0 + \beta_1 X_i + \epsilon_i\]

donde:

  • \(Y_i\) es el valor de la i-ésima observación de la variable respuesta.

  • \(X_i\) es el valor de la i-ésima observación de la variable explicativa.

  • \(\beta_0\) y \(\beta_1\) son parámetros de la función de regresión.

  • \(\epsilon_i\) es un error aleatorio.

Este modelo es también conocido como un modelo de primer orden, debido a que es lineal tanto en los parámetros como en la variable explicativa. El orden del modelo hace referencia al máximo exponente observado en las variables explicativas (en este caso, 1). Adicionalmente, decimos que es un modelo de regresión lineal simple porque involucra únicamente una variable respuesta.

Ejemplo (cont.)
En nuestro ejemplo, entonces, queremos ajustar un modelo de regresión lineal simple de primer orden para explicar/modelar la relación que existe entre el gasto de la compañía en publicidad en Youtube y las ventas de la compañía. Podemos entonces trazar una línea que, creemos, modela el comportamiento de los datos.

También, podemos calcular la distancia de las observaciones de las ventas a la línea, con lo que estaríamos calculando el error de nuestro modelo para cada observación.

rl <- lm(formula = sales ~ youtube, data = marketing)

marketing$errores <- rl$residuals

b.0 <- rl$coefficients[1]
b.1 <- rl$coefficients[2]

ggplot(data = marketing) + 
  aes(x = youtube, y = sales) +
  geom_point() +
  theme_classic()

ggplot(data = marketing) + 
  aes(x = youtube, y = sales) +
  geom_point() +
  geom_smooth(method = 'lm', formula = y ~ x, se = FALSE) +
  geom_segment(
    x = marketing$youtube[158]
        , y = b.0 + b.1*marketing$youtube[158]
        , xend = marketing$youtube[158]
        , yend = marketing$sales[158]
    , colour = 'red'
        ) +
  theme_classic()

ggplot(data = marketing) + 
  aes(x = youtube, y = errores) +
  geom_hline(yintercept = mean(marketing$errores), colour = 'black') +
  geom_point() +
  theme_classic()


Sobre el error aleatorio, es importante considerar algunas propiedades que son deseables que cumpla:

  • \(E[\epsilon_i] = 0\). Es decir que, en promedio, el error agregado sea cero, de otro modo el modelo presentaría un sesgo. También de este supuesto es del que debemos el nombre de regresión a la técnica porque hace que, eventualmente, los errores regresen las observaciones a la tendencia media.

  • \(Cov[\epsilon_i, \epsilon_j] = 0 \text{ } \forall i,j \ni i \neq j\). En otras palabras, que no exista correlación entre los errores. Una exigencia más fuerte (pero frecuentemente innecesaria) es la de independencia entre los errores. En cualquier caso, evidencia de correlación entre los errores es generalmente un síntoma de que el modelo está omitiendo alguna variable explicativa relevante.

  • Con frecuencia, también se exige al modelo que \(Var[\epsilon_i]=\sigma^2\), es decir, que los errores tengan varianza constante y conocida. Si bien este supuesto puede ser poco realista, los modelos más sencillos hacen uso de él.

Sobre \(\beta_0\) y \(\beta_1\), se asume que se encuentran fijos para el fenómeno de estudio, aunque desconocidos.

Dado que \(E(\epsilon_i) = 0\), podemos ver que \(E(Y_i|X_i) = \beta_0 + \beta_1 X_i\). Entonces, nuestro objetivo es modelar a \(Y\) mediante la estimación de la relación entre \(E(Y_i|X_i)\) y \(X_i\). Esto lo logramos, consecuentemente, mediante la estimación de los valores de \(\beta_0\) y \(\beta_1\). Es decir, buscamos:

\[\hat{Y_i} = \hat{\beta_0} + \hat{\beta_1} X_i.\]

Donde \(\hat{Y_i}\), \(\hat{\beta_0}\) y \(\hat{\beta_1}\) son los estimadores de \(E(Y_i|X_i)\), \(\beta_0\) y \(\beta_1\), respectivamente. Estos estimadores, idealmente, nos ayudarán a trazar la mejor línea recta posible que se ajuste a nuestros datos. Para ello utilizaremos el método conocido como mínimos cuadrados.

Observa que:

  • En ningún momento afirmamos que la relación verdadera entre X y Y es lineal;

  • tampoco que X es causa de Y.

AJUSTE POR MÍNIMOS CUADRADOS

Supongamos que queremos describir a una variable (respuesta) \(Y_i\) mediante un modelo lineal de primer orden:

\[Y_i = \beta_0 + \beta_1 X_i + \epsilon_i.\]

Consideremos por el momento a la suma del cuadrado de todos los errores de nuestro modelo (i.e., para todas las observaciones), también conocida como la norma \(L_2\):

\[ \begin{aligned} S &= \sum_{i=1}^n \epsilon_i^2\\ &= \sum_{i=1}^n (Y_i - \beta_0 - \beta_1 X_i)^2. \end{aligned} \]

El método de mínimos cuadrados consiste entonces en escoger los valores de \(\beta_0\) y \(\beta_1\) tales que minimizan \(S\). Para ello, entonces, obtendremos la derivada de \(S\) respecto de \(\beta_0\) y \(\beta_1\) y resolvemos para encontrar el punto crítico:

\[ \begin{aligned} \frac{\partial S}{\partial \beta_0} &= -2\sum_{i=1}^n (Y_i - \beta_0 - \beta_1 X_i) \\ -2\sum_{i=1}^n (Y_i - \beta_0 - \beta_1 X_i) &= 0 \\ \sum_{i=1}^n Y_i - \beta_1 \sum_{i=1}^n X_i - n\beta_0 &= 0 \\ \beta_0 &= \frac{\sum_{i=1}^n Y_i - \beta_1 \sum_{i=1}^n X_i}{n}. \end{aligned} \]

Por otro lado:

\[ \begin{aligned} \frac{\partial S}{\partial \beta_1} &= -2\sum_{i=1}^n (X_i)(Y_i - \beta_0 - \beta_1 X_i) \\ -2\sum_{i=1}^n (X_i)(Y_i - \beta_0 - \beta_1 X_i) &= 0 \\ \sum_{i=1}^n X_iY_i - \beta_0 \sum_{i=1}^n X_i - \sum_{i=1}^n \beta_1 X_i^2 &= 0 \\ \beta_0 &= \frac{\sum_{i=1}^n X_iY_i - \sum_{i=1}^n \beta_1 X_i^2}{\sum_{i=1}^n X_i}. \end{aligned} \]

Entonces:

\[ \begin{aligned} \bar{Y} - \beta_1 \bar{X} &= \frac{\sum_{i=1}^n X_iY_i - \beta_1 \sum_{i=1}^n X_i^2}{\sum_{i=1}^n X_i} \\ \bar{Y}\sum_{i=1}^n X_i - \beta_1 \bar{X}\sum_{i=1}^n X_i &= \sum_{i=1}^n X_iY_i - \beta_1 \sum_{i=1}^n X_i^2 \\ \beta_1 \sum_{i=1}^n X_i^2 - \beta_1 \bar{X}\sum_{i=1}^n X_i &= \sum_{i=1}^n X_iY_i - \bar{Y}\sum_{i=1}^n X_i \\ \beta_1 \left[ \sum_{i=1}^n X_i^2 - \bar{X}\sum_{i=1}^n X_i \right] &= \sum_{i=1}^n X_iY_i - \bar{Y}\sum_{i=1}^n X_i \\ \beta_1 \left[ \sum_{i=1}^n X_i^2 - \bar{X}\sum_{i=1}^n X_i \right] &= \sum_{i=1}^n X_iY_i - \frac{\sum_{i=1}^n Y_i\sum_{i=1}^n X_i}{n} \\ &= \frac{\sum_{i=1}^n X_iY_i - \frac{\sum_{i=1}^n Y_i\sum_{i=1}^n X_i}{n}}{\sum_{i=1}^n X_i^2 - \bar{X}\sum_{i=1}^n X_i} \\ &= \frac{\sum_{i=1}^n X_iY_i - \frac{\sum_{i=1}^n Y_i\sum_{i=1}^n X_i}{n}}{\sum_{i=1}^n X_i^2 - \frac{(\sum_{i=1}^n X_i)^2}{n}} \\ &= \frac{\sum_{i=1}^n X_iY_i - \frac{\sum_{i=1}^n Y_i\sum_{i=1}^n X_i}{n}}{\sum_{i=1}^n X_i^2 - n \bar{X}^2}. \end{aligned} \]

Si ahora observamos que:

\[ \begin{aligned} \sum_{i=1}^n (X_i - \bar{X})^2 &= \sum_{i=1}^n (X_i^2 - 2X_i\bar{X} + \bar{X}^2) \\ &= \sum_{i=1}^n X_i^2 - \sum_{i=1}^n 2X_i\bar{X} + \sum_{i=1}^n \bar{X}^2 \\ &= \sum_{i=1}^n X_i^2 - 2 \bar{X} \sum_{i=1}^n X_i + n \bar{X}^2 \\ &= \sum_{i=1}^n X_i^2 - 2 n \bar{X} \frac{\sum_{i=1}^n X_i}{n} + n \bar{X}^2 \\ &= \sum_{i=1}^n X_i^2 - 2 n \bar{X}^2 + n \bar{X}^2 \\ &= \sum_{i=1}^n X_i^2 - n \bar{X}^2 \end{aligned} \]

entonces

\[ \beta_1 = \frac{\sum_{i=1}^n X_iY_i - \frac{\sum_{i=1}^n Y_i\sum_{i=1}^n X_i}{n}}{\sum_{i=1}^n (X_i - \bar{X})^2}. \]

De manera similar, observemos que:

\[ \begin{aligned} \sum_{i=1}^n (X_i - \bar{X})(Y_i - \bar{Y}) &= \sum_{i=1}^n (X_iY_i - X_i\bar{Y} - \bar{X}Y_i + \bar{X}\bar{Y}) \\ &= \sum_{i=1}^n X_iY_i - \sum_{i=1}^n X_i\bar{Y} - \sum_{i=1}^n \bar{X}Y_i + \sum_{i=1}^n \bar{X}\bar{Y} \\ &= \sum_{i=1}^n X_iY_i - n \bar{X}\bar{Y} - n \bar{X}\bar{Y} + n \bar{X}\bar{Y} \\ &= \sum_{i=1}^n X_iY_i - n \bar{X}\bar{Y}. \end{aligned} \]

Entonces:

\[ \begin{aligned} \beta_1 &= \frac{\sum_{i=1}^n X_iY_i - \frac{\sum_{i=1}^n Y_i\sum_{i=1}^n X_i}{n}}{\sum_{i=1}^n (X_i - \bar{X})^2} \\ &= \frac{\sum_{i=1}^n X_iY_i - n \bar{Y}\bar{X}}{\sum_{i=1}^n (X_i - \bar{X})^2} \\ &= \frac{\sum_{i=1}^n (X_i - \bar{X})(Y_i - \bar{Y})}{\sum_{i=1}^n (X_i - \bar{X})^2}. \end{aligned} \]

Tenemos entonces las expresiones para los estimadores de mínimos cuadrados para \(\beta_0\) y \(\beta_1\):

\[ \begin{aligned} \hat{\beta_1} &= \frac{\sum_{i=1}^n (X_i - \bar{X})(Y_i - \bar{Y})}{\sum_{i=1}^n (X_i - \bar{X})^2} \\ &= \frac{\sum_{i=1}^n (X_i - \bar{X})Y_i}{\sum_{i=1}^n (X_i - \bar{X})^2} \end{aligned} \]

y

\[\hat{\beta_0} = \bar{Y} - \hat{\beta_1} \bar{X}.\]

Finalmente, entonces, podemos obtener también los estimadores de mínimos cuadrados para \(Y\) sustituyendo en el modelo lineal:

\[ \begin{aligned} \hat{Y_i} &= \hat{\beta_0} + \hat{\beta_1} X_i\\ &= \bar{Y} - \hat{\beta_1} \bar{X} + \hat{\beta_1} X_i\\ &= \bar{Y} + \hat{\beta_1} (X_i - \bar{X}). \end{aligned} \]

Podemos también calcular los residuales o errores de regresión:

\[ \begin{aligned} \hat{\epsilon} &= Y - \hat{Y}\\ &= Y - \bar{Y} - \hat{\beta_1} (X - \bar{X}). \end{aligned} \]

Ejemplo (cont.)
Con los datos de marketing en Youtube y ventas observadas, veamos ahora cómo se verían los cálculos de los estimadores desarrollados en esta sección.

Primero, calcularemos la media de la variable explicativa:

x.barra <- mean(marketing$youtube)
  • El gasto medio en publicidad en Youtube fue de \(\bar{X} = 176.45\).

Calcularemos también la media de la variable dependiente:

y.barra <- mean(marketing$sales)
  • Las ventas promedio fueron iguales a \(\bar{Y} = 16.83\).

Para el cálculo de los estimadores de los coeficientes de la ecuación lineal vamos a necesitar, las diferencias de cada observación tanto de la variable dependiente como de la independiente de sus respectivas medias:

marketing$dif.x <- marketing$youtube - x.barra
marketing$dif.y <- marketing$sales - y.barra
marketing$dif.x_x_dif.y <- marketing$dif.x*marketing$dif.y

kable(
  x = head(marketing, n = 15)
  , row.names = FALSE
  , caption = 'Cálculo de los estimadores de regresión lineal. sales = b0 + b1 x youtube. Se muestran únicamente los primeros 15 registros de la tabla.'
  , digits = 2
  ) |> 
  kable_classic_2()
Cálculo de los estimadores de regresión lineal. sales = b0 + b1 x youtube. Se muestran únicamente los primeros 15 registros de la tabla.
youtube facebook newspaper sales errores dif.x dif.y dif.x_x_dif.y
276.12 45.36 83.04 26.52 4.96 99.67 9.69 966.09
53.40 47.16 54.12 12.48 1.50 -123.05 -4.35 534.90
20.64 55.08 83.16 11.16 1.74 -155.81 -5.67 882.98
181.80 49.56 70.20 22.20 5.12 5.35 5.37 28.74
216.96 12.96 70.08 15.48 -3.27 40.51 -1.35 -54.57
10.44 58.68 90.00 8.64 -0.30 -166.01 -8.19 1359.13
69.00 39.36 28.20 14.16 2.44 -107.45 -2.67 286.57
144.24 23.52 13.92 15.84 0.54 -32.21 -0.99 31.79
10.32 2.52 1.20 5.76 -3.17 -166.13 -11.07 1838.57
239.76 3.12 25.44 12.72 -7.12 63.31 -4.11 -260.01
79.32 6.96 29.04 10.32 -1.89 -97.13 -6.51 632.03
257.64 28.80 4.80 20.88 0.19 81.19 4.05 329.06
28.56 42.12 79.08 11.04 1.24 -147.89 -5.79 855.85
117.00 9.12 8.64 11.64 -2.36 -59.45 -5.19 308.37
244.92 39.48 55.20 22.80 2.72 68.47 5.97 408.97

Podemos entonces ahora calcular los estimadores de los coeficientes de la regresión:

b.1.est <- sum(marketing$dif.x_x_dif.y)/sum((marketing$dif.x)^2)
b.0.est <- y.barra - b.1.est * x.barra
  • \(\beta_1 = 0.05\);

  • \(\beta_0 = 8.44\).

Y los estimadores para la venta media:

marketing$y.est <- y.barra + b.1.est * (marketing$youtube - x.barra)
marketing$residual <- marketing$sales - marketing$y.est

kable(
  x = head(marketing, n = 15)
  , row.names = FALSE
  , caption = 'Cálculo de los estimadores de regresión lineal. sales = b0 + b1 x youtube. Se muestran únicamente los primeros 15 registros de la tabla.'
  , digits = 2
  ) |> 
  kable_classic_2()
Cálculo de los estimadores de regresión lineal. sales = b0 + b1 x youtube. Se muestran únicamente los primeros 15 registros de la tabla.
youtube facebook newspaper sales errores dif.x dif.y dif.x_x_dif.y y.est residual
276.12 45.36 83.04 26.52 4.96 99.67 9.69 966.09 21.56 4.96
53.40 47.16 54.12 12.48 1.50 -123.05 -4.35 534.90 10.98 1.50
20.64 55.08 83.16 11.16 1.74 -155.81 -5.67 882.98 9.42 1.74
181.80 49.56 70.20 22.20 5.12 5.35 5.37 28.74 17.08 5.12
216.96 12.96 70.08 15.48 -3.27 40.51 -1.35 -54.57 18.75 -3.27
10.44 58.68 90.00 8.64 -0.30 -166.01 -8.19 1359.13 8.94 -0.30
69.00 39.36 28.20 14.16 2.44 -107.45 -2.67 286.57 11.72 2.44
144.24 23.52 13.92 15.84 0.54 -32.21 -0.99 31.79 15.30 0.54
10.32 2.52 1.20 5.76 -3.17 -166.13 -11.07 1838.57 8.93 -3.17
239.76 3.12 25.44 12.72 -7.12 63.31 -4.11 -260.01 19.84 -7.12
79.32 6.96 29.04 10.32 -1.89 -97.13 -6.51 632.03 12.21 -1.89
257.64 28.80 4.80 20.88 0.19 81.19 4.05 329.06 20.69 0.19
28.56 42.12 79.08 11.04 1.24 -147.89 -5.79 855.85 9.80 1.24
117.00 9.12 8.64 11.64 -2.36 -59.45 -5.19 308.37 14.00 -2.36
244.92 39.48 55.20 22.80 2.72 68.47 5.97 408.97 20.08 2.72
ggplot(data = marketing) +
  aes(x = youtube) +
  geom_point(mapping = aes(y = sales)) +
  geom_point(mapping = aes(y = y.est), colour = 'red', shape = 4) +
  labs(
    title = 'Ajuste por mínimos cuadrados de la relación: sales = b0 + b1 x youtube'
    ) +
  theme_classic()

ggplot(data = marketing) +
  aes(x = youtube) +
  geom_point(mapping = aes(y = sales)) +
  geom_point(mapping = aes(y = y.est), colour = 'red', shape = 4) +
  geom_hline(yintercept = mean(marketing$sales), colour='red', linetype = 'dashed') +
  geom_vline(xintercept = mean(marketing$youtube), colour='red', linetype = 'dashed') +
  labs(
    title = 'Ajuste por mínimos cuadrados de la relación: sales = b0 + b1 x youtube'
    ) +
  theme_classic()

ggplot(data = marketing) +
  aes(x = youtube) +
  geom_point(mapping = aes(y = sales)) +
  geom_point(mapping = aes(y = y.est), colour = 'red', shape = 4) +
  geom_line(mapping = aes(y = y.est), colour = 'red') +
  labs(
    title = 'Ajuste por mínimos cuadrados de la relación: sales = b0 + b1 x youtube'
    ) +
  theme_classic()

ggplot(data = marketing) +
  aes(x = youtube) +
  geom_point(mapping = aes(y = residual)) +
  geom_hline(yintercept = mean(marketing$residual), colour = 'red') +
  labs(
    title = 'Gráfica de residuales de la regresión: sales = b0 + b1 x youtube'
    , caption = 'La línea roja representa la media de los residuales.'
    ) +
  theme_classic()

En R podemos obtener estos mismos resultados utilizando la función ‘lm’:

rl <- lm(formula = sales ~ youtube, data = marketing)

summary(rl)
## 
## Call:
## lm(formula = sales ~ youtube, data = marketing)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.0632  -2.3454  -0.2295   2.4805   8.6548 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 8.439112   0.549412   15.36   <2e-16 ***
## youtube     0.047537   0.002691   17.67   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.91 on 198 degrees of freedom
## Multiple R-squared:  0.6119, Adjusted R-squared:  0.6099 
## F-statistic: 312.1 on 1 and 198 DF,  p-value: < 2.2e-16

¿Qué supuestos distribucionales hicimos hasta aquí?

Nota que, en esencia, la técnica de mínimos cuadrados no es en sí una técnica estadística (más adelante utilizaremos supuestos estadísticos que, de cumplirse, harán que se materialicen ciertas propiedades de nuestros estimadores) sino una técnica de optimización. Para el tratamiento del problema de mínimos cuadrados como un problema de optimización ver, por ejemplo, Boyd and Vandenberghe (2004).

Ahora, observa que:

\[ \begin{aligned} \sum\limits_{i = 1}^n \hat{\epsilon_i} &= \sum\limits_{i = 1}^n \left[Y_i - \bar{Y} - \hat{\beta_1} (X_i - \bar{X})\right] \\ &= \sum\limits_{i = 1}^n Y_i - \sum\limits_{i = 1}^n \bar{Y} - \hat{\beta_1} \left[ \sum\limits_{i = 1}^n X_i - \sum\limits_{i = 1}^n \bar{X} \right] \\ &= \sum\limits_{i = 1}^n Y_i - n \bar{Y} - \hat{\beta_1} \left[ \sum\limits_{i = 1}^n X_i - n \bar{X} \right]\\ &= \sum\limits_{i = 1}^n Y_i - \sum\limits_{i = 1}^n Y_i - \hat{\beta_1} \left[ \sum\limits_{i = 1}^n X_i - \sum\limits_{i = 1}^n X_i \right]\\ &= 0. \end{aligned} \]

Esta propiedad de los residuales de la regresión (que siempre sumen cero) es consecuencia directa de haber incluido en la especificación del modelo de regresión lineal al coeficiente para la intersección con el eje correspondiente a la variable respuesta (i.e., \(\beta_0\)). Si bien este coeficiente se puede omitir del modelo, esto representaría un supuesto bastante restrictivo que rara vez se cumple (estaríamos suponiendo que la variable respuesta es 0 siempre que la variable explicativa es 0).

Ejemplo
Podemos ajustar el modelo anterior a nuestros datos de marketing, forzando el modelo a pasar por el origen:
ggplot(data = marketing) + 
  aes(x = youtube, y = sales) +
  geom_point() +
  geom_smooth(method = 'lm', formula = y ~ 0 + x, se = FALSE) +
  theme_classic()

modelo.origen <- lm(formula = sales ~ 0 + youtube, data = marketing)

summary(object = modelo.origen)
## 
## Call:
## lm(formula = sales ~ 0 + youtube, data = marketing)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -13.6808  -0.9554   3.0121   6.1750  10.1775 
## 
## Coefficients:
##         Estimate Std. Error t value Pr(>|t|)    
## youtube  0.08325    0.00200   41.63   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 5.774 on 199 degrees of freedom
## Multiple R-squared:  0.897,  Adjusted R-squared:  0.8965 
## F-statistic:  1733 on 1 and 199 DF,  p-value: < 2.2e-16

¿Qué teoría estaríamos planteando para justificar el uso de este modelo? ¿Es razonable? ¿Parece que los datos la respalden?

 

 

 

Material adicional

 

 

 

ANÁLISIS DE LOS ESTIMADORES DE REGRESIÓN

Lecturas recomendadas
  • Kutner et al. (2004), cap. 2.2, 2.5, 2.6, 2.7.

  • Draper and Smith (1966), cap. 1.4.


En términos generales, al hacer inferencia sobre los parámetros de la regresión, nos centraremos en los siguientes aspectos:

  • conocer cuál es la media del estimador (valor esperado);
  • su varianza;
  • calcular un intervalo de confianza;
  • realizar alguna prueba de hipótesis.

\(\hat{\sigma}^2\)

No es lo más común pero, debido a cierta dependencia lógica, vamos a comenzar por estimar el valor de \(\sigma^2\). El estimador natural para \(\sigma^2\), podemos pensar que es:

\[ \begin{aligned} \hat{\sigma}^2 &= \frac{\sum\limits_{i = 1}^n \hat{\epsilon}_i^2}{n} \\ &= \frac{\sum\limits_{i = 1}^n (Y_i - \hat{Y}_i)^2}{n} \\ &= \frac{SSE}{n}. \end{aligned} \]

Sin embargo, es posible demostrar que, para que \(\hat{\sigma}^2\) sea un estimador insesgado de la varianza, es necesario hacer una corrección por el número correcto de grados de libertad: \(n-2\). Por lo tanto, el estimador insesgado de la varianza del modelo de regresión lineal de primer orden es igual a:

\[\hat{\sigma}^2 = \frac{SSE}{n-2} = MSE.\]

Partimos de la expresión para \(E[SSE]\):

\[ \begin{aligned} E[SSE] &= E\left[\sum\limits_{i=1}^n (Y_i - \hat{Y_i})^2 \right] \\ &= E \left[ \sum\limits_{i=1}^n ( Y_i - \hat{\beta_0} - \hat{\beta_1} X_i)^2 \right] \\ &= E \left[ \sum\limits_{i=1}^n ( Y_i - \bar{Y} + \hat{\beta_1}\bar{X} - \hat{\beta_1} X_i)^2 \right] \\ &= E \left\{ \sum\limits_{i=1}^n [ (Y_i - \bar{Y}) - \hat{\beta_1}( X_i - \bar{X}) ]^2 \right\} \\ &= E \left\{ \sum\limits_{i=1}^n [ (Y_i - \bar{Y})^2 - 2\hat{\beta_1}(Y_i - \bar{Y})( X_i - \bar{X}) +\hat{\beta_1}^2( X_i - \bar{X})^2 \right\} \\ &= E \left\{ \sum\limits_{i=1}^n \left[ (Y_i - \bar{Y})^2 - 2 \frac{\sum\limits_{j=1}^n (X_j-\bar{X})(Y_j-\bar{Y})}{\sum\limits_{j=1}^n (X_j-\bar{X})^2} (Y_i - \bar{Y})( X_i - \bar{X}) + \left(\frac{\sum\limits_{j=1}^n (X_j-\bar{X})(Y_j-\bar{Y})}{\sum\limits_{j=1}^n (X_j-\bar{X})^2}\right)^2( X_i - \bar{X})^2 \right] \right\} \\ &= E \left\{ \sum\limits_{i=1}^n \left[ (Y_i - \bar{Y})^2 \right] - 2 \frac{\sum\limits_{j=1}^n (X_j-\bar{X})(Y_j-\bar{Y})}{\sum\limits_{j=1}^n (X_j-\bar{X})^2} \sum\limits_{i=1}^n (Y_i - \bar{Y})( X_i - \bar{X}) + \left(\frac{\sum\limits_{j=1}^n (X_j-\bar{X})(Y_j-\bar{Y})}{\sum\limits_{j=1}^n (X_j-\bar{X})^2}\right)^2 \sum\limits_{i=1}^n(X_i - \bar{X})^2 \right\} \\ &= E \left\{ \sum\limits_{i=1}^n \left[ (Y_i - \bar{Y})^2 \right] - 2 \frac{\left[\sum\limits_{j=1}^n (X_j-\bar{X})(Y_j-\bar{Y})\right]^2}{\sum\limits_{j=1}^n (X_j-\bar{X})^2} + \frac{\left[\sum\limits_{j=1}^n (X_j-\bar{X})(Y_j-\bar{Y})\right]^2}{\sum\limits_{j=1}^n (X_j-\bar{X})^2} \right\} \\ &= E \left\{ \sum\limits_{i=1}^n \left[(Y_i - \bar{Y})^2 \right] - \frac{\left[\sum\limits_{j=1}^n (X_j-\bar{X})(Y_j-\bar{Y})\right]^2}{\sum\limits_{j=1}^n (X_j-\bar{X})^2} \right\} \\ &= E \left\{ \sum\limits_{i=1}^n \left[ (Y_i - \bar{Y})^2 \right] - \left[ \frac{\sum\limits_{j=1}^n (X_j-\bar{X})(Y_j-\bar{Y})}{\sum\limits_{j=1}^n (X_j-\bar{X})^2} \right]^2 \sum\limits_{j=1}^n (X_j-\bar{X})^2 \right\} \\ &= E \left\{ \sum\limits_{i=1}^n \left[(Y_i - \bar{Y})^2\right] - \hat{\beta_1}^2 \sum\limits_{j=1}^n (X_j-\bar{X})^2 \right\} \\ &= \sum\limits_{i=1}^n \left\{ E[(Y_i - \bar{Y})^2] \right\} - E[\hat{\beta_1}^2] \sum\limits_{j=1}^n (X_j-\bar{X})^2 \\ &= \sum\limits_{i=1}^n \left\{ Var[Y_i - \bar{Y}] \right\}+ E^2[Y_i - \bar{Y}] - (Var[\hat{\beta_1}] + E^2[\hat{\beta_1}]) \sum\limits_{j=1}^n (X_j-\bar{X})^2 \\ &= \sum\limits_{i=1}^n \left\{ Var[Y_i - \bar{Y}] + E^2[Y_i - \bar{Y}] \right\} - \left( \frac{\sigma^2}{\sum\limits_{j=1}^n (X_j-\bar{X})^2} + \beta_1^2 \right) \sum\limits_{j=1}^n (X_j-\bar{X})^2 \ \ \text{\_1}\\ &= \sum\limits_{i=1}^n \left\{ Var[Y_i - \bar{Y}] + E^2[Y_i - \bar{Y}] \right\} - \sigma^2 - \beta_1^2 \sum\limits_{j=1}^n (X_j-\bar{X})^2 . \end{aligned} \]

\_1: Ver propiedades del estimador de \(\beta_1\).

Ahora, consideremos \(Var[Y_i - \bar{Y}]\):

\[ \begin{aligned} Var[Y_i - \bar{Y}] &= Var\left[Y_i - \frac{1}{n}\sum\limits_{j = 1}^n Y_j\right] \\ &= Var\left[-\frac{1}{n}Y_1 - \frac{1}{n}Y_2 - \dots + \left(1 - \frac{1}{n} \right)Y_i - \dots - \frac{1}{n} Y_n \right] \\ &= \frac{1}{n^2} Var[Y_1] + \frac{1}{n^2} Var[Y_2] + \dots + \left(1 - \frac{1}{n} \right)^2Var[Y_i] + \dots + \frac{1}{n^2} Var[Y_n] \\ &= \frac{n-1}{n^2} \sigma^2 + \left(\frac{n-1}{n} \right)^2 \sigma^2 \\ &= \frac{n-1}{n^2} \sigma^2 + \left(\frac{n-1}{n}\right)^2 \sigma^2 \\ &= \sigma^2 \left(\frac{n - 1 + (n-1)^2}{n^2}\right)\\ &= \sigma^2 \left(\frac{n^2 - n}{n^2}\right)\\ &= \sigma^2 \left(\frac{n(n-1)}{n^2}\right)\\ &= \frac{n-1}{n} \sigma^2. \end{aligned} \]

Sustituyendo:

\[ \begin{aligned} E[SSE] &= \sum\limits_{i=1}^n \left\{ \frac{n-1}{n} \sigma^2 + E^2[Y_i - \bar{Y}] \right\} - \sigma^2 - \beta_1^2 \sum\limits_{j=1}^n (X_j-\bar{X})^2 \\ &= (n-1) \sigma^2 + \sum\limits_{i=1}^n \left\{ E^2[Y_i - \bar{Y}] \right\} - \sigma^2 - \beta_1^2 \sum\limits_{j=1}^n (X_j-\bar{X})^2 \\ &= (n-2) \sigma^2 + \sum\limits_{i=1}^n \left\{ E^2[Y_i - \bar{Y}] \right\} - \beta_1^2 \sum\limits_{j=1}^n (X_j-\bar{X})^2. \end{aligned} \]

Por último, consideremos \(E[Y_i - \bar{Y}]\):

\[ \begin{aligned} E[Y_i - \bar{Y}] &= \beta_0 + \beta_1 X_i - \frac{1}{n}\sum\limits_{j = 1}^n (\beta_0 + \beta_1 X_j) \\ &= \beta_1 (X_i - \bar{X}). \end{aligned} \]

Sustituyendo esta última parte:

\[ \begin{aligned} E[SSE] &= (n-2) \sigma^2 + \sum\limits_{i=1}^n [\beta_1 (X_i - \bar{X})]^2 - \beta_1^2 \sum\limits_{j=1}^n (X_j-\bar{X})^2\\ &= (n-2) \sigma^2 + \beta_1^2 \sum\limits_{i=1}^n (X_i - \bar{X})^2 - \beta_1^2 \sum\limits_{j=1}^n (X_j-\bar{X})^2 \\ &= (n-2) \sigma^2. \end{aligned} \]

Por lo tanto, \(\frac{E(SSE)}{n-2} = \sigma^2\) por lo que queda demostrado que \(\frac{E(SSE)}{n-2}\) es un estimador insesgado de \(\sigma^2\).

Para poder sacar conclusiones (hacer inferencia) más interesantes necesitamos conocer su distribución muestral. Para ello, entonces, es necesario realizar un supuesto adicional a los hasta aquí exigidos al modelo lineal. En particular, para poder realizar inferencia sobre intervalos (o pruebas de hipótesis) necesitamos imponer al modelo un supuesto distribucional. El supuesto más común es el de normalidad en los errores1, es decir, si asumimos que:

\[\epsilon_i \sim N(0, \sigma^2)\]

entonces \(Y_i|X_i,\beta_0,\beta_1,\sigma^2 \sim N(\beta_0 + \beta_1 X_i, \sigma^2)\).

NOTA IMPORTANTE: Lo anterior no es lo mismo que \(Y \sim N(\mu_Y, \sigma^2)\), ¿puedes explicar por qué?

Nota que \(\hat{\sigma}^2\) es una combinación lineal de las \(Y_i^2\). Sin embargo, esta no es una combinación lineal de vv. aa. independientes y no están normalizadas. No obstante, es posible demostrar que:

\[ (n-2)\frac{\hat{\sigma}^2}{\sigma^2} \sim \chi_{n-2}^2. \]

Demostración
Considera el vector \(Y = \left(\begin{array}{}y_1\\y_2\\ \vdots \\ y_n \end{array}\right)\) y a la transformación \(Z\):

\[ \begin{aligned} Z &= QY \end{aligned} \]

donde \(Q\) es una matriz ortogonal tal que:

\[ Q = \left( \begin{array}{} \frac{1}{\sqrt{n}} & \frac{1}{\sqrt{n}} & \dots & \frac{1}{\sqrt{n}}\\ \frac{x_1 - \bar{X}}{\sqrt{SXX}} & \frac{x_2 - \bar{X}}{\sqrt{SXX}} & \dots & \frac{x_n - \bar{X}}{\sqrt{SXX}}\\ \vdots & \vdots & \dots & \vdots \end{array} \right) \]

Nota que \(Q\) no es única ya que por regla general la sub-matriz de \((n-2) \times n\) será sub-determinada (y descartamos, desde luego, el caso inconsistente).

Podemos ver entonces que:

  • \(z_1 = \sqrt{n} \times \bar{Y}\)

  • \(z_2 = \hat{\beta}_1 \times \sqrt{SXX}\)

  • \(\sum\limits_{i = 1}^n z_i^2 = \sum\limits_{i = 1}^n y_i^2\) (por la ortogonalidad de \(Q\)).

Ahora, sabemos que

\[ \begin{aligned} (n-2) \hat\sigma^2 &= SSE\\ &= \sum\limits_{i=1}^n (y_i - \hat{y}_i)^2\\ &= \sum\limits_{i=1}^n (y_i - \hat{\beta}_0 - \hat\beta_1 x_i)^2\\ &= \sum\limits_{i=1}^n [y_i - (\bar{y} - \hat\beta_1 \bar{x}) - \hat\beta_1 x_i]^2\\ &= \sum\limits_{i=1}^n [(y_i - \bar{y}) - \hat\beta_1 (x_i - \bar{x})]^2\\ &= \sum\limits_{i=1}^n (y_i - \bar{y})^2 - 2 \hat\beta_1 \sum\limits_{i=1}^n (x_i - \bar{x})(y_i - \bar{y}) + \hat\beta_1^2 \sum\limits_{i=1}^n(x_i - \bar{x})^2\\ &= \sum\limits_{i=1}^n (y_i - \bar{y})^2 - 2 \hat\beta_1 \sum\limits_{i=1}^n (x_i - \bar{x})(y_i - \bar{y}) + \hat\beta_1^2 \sum\limits_{i=1}^n(x_i - \bar{x})^2\\ &= \sum\limits_{i=1}^n (y_i - \bar{y})^2 - 2 \hat\beta_1^2 \sum\limits_{i=1}^n (x_i - \bar{x})^2 + \hat\beta_1^2 \sum\limits_{i=1}^n(x_i - \bar{x})^2\\ &= \sum\limits_{i=1}^n (y_i - \bar{y})^2 - \hat\beta_1^2 \sum\limits_{i=1}^n (x_i - \bar{x})^2\\ &= \sum\limits_{i=1}^n y_i^2 - 2 \bar{y} \sum\limits_{i=1}^n y_i + n\bar{y}^2 - \hat\beta_1^2 \sum\limits_{i=1}^n (x_i - \bar{x})^2\\ &= \sum\limits_{i=1}^n y_i^2 - 2 n \bar{y}^2 + n\bar{y}^2 - \hat\beta_1^2 \sum\limits_{i=1}^n (x_i - \bar{x})^2\\ &= \sum\limits_{i=1}^n y_i^2 - n \bar{y}^2 - \hat\beta_1^2 \sum\limits_{i=1}^n (x_i - \bar{x})^2\\ \end{aligned} \]

Entonces, si ahora utilizamos la transformación ortogonal \(Z\) tenemos que:

\[ \begin{aligned} (n-2) \hat\sigma^2 &= \sum\limits_{i=1}^n z_i^2 - z_1^2 - z_2^2\\ &= \sum\limits_{i=3}^n z_i^2. \end{aligned} \]

Como \(Z\) es una transformación ortogonal de \(Y\) y \(Y\) es un vector de vv.aa. normales independientes, entonces \(Z\) se distribuye también Normal y sus elementos serán independientes y con \(Var(Z) = Var(QY) = Q'Var(Y)Q = \sigma^2\) (demostracíón en los Anexos).

Entonces tenemos que \((n-2)\hat\sigma^2\) es la suma del cuadrado de \(n-2\) vv.aa.ii. normales con varianza \(\sigma^2\) por lo que \(\frac{(n-2)\hat\sigma^2}{\sigma^2} \sim \chi_{n-2}^2\).


Podemos utilizar entonces esta propiedad para realizar inferencias sobre \(\hat{\sigma}^2\).

¿Cómo construimos un intervalo de confianza al \((1-\alpha)\)% para \(\sigma^2\)?

Ejemplo
Calcula el estimador de la varianza de los errores para el modelo de regresión lineal de los datos de Marketing y su intervalo de confianza al 95%.
R
sigma.2.gorro <- sum((marketing$sales-rl$fitted.values)^2)/(nrow(marketing)-2)
sigma.2.gorro
## [1] 15.29113

¿Dónde se encuentra este dato en el resultado de la regresión arrojado por R?

summary(object = rl)
## 
## Call:
## lm(formula = sales ~ youtube, data = marketing)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.0632  -2.3454  -0.2295   2.4805   8.6548 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 8.439112   0.549412   15.36   <2e-16 ***
## youtube     0.047537   0.002691   17.67   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.91 on 198 degrees of freedom
## Multiple R-squared:  0.6119, Adjusted R-squared:  0.6099 
## F-statistic: 312.1 on 1 and 198 DF,  p-value: < 2.2e-16

Ahora, para le intervalo de confianza:

ic.sigma.2.gorro.sup <- (nrow(marketing) - 2)*sigma.2.gorro/qchisq(p = 0.05/2, df = nrow(marketing) - 2)
ic.sigma.2.gorro.sup
## [1] 18.81405
ic.sigma.2.gorro.inf <- (nrow(marketing) - 2)*sigma.2.gorro/qchisq(p = 1 - 0.05/2, df = nrow(marketing) - 2)
ic.sigma.2.gorro.inf
## [1] 12.67533

\(\hat{\beta_1}\)

Recordemos que \(\hat{\beta_1} = \frac{\sum_{i=1}^n (X_i - \bar{X})(Y_i - \bar{Y})}{\sum_{i=1}^n (X_i - \bar{X})^2}\) y observemos que

\[ \begin{aligned} \hat{\beta_1} &= \frac{\sum_{i=1}^n (X_i - \bar{X})(Y_i - \bar{Y})}{\sum_{i=1}^n (X_i - \bar{X})^2} \\ &= \sum_{i=1}^n a_i Y_i \end{aligned} \]

donde \(a_i = \frac{(X_i - \bar{X})}{\sum_{i=1}^n (X_i - \bar{X})^2}\).

Entonces podemos calcular:

\[ \begin{aligned} E(\hat{\beta_1}) &= E \left(\sum_{i=1}^n a_i Y_i \right) \\ &= \sum_{i=1}^n a_i E(Y_i) \\ &= \sum_{i=1}^n a_i (\beta_0 + \beta_1 X_i) \\ &= \beta_1. \end{aligned} \]

y

\[ \begin{aligned} Var(\hat{\beta_1}) &= Var\left(\frac{\sum_{i=1}^n (X_i - \bar{X})(Y_i - \bar{Y})}{\sum_{i=1}^n (X_i - \bar{X})^2}\right) \\ &= Var\left( \sum_{i=1}^n a_i Y_i \right). \end{aligned} \]

Como, además asumimos que \(Cov(\epsilon_i, \epsilon_j) = 0, \ \forall \ i \neq j\), entonces:

\[ Var(\hat{\beta_1}) = \sum_{i=1}^n a_i^2 Var\left(Y_i \right) \\ = \sigma^2 \sum_{i=1}^n a_i^2 \\ = \sigma^2 \sum_{i=1}^n \left[ \frac{(X_i - \bar{X})}{\sum_{j=1}^n (X_j - \bar{X})^2} \right]^2 \\ = \sigma^2 \frac{\sum_{i=1}^n (X_i - \bar{X})^2}{\left[ \sum_{j=1}^n (X_j - \bar{X})^2\right]^2} \\ = \frac{\sigma^2}{\sum_{j=1}^n (X_j - \bar{X})^2}. \]

El teorema de de Gauss-Markov enuncia que el estimador de \(\beta_1\) no solamente será insesgado sino que, además, es el estimador de mínima varianza para todos los estimadores lineales insesgados.

Teorema de Gauss-Markov: Sea \(Y_1, \dots, Y_n\) un conjunto de vv. aa. no correlacionadas para las que \(E(Y_i) = z_{i1}\beta_{1} + \dots + z_{im}\beta_{m}\) y \(Var(Y_i) = \sigma^2\). Entre todos los estimadores insesgados de \(\theta = c_1 \beta{1} + \dots + c_m \beta_m\) que son combinaciones lineales de las observaciones \(Y_1, \dots, Y_n\), el estimador \(\hat{\theta} = c_1 \hat{\beta}_1 + \dots + c_m \hat{\beta}_m\) tiene la menor varianza para todos los valores posibles de \(\beta_1, \dots, \beta_m\) y \(\sigma^2\).

Dado que \(\sigma\) es, regularmente, desconocida podemos sustituir \(\sigma^2\) por \(\hat\sigma^2 = MSE = \frac{\sum\limits_{i=1}^n (Y_i - \hat{Y_i})^2}{n-2}\), el estimador insesgado de \(\sigma^2\) para obtener el estimador de la varianza de \(\hat\beta_1\)

\[ \hat\sigma^2\{\hat\beta_1\} = \frac{\hat\sigma^2}{\sum_{j=1}^n (X_j - \bar{X})^2}. \]

Conocemos ya la media y la varianza de \(\hat{\beta}_1\), necesitamos ahora conocer su distribución muestral. Para ello, entonces, recordamos que podemos expresar a \(\hat{\beta}_1\) como

\[ \hat{\beta}_1 = \sum_{i=1}^n a_i Y_i \]

donde

\[ a_i = \frac{(X_i - \bar{X})}{\sum_{i=1}^n (X_i - \bar{X})^2} \]

y

\[ Y_i = \beta_0 + \beta_1 X_i + \epsilon_i \]

entonces podemos ver que

\[ Y_i \sim N(\beta_0 + \beta_1 X_i, \sigma^2). \]

En ocasiones, entonces, nos interesa poder proporcionar un intervalo de confianza para nuestras estimaciones. Es posible demostrar que el intervalo de confianza al \(100(1 - \alpha)\%\) para \(\hat{\beta_1}\) tendrá sus extremos en:

\[ \hat{\beta_1} \pm {_{1 - \frac{\alpha}{2}}}t_{n-2} \frac{s}{\sqrt{\sum_{j=1}^n (X_j - \bar{X})^2}}. \]

Donde \({_{1 - \frac{\alpha}{2}}}t_{n-2}\) es el cuantil \(1 - \frac{\alpha}{2}\) de una distribución \(t\) con \(n-2\) grados de libertad.

Lo anterior se desprende, en primer lugar, del hecho de que una combinación lineal de vv.aa. normales sigue también una distribución normal. Por lo tanto, sabemos entonces que \(\hat\beta_1\) seguirá una distribución normal (para la cual ya obtuvimos una expresión para su media y varianza).

Entonces, podemos afirmar que \(\frac{\hat\beta_1 - \beta_1}{\sigma^2\{\hat\beta_1\}} \sim N(0,1)\).

Ahora bien, no conocemos el valor exacto de \(\sigma^2\{\hat\beta_1\}\) (pues depende de \(\sigma^2\)). Recordemos, sin embargo, que

\[ \hat\sigma^2 = \frac{\sum (Y_i - \hat{Y}_i)^2}{n-2} \]

que se puede interpretar como la suma del cuadrado de \(n\) vv.aa. normales. La media de estas vv.aa. es cero, pero su varianza es igual a \((n-2)\sigma^2\). También es importante recordar que no se trata de \(n\) vv.aa. independientes, sino de \(n-2\).

Por lo tanto, es posible demostrar que

\[ (n-2)\frac{\hat\sigma^2\{\hat\beta_1\}}{\sigma^2\{\hat\beta_1\}} \sim \chi_{n-2}^2. \]

Por lo tanto:

\[ \frac{\frac{\hat\beta_1 - \beta_1}{\sigma\{\hat\beta_1\}}}{\sqrt{\frac{\frac{(n-2)\hat\sigma^2\{\hat\beta_1\}}{\sigma^2\{\hat\beta_1\}}}{n-2}}} = \frac{\frac{\hat\beta_1 - \beta_1}{\sigma\{\hat\beta_1\}}}{\sqrt{\frac{\hat\sigma^2\{\hat\beta_1\}}{\sigma^2\{\hat\beta_1\}}}}\\ = \frac{\hat\beta_1 - \beta_1}{\hat\sigma\{\hat\beta_1\}}\\ \sim t_{n-2} \]

Típicamente también nos interesa realizar pruebas de hipótesis sobre el valor de \(\beta_1\). En particular, nos interesa contrastar las hipótesis:

\[ H_0:\beta_1 = 0\\ H_1:\beta_1 \neq 0\\ \]

ya que este valor de \(\beta_1\) implica que no existe una relación entre la variable explicativa y la variable dependiente.

Dado que sabemos que \(\frac{\hat{\beta_1} - \beta_1}{\frac{s}{\sqrt{\sum_{j=1}^n (X_j - \bar{X})^2}}} \sim t_{\left(n-2, 1 - \frac{\alpha}{2} \right)}\) entonces podemos utilizar el valor de \(\frac{\hat{\beta_1}}{\frac{s}{\sqrt{\sum_{j=1}^n (X_j - \bar{X})^2}}}\) como estadístico de prueba para contrastar contra el valor crítico de la distribución \(t\) correspondiente.

 

 

Ejemplo (cont.)
¿Cuál es el intervalo de confianza para la pendiente de la regresión en nuestro ejemplo? ¿Podemos decir que sea estadísticamente significativo el valor de la pendiente?

Previamente, habíamos obtenido un valor para \(\hat{\beta_1} = 0.0475366\).

y.gorro <- b.0.est + b.1.est*marketing$youtube

se.b1.est <- 
  sqrt(sum(((marketing$sales-y.gorro)^2)/(nrow(marketing)-2))) / 
  sqrt((sum((marketing$youtube - mean(marketing$youtube))^2)))

v.c <- qt(p = 0.975, df = nrow(marketing)-2)
i.c.1 <- b.1.est - v.c*se.b1.est
i.c.2 <- b.1.est + v.c*se.b1.est
t.est <- b.1.est/se.b1.est
v.c.2 <- qf(p = 0.95, df1 = 1, df2 = nrow(marketing)-2)

Calculamos ahora \(s_{\hat{\beta_1}} = \frac{s}{\sqrt{\sum_{j=1}^n (X_j - \bar{X})^2}} = 0.0026906\).

El valor del cuantil de una distribución \(t\) con \(198\) grados de libertad es igual a \(1.9720175\). Por lo tanto, el intervalo de confianza al 95% se encontrará entre los valores \((0.0422307, 0.0528426)\). Alternativamente, podemos considerar el valor del estadístico de prueba 17.6676256.

temp <- data.frame(t = rt(n = 1000, df = nrow(marketing) - 2))

ggplot(data = temp) + 
  aes(x = t) + 
  geom_density() + 
  geom_vline(xintercept = t.est, colour = 'red', linetype = 'dashed') +
  theme_classic() + 
  labs(y = 'Densidad', caption = 'Función de densidad t con 198 g.l. y valor crítico.')

Estos valores los podemos ver, nuevamente, en los resultados que nos arroja R para el modelo de regresión ajustado:

summary(rl)
## 
## Call:
## lm(formula = sales ~ youtube, data = marketing)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.0632  -2.3454  -0.2295   2.4805   8.6548 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 8.439112   0.549412   15.36   <2e-16 ***
## youtube     0.047537   0.002691   17.67   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.91 on 198 degrees of freedom
## Multiple R-squared:  0.6119, Adjusted R-squared:  0.6099 
## F-statistic: 312.1 on 1 and 198 DF,  p-value: < 2.2e-16

\(\hat{\beta_0}\)

Pasemos ahora al análisis del estimador de la intersección con el eje de la variable dependiente (eje vertical), \(\hat{\beta_0}\). A diferencia del parámetro de regresión \(\beta_1\), para el que siempre queremos hacer inferencia (¿por qué?), el análisis respecto del parámetro \(\beta_0\) con frecuencia es omitido (¿por qué?). No obstante, en ocasiones es relevante, en particular cuando nos interesa validar el caso en el \(\beta_0 = 0\).

Recordemos entonces la expresión para el estimador de \(\beta_0\):

\[\hat{\beta_0} = \bar{Y} - \hat{\beta_1}\bar{X}.\]

Recordemos también que \(\hat{\beta_1}\) es una combinación lineal de vv.aa. normales y, por lo tanto, podemos afirmar que \(\hat{\beta_0}\) es, a su vez, una v.a. normal. Por otro lado:

\[ \begin{aligned} E[\hat{\beta_0}] &= E[\bar{Y}] - \bar{X}E[\hat{\beta_1}] \\ &= \beta_0 + \bar{X} \beta_1 - \bar{X} \beta_1 \\ &= \beta_0 \end{aligned} \]

y

\[ \begin{aligned} \sigma^2\{\hat{\beta_0}\} &= Var[\hat{\beta_0}] = Var[\bar{Y} - \bar{X} \hat{\beta_1}] \\ &= Var \left[\sum_{i=1}^n \frac{Y_i}{n} - \bar{X} \frac{\sum_{i=1}^n (X_i - \bar{X})Y_i}{\sum_{i=1}^n (X_i - \bar{X})^2}\right] \\ &= Var \left[\sum_{i=1}^n \frac{Y_i}{n} - \sum_{i=1}^n \frac{\bar{X}(X_i - \bar{X})Y_i}{\sum_{j=1}^n (X_j - \bar{X})^2}\right] \\ &= Var \left\{ \sum_{i=1}^n \left[ \frac{1}{n} - \frac{\bar{X}(X_i - \bar{X})}{\sum_{j=1}^n (X_j - \bar{X})^2} \right] Y_i \right\} \\ &= Var \left\{ \sum_{i=1}^n \left[ \frac{1}{n} - \frac{\bar{X}(X_i - \bar{X})}{\sum_{j=1}^n (X_j - \bar{X})^2} \right] Y_i \right\} \\ &= \sum_{i=1}^n \left[ \frac{1}{n} - \frac{\bar{X}(X_i - \bar{X})}{\sum_{j=1}^n (X_j - \bar{X})^2} \right]^2 Var [Y_i] \\ &= \sigma^2 \sum_{i=1}^n \left[ \frac{1}{n} - \frac{\bar{X}(X_i - \bar{X})}{\sum_{j=1}^n (X_j - \bar{X})^2} \right]^2 \\ &= \sigma^2 \sum_{i=1}^n \left[ \frac{1}{n^2} - 2 \frac{1}{n} \frac{\bar{X}(X_i - \bar{X})}{\sum_{j=1}^n (X_j - \bar{X})^2} + \left( \frac{\bar{X}(X_i - \bar{X})}{\sum_{j=1}^n (X_j - \bar{X})^2} \right)^2 \right] \\ &= \sigma^2 \left[ \frac{1}{n} + \sum_{i=1}^n \left( \frac{\bar{X}(X_i - \bar{X})}{\sum_{j=1}^n (X_j - \bar{X})^2} \right)^2 \right] \\ &= \sigma^2 \left[ \frac{1}{n} + \sum_{i=1}^n \frac{\bar{X}^2(X_i - \bar{X})^2}{(\sum_{j=1}^n (X_j - \bar{X})^2)^2} \right] \\ &= \sigma^2 \left[ \frac{1}{n} + \frac{\bar{X}^2 \sum_{i=1}^n (X_i - \bar{X})^2}{(\sum_{j=1}^n (X_j - \bar{X})^2)^2} \right] \\ &= \sigma^2 \left[ \frac{1}{n} + \frac{\bar{X}^2}{\sum_{j=1}^n (X_j - \bar{X})^2)} \right]. \end{aligned} \]

Entonces, \(\hat{\beta_0} \sim N(\beta_0, \sigma^2\{\hat{\beta_0}\})\) y, al igual que para \(\hat{\beta_1}\), podemos obtener un estimador para \(\sigma^2\{\hat{\beta_0}\}\) sustituyendo el error cuadrático medio de la regresión en la fórmula anteriormente obtenida:

\[\hat\sigma^2\{\hat{\beta_0}\} = \hat\sigma^2 \left[ \frac{1}{n} + \frac{\bar{X}^2}{\sum_{j=1}^n (X_j - \bar{X})^2} \right],\]

Entonces, de manera análoga al procedimiento para \(\beta_1\) podemos probar que

\[\frac{\hat\beta_0 - \beta_0}{\hat\sigma\{\hat{\beta_0}\}} \sim t_{n-2}\]

y que

\[\hat\beta_0 \pm \hat\sigma\{\hat{\beta_0}\}t_{1-\alpha/2,n-2}\]

donde \(t_{1-\alpha/2,n-2}\) es el cuantil \(1-\alpha/2\) de una distribución \(t\) con \(n-2\) grados de libertad, es el intervalo del \(1 - \alpha\) confianza.

Ejemplo (cont.)
Sigamos con nuestro ejemplo. Queremos ahora hacer inferencia sobre \(\beta_0\).
MSE <- sum((marketing$sales-y.gorro)^2)/(nrow(marketing)-2)

Podemos ver que \(\hat{\beta_0} = 8.4391123\) y que \(MSE = 15.2911315\) y, para poder hacer inferencia sobre \(\beta_0\) necesitamos calcular \(\hat\sigma_{\hat{\beta_0}} = \sqrt{MSE \left[ \frac{1}{n} + \frac{\bar{X}^2}{\sum_{j=1}^n (X_j - \bar{X})^2)} \right]}\).

se.b0.est <- 
  sqrt(
    MSE * 
      (
        1 / nrow(marketing) + 
          x.barra^2 / ((sum((marketing$youtube - mean(marketing$youtube))^2)))
        )
    )

v.c <- qt(p = 0.975, df = nrow(marketing)-2)

i.c.1 <- b.0.est - v.c*se.b0.est
i.c.2 <- b.0.est + v.c*se.b0.est
t.est <- b.0.est / se.b0.est

\[s_{\hat{\beta_0}} = 0.5494115\]

El valor del cuantil \(0.975\) de una distribución \(t\) con \(198\) grados de libertad es igual a \(1.9720175\). Por lo tanto, el intervalo de confianza al 95% se encontrará entre los valores \((7.3556631, 9.5225614)\). Alternativamente, podemos considerar el valor del estadístico de prueba 15.3602752.

Estos valores los podemos ver, nuevamente, en los resultados que nos arroja R para el modelo de regresión ajustado:

summary(rl)
## 
## Call:
## lm(formula = sales ~ youtube, data = marketing)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.0632  -2.3454  -0.2295   2.4805   8.6548 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 8.439112   0.549412   15.36   <2e-16 ***
## youtube     0.047537   0.002691   17.67   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.91 on 198 degrees of freedom
## Multiple R-squared:  0.6119, Adjusted R-squared:  0.6099 
## F-statistic: 312.1 on 1 and 198 DF,  p-value: < 2.2e-16

Notemos que los estimadores de los coeficientes no son independientes y, de hecho, típicamente estarán correlacionados:

\[ Cov(\hat\beta_0, \hat\beta_1) = - \bar{X} \sigma^2 \{\hat\beta_1\}. \]

Tarea.

\(\hat{Y}_h\)

Ya mencionamos anteriormente que \(\hat{Y}_h = E(Y_h|X_h)\), es decir, es el estimador del valor esperado de \(Y\) para un valor dado de \(X_h\). Estamos haciendo el cambio de sub-índices \(i\) por \(h\) para hacer énfasis en que podría tratarse de un valor dado de \(X\) dentro de los valores observados previamente para \(X\) o fuera de ellos (ya hemos señalado, sin embargo, los riesgos de hacer pronósticos fuera del rango observado para la variable explicativa).

\[ \hat{Y}_h = \hat{\beta}_0 + \hat{\beta}_1 X_h. \]

¿Cuál es el valor esperado de este estimador?

\[ \begin{aligned} E(\hat{Y}_h) &= E(\hat{\beta}_0 + \hat{\beta}_1 X_h) \\ &= E(\hat{\beta}_0) + E(\hat{\beta}_1 X_h) \\ &= \beta_0 + \beta_1 X_h. \end{aligned} \]

Siguiendo un procedimiento muy similar al que desarrollamos para \(\hat{\beta_0}\) es posible demostrar que la varianza de \(\hat{Y}\) es igual a:

\[ Var[\hat{Y}_h] = \sigma^2 \left[ \frac{1}{n} + \frac{(X_h - \bar{X})^2}{\sum_{i=1}^n (X_i - \bar{X})^2} \right]. \]

Tarea

¿Qué podemos decir de \(Var[\hat{Y}]\)? Fijémonos en \(X\): podemos claramente ver que para valores de \(X\) cercanos a \(\bar{X}\) la varianza se acercará a su mínimo, y aumentará conforme el valor se aleje. Es decir, que las mejores estimaciones (en términos de la varianza) se realizarán para valores de X cercanos a su media.

¿Cuál es la distribución muestral de \(\hat{Y}_h\)? Utilizando el supuesto de normalidad de los errores y observando que \(\hat{Y}_h\) es una combinación lineal de \(Y_i\)} entonces podemos afirmar que \(\hat{Y}_h \sim N(\cdot, \cdot)\), con media y varianza según lo señalado más arriba.

Ahora, igualmente, por argumentos que ya hemos utilizado, podemos establecer que:

\[\frac{\hat{Y}_h - E[Y_h]}{s_{\hat{Y}}} \sim t_{n-2}.\]

Por lo tanto, podemos establecer un intervalo de confianza para \(E[Y]\) al \((1 - \alpha)\%\) de confianza como:

\[\hat{Y} \pm t_{(n-2, 1 - \frac{\alpha}{2})} s_{\hat{Y}}\]

donde \(t_{(n-2, 1 - \frac{\alpha}{2})}\) es el cuantil \(1 - \frac{\alpha}{2}\) de una distribución \(t\) con \(n-2\) grados de libertad y

\[ s^2\{\hat{Y}_h\} = MSE \left[ \frac{1}{n} + \frac{(X_h - \bar{X})^2}{\sum_{i=1}^n (X_i - \bar{X})^2} \right]. \]

IMPORTANTE: recuerda qué es lo que representa / estima \(\hat{Y}\).

¿Cuál sería una manera inteligente de diseñar un experimento si el objetivo del experimento es estimar el valor \(E(Y_h | X_h)\)?

Ejemplo
Supongamos ahora que queremos analizar el comportamiento de nuestro modelo para valores de \(X = 250\) y \(X = 400\). Entonces, sabemos que:
y.est.250 <- b.0.est + b.1.est*250

s.est.y.250 <- 
  sqrt(
    MSE *
      (
        1/nrow(marketing) + 
          ((250 - x.barra)^2)/(sum((marketing$youtube-x.barra)^2))
        )
    )

ic.li <- y.est.250 - qt(p = 0.975, df = nrow(marketing)-2)*s.est.y.250
ic.ls <- y.est.250 + qt(p = 0.975, df = nrow(marketing)-2)*s.est.y.250
  • \(\hat{Y}_{250} = \hat{\beta}_0 + \hat{\beta}_1 X = 20.3232724\)

  • \(MSE = 15.2911315\)

  • \(n = 200\)

  • \(s_{\hat{Y}_{250}} = \sqrt{MSE \left[ \frac{1}{n} + \frac{(X_k - \bar{X})^2}{\sum_{i=1}^n (X_i - \bar{X})^2} \right]} = 0.3400245\)

Por lo que podemos establecer el intervalo al 95% de confianza para \(E[Y_k]\) como:

\[(19.652738, 20.9938067).\]

Esto lo podemos entonces visualizar:

ggplot(data = marketing) + 
  aes(x = youtube, y = sales) +
  geom_point() +
  geom_smooth(method = 'lm', formula = y ~ x, se = FALSE) +
  geom_segment(x = 250, xend = 250, y = ic.li, yend = ic.ls) +
  geom_point(
    data = data.frame(x = 250, y = y.est.250)
    , mapping = aes(x = x, y = y)
    , shape = 1) +
  geom_point(
    data = data.frame(x = 250, y = ic.li)
    , mapping = aes(x = x, y = y)
    , shape = 3) +
  geom_point(
    data = data.frame(x = 250, y = ic.ls)
    , mapping = aes(x = x, y = y)
    , shape = 3) +
  theme_bw()

Y, desde luego, puedo hacer esto mismo para todos los puntos en la muestra obteniendo unas bandas de confianza para el estimador del valor medio de la variable respuesta (dado \(X_h\)):

ggplot(data = marketing) + 
  aes(x = youtube, y = sales) +
  geom_point() +
  geom_smooth(method = 'lm', formula = y ~ x, se = TRUE) +
  geom_segment(x = 250, xend = 250, y = ic.li, yend = ic.ls) +
  geom_point(
    data = data.frame(x = 250, y = y.est.250)
    , mapping = aes(x = x, y = y)
    , shape = 1) +
  geom_point(
    data = data.frame(x = 250, y = ic.li)
    , mapping = aes(x = x, y = y)
    , shape = 3) +
  geom_point(
    data = data.frame(x = 250, y = ic.ls)
    , mapping = aes(x = x, y = y)
    , shape = 3) +
  theme_bw()

Ahora, para \(X = 400\):

¿Qué riesgo consideras relevante para este valor de \(X\)?

y.est.400 <- b.0.est + b.1.est*400

s.est.y.400 <- 
  sqrt(
    MSE *
      (
        1/nrow(marketing) + 
          ((400 - x.barra)^2)/(sum((marketing$youtube-x.barra)^2))
        )
    )

ic.li.400 <- y.est.400 - qt(p = 0.975, df = nrow(marketing)-2)*s.est.y.400
ic.ls.400 <- y.est.400 + qt(p = 0.975, df = nrow(marketing)-2)*s.est.y.400
  • \(\hat{Y}_{400} = \hat{\beta}_0 + \hat{\beta}_1 X = 27.4537684\)

  • \(s_{\hat{Y}_{400}} = \sqrt{MSE \left[ \frac{1}{n} + \frac{(X_k - \bar{X})^2}{\sum_{i=1}^n (X_i - \bar{X})^2} \right]} = 0.6619946\)

Por lo que podemos establecer el intervalo al 95% de confianza para \(E[Y_k]\) como:

\[(26.1483034, 28.7592334).\]

ggplot(data = marketing) + 
  aes(x = youtube, y = sales) +
  geom_point() +
  geom_smooth(method = 'lm', formula = y ~ x, se = TRUE) +
  geom_segment(x = 250, xend = 250, y = ic.li, yend = ic.ls) +
  geom_segment(x = 400, xend = 400, y = ic.li.400, yend = ic.ls.400) +
  geom_point(
    data = data.frame(x = 250, y = y.est.250)
    , mapping = aes(x = x, y = y)
    , shape = 1) +
  geom_point(
    data = data.frame(x = 250, y = ic.li)
    , mapping = aes(x = x, y = y)
    , shape = 3) +
  geom_point(
    data = data.frame(x = 250, y = ic.ls)
    , mapping = aes(x = x, y = y)
    , shape = 3) +
  geom_point(
    data = data.frame(x = 400, y = y.est.400)
    , mapping = aes(x = x, y = y)
    , shape = 1) +
  geom_point(
    data = data.frame(x = 400, y = ic.li.400)
    , mapping = aes(x = x, y = y)
    , shape = 3) +
  geom_point(
    data = data.frame(x = 400, y = ic.ls.400)
    , mapping = aes(x = x, y = y)
    , shape = 3) +
  theme_bw()


¿Qué pasa si ahora queremos estimar el valor de \(Y\) para una nueva observación de \(X\)?

¿Cómo definiríamos ahora el error de estimación para este pronóstico?

Debemos considerar que se trata de un nuevo valor independiente de las observaciones anteriores, por lo tanto, si queremos estimar la varianza del error de estimación para esta nueva observación \(Y^*\) tendremos que:

\[ \begin{aligned} Var[Y_h^* - \hat{Y}_h] &= Var[Y_h^*] + Var[\hat{Y}_h] \\ &= \sigma^2 + \sigma^2 \left[ \frac{1}{n} + \frac{(X_h - \bar{X})^2}{\sum_{i=1}^n (X_i - \bar{X})^2} \right] \\ &= \sigma^2 \left[ 1 + \frac{1}{n} + \frac{(X_h - \bar{X})^2}{\sum_{i=1}^n (X_i - \bar{X})^2} \right]. \end{aligned} \]

Por lo tanto, el cociente que nos interesa ahora es:

\[ \frac{Y^* - \hat{Y}}{\sqrt{MSE \left[ 1 + \frac{1}{n} + \frac{(X_h - \bar{X})^2}{\sum_{i=1}^n (X_i - \bar{X})^2} \right]}} \sim t_{n-2}. \]

¿Cuál es, entonces, el intervalo de confianza para \(Y^*\)?

Ejemplo (cont.)
En la sección anterior analizamos el comportamiento (medio) de nuestro modelo para un valor de \(X\), ¿qué podemos decir del pronóstico de nuestro modelo para una nueva observación de \(X\)? Supongamos nuevamente que el valor observado de \(X\) es 250. Entonces:
s.est.pred.250 <- 
  sqrt(
    MSE *
      (
        1 + 
        1/nrow(marketing) + 
          ((250 - x.barra)^2)/(sum((marketing$youtube-x.barra)^2))
        )
    )

ic.li <- y.est.250 - qt(p = 0.975, df = nrow(marketing) - 2) * s.est.pred.250
ic.ls <- y.est.250 + qt(p = 0.975, df = nrow(marketing) - 2) * s.est.pred.250

ggplot(data = marketing) + 
  aes(x = youtube, y = sales) +
  geom_point() +
  geom_smooth(method = 'lm', formula = y ~ x, se = TRUE) +
  geom_segment(x = 250, xend = 250, y = ic.li, yend = ic.ls) +
  geom_point(data = data.frame(x = 250, y = y.est.250), mapping = aes(x = x, y = y), shape = 1) +
  geom_point(data = data.frame(x = 250, y = ic.li), mapping = aes(x = x, y = y), shape = 3) +
  geom_point(data = data.frame(x = 250, y = ic.ls), mapping = aes(x = x, y = y), shape = 3) +
  theme_bw()

¿Qué podemos decir de un valor de \(X = 400\)?

y.est.400 <- b.0.est + b.1.est * 400

s.est.pred.400 <- 
  sqrt(
    MSE *
      (
        1 + 
        1/nrow(marketing) + 
          ((400 - x.barra)^2)/(sum((marketing$youtube-x.barra)^2))
        )
    )

ic.li.400 <- y.est.400 - qt(p = 0.975, df = nrow(marketing) - 2) * s.est.pred.400
ic.ls.400 <- y.est.400 + qt(p = 0.975, df = nrow(marketing) - 2) * s.est.pred.400

ggplot(data = marketing) + 
  aes(x = youtube, y = sales) +
  geom_point() +
  geom_point(data = data.frame(x = 400, y = y.est.400), mapping = aes(x = x, y = y), shape = 1) +
  geom_smooth(method = 'lm', formula = y ~ x, se = TRUE) +
  geom_segment(x = 400, xend = 400, y = ic.li.400, yend = ic.ls.400) +
  geom_point(data = data.frame(x = 400, y = ic.li.400), mapping = aes(x = x, y = y), shape = 3) +
  geom_point(data = data.frame(x = 400, y = ic.ls.400), mapping = aes(x = x, y = y), shape = 3) +
  geom_segment(x = 250, xend = 250, y = ic.li, yend = ic.ls) +
  geom_point(data = data.frame(x = 250, y = y.est.250), mapping = aes(x = x, y = y), shape = 1) +
  geom_point(data = data.frame(x = 250, y = ic.li), mapping = aes(x = x, y = y), shape = 3) +
  geom_point(data = data.frame(x = 250, y = ic.ls), mapping = aes(x = x, y = y), shape = 3) +
  theme_bw()

Lo anterior podríamos haberlo hecho directamente en R, mediante la función predict:

predict.newdata <- data.frame(youtube = c(250,400))

predict(
  object = rl, newdata = predict.newdata, se.fit = TRUE, interval = 'prediction'
  )
## $fit
##        fit      lwr      upr
## 1 20.32327 12.58282 28.06372
## 2 27.45377 19.63269 35.27484
## 
## $se.fit
##         1         2 
## 0.3400245 0.6619946 
## 
## $df
## [1] 198
## 
## $residual.scale
## [1] 3.910388

Observa que en la última parte del ejercicio pronosticamos valores de la variable respuesta para valores de la variable explicativa fuera de la muestra que tenemos para la estimación del modelo. Debemos tener mucha precaución con este tipo de estimaciones. La precisión de los pronósticos dependen de manera fundamental del supuesto de que el modelo es el correcto (cosa que no hemos evaluado). La incertidumbre sobre la veracidad de este modelo se incrementa, desde luego, cuando trabajamos con datos fuera de la muestra observada.

Adicionalmente, en ocasiones puede ser de interés el pronosticar el valor medio de \(m\) nuevas observaciones de \(Y\) para un valor determinado de \(X_h\). Siguiendo el mismo procedimiento, llegaremos a determinar que el intervalo de confianza correspondiente está dado por:

\[ \hat{Y} \pm t_{(n-2, 1 - \frac{\alpha}{2})} \sqrt{MSE \left[ \frac{1}{m} + \frac{1}{n} + \frac{(X_h - \bar{X})^2}{\sum_{i=1}^n (X_i - \bar{X})^2} \right]}. \]

Compara la expresión para el intervalo del promedio de m nuevas observaciones con el de una nueva observación, ¿qué observas?

Finalmente, otro problema de interés consiste en la estimación simultánea de valores medios de la variable respuesta para múltiples niveles de la variable explicativa. Es necesario entonces tomar en consideración que, dado que se trata de estimaciones simultáneas, el nivel de confianza se deteriora y, por lo tanto, es necesario realizar un ajuste. Para ello, se recurre al procedimiento de Working-Hotelling según el cuál, para construir el intervalo de \((1-\alpha)\) % de confianza debemos usar

\[ \hat{Y}_h \pm W \times s_{\hat{Y}_h} \]

donde \(W = 2 \times {_{\alpha}F_{2,n-2}}\).

El intervalo de confianza de Working-Hotelling es usado, principalmente, para el caso en el que se desea establecer el intervalo de confianza para toda la recta de regresión, motivo por el que se le conoce como la banda de Working-Hotelling.

Como es razonable esperar, la banda de WH tiene límites más amplios que el intervalo de confianza para un único nivel de la variable explicativa.

Material adicional

PRECISIÓN DE LA ESTIMACIÓN DE LA REGRESIÓN (ANÁLISIS DE VARIANZA)

Lecturas recomendadas
  • Kutner et al. (2004), cap. 2.7.
  • Draper and Smith (1966), cap. 1.3.

Hemos ajustado ya una línea recta a nuestros datos, la pregunta lógica que sigue es, ¿qué tan buena es esta línea recta como representación de nuestros datos? Estudiaremos ahora, entonces, la variabilidad observada en la variable respuesta. Para ello, entonces, nos fijaremos en los valores de:

\[Y_i - \bar{Y}.\]

Sabemos, desde luego, que la suma de estos valores da cero, por lo que nos fijaremos en la suma de los cuadrados:

\[\sum\limits_{i = 1}^n(Y_i - \bar{Y})^2 = \sum\limits_{i = 1}^n Y_i^2 - n\bar{Y}^2.\]

Notemos que esta cantidad, en sí, no nos interesa que sea particularmente grande o pequeña. Es una estadística que describe a nuestros datos y su comportamiento, su variabilidad al rededor de la media, en particular. Sin embargo, sí nos gustaría descomponer esta variabilidad de los datos para entender mejor de dónde proviene, para lo que haremos lo siguiente:

\[ \begin{aligned} \sum\limits_{i=1}^n (Y_i - \bar{Y})^2 &= \sum\limits_{i=1}^n [(Y_i - \hat{Y_i}) + (\hat{Y_i} - \bar{Y})]^2 \\ &= \sum\limits_{i=1}^n (Y_i - \hat{Y_i})^2 + \sum\limits_{i=1}^n (\hat{Y_i} - \bar{Y})^2 + 2 \sum\limits_{i=1}^n (Y_i - \hat{Y_i})(\hat{Y_i} - \bar{Y}) \\ &= \sum\limits_{i=1}^n (Y_i - \hat{Y_i})^2 + \sum\limits_{i=1}^n (\hat{Y_i} - \bar{Y})^2. \end{aligned} \]

Podemos utilizar esta expresión entonces para interpretar la variabilidad observada en la variable respuesta como proveniente de dos fuentes: el error del modelo y la variabilidad del modelo al rededor de la media de la variable respuesta.

En ocasiones podemos ver esto mismo presentado como:

\[ \sum\limits_{i=1}^n Y_i^2 = \sum\limits_{i=1}^n (Y_i - \hat{Y_i})^2 + \sum\limits_{i=1}^n (\hat{Y_i} - \bar{Y})^2 + n\bar{Y}^2. \]

Podemos ver ahora, entonces, que a la suma cuadrática de la variable respuesta (que puede ser interpretada como la variación total sin corregir por la media) la podemos descomponer en tres elementos: una parte proveniente de las variaciones al rededor de las estimaciones de regresión (errores de regresión), otra proveniente de las variaciones de los estimadores de regresión al rededor de la media, y finalmente la variación capturada por la media.

Visto de esta manera, sí podemos identificar que una parte de esta variabilidad quisiéramos que fuera lo más pequeña posible. Esto es, suena razonable argumentar que nos interesa que la diferencia entre los valores observados de la variable respuesta y los valores estimados por el modelo sea lo menor posible.

¿Qué significa, en otras palabras, que \(\sum\limits_{i=1}^n (Y_i - \hat{Y_i})^2 = 0\)?

Con esto, podemos ya entonces construir el argumento principal del análisis de varianza: en la medida en la que \(\sum\limits_{i=1}^n (\hat{Y_i} - \bar{Y})^2\) represente (explique) una mayor parte de \(\sum\limits_{i=1}^n (Y_i - \bar{Y})^2\) mejor será nuestro modelo de regresión (en lo que respecta a explicar la variabilidad de los datos, desde luego).

Es común presentar los resultados del análisis del origen de la variación de manera tabular en lo que se conoce como “Análisis de Varianza” (o ANOVA, por sus siglas en inglés). La tabla del ANOVA incluye típicamente los siguientes elementos:

FUENTE VALOR GRADOS DE LIBERTAD MEDIA
Modelo \(SSR = \sum(\hat{Y_i} - \bar{Y})^2\) \(1\) \(SSR/1\)
Error \(SSE = \sum(Y_i - \hat{Y_i})^2\) \(n-2\) \(SSE/(n-2)\)
Total \(SST = \sum(Y_i - \bar{Y_i})^2\) \(n-1\) \(SST/(n-1)\)

Esta misma información en ocasiones puede ser presentada alternativamente como:

FUENTE VALOR GRADOS DE LIBERTAD MEDIA
Corrección \(n\bar{Y}^2\) \(1\)
Modelo. \(SSR = \sum(\hat{Y_i} - \bar{Y})^2\) \(1\) \(MSR = SSR / 1\)
Error \(SSE = \sum(Y_i - \hat{Y})^2\) \(n-2\) \(MSE = SSE / (n-2)\)
Total \(\sum Y_i^2\) \(n\)

Si quisiéramos, por lo tanto, juzgar qué tan preciso es nuestro modelo de regresión, una manera que tenemos para hacerlo es estudiar estos valores. Quisiéramos, desde luego, que los errores de regresión fueran lo más pequeños posible y, por lo tanto, que la mayor parte de la variación se concentre en las variaciones al rededor de la media.

Derivado de lo anterior, un valor que se busca calcular siempre cuando ajustamos un modelo de regresión lineal es el cociente:

\[R^2 = \frac{\sum\limits_{i=1}^n (\hat{Y_i} - \bar{Y})^2}{\sum\limits_{i=1}^n (Y_i - \bar{Y})^2}.\]

A \(R^2\) se le conoce como el coeficiente de determinación y representa el grado de asociación lineal que existe entre la variable explicativa y la variable respuesta. Coloquialmente, la \(R^2\) se interpreta como la cantidad de variabilidad de la variable respuesta recogida o explicada por el modelo ajustado.

Ejemplo (cont.)
Anteriormente ajustamos el modelo lineal a nuestros datos. Construiremos la tabla ANOVA de dicho ajuste.
  • La media de la variable respuesta es \(\bar{Y} = 16.827\)

  • Las estimaciones del modelo para \(Y_i\) son (se muestran las primeras 6 únicamente):

SSR <- sum((y.gorro - y.barra)^2)
SSE <- sum((marketing$sales - y.gorro)^2)
SST <- sum((marketing$sales - y.barra)^2)

kable(
  x = head(data.frame(y.i. = marketing$sales, 'y.i.gorro' = y.gorro))
  , digits = 2
  , format = 'html'
  , align = c('c', 'c')
  ) |> 
  kable_classic()
y.i. y.i.gorro
26.52 21.56
12.48 10.98
11.16 9.42
22.20 17.08
15.48 18.75
8.64 8.94

 

 

 

  • \(SSR = 4773.0501603\)

  • \(SSE = 3027.6440397\)

  • \(SST = 7800.6942\)

  • \(R^2 = 61.19%\)

En R, utilizando la función anova obtenemos:

anova(object = rl)

Observa que R arroja el resultado en función de la variable explicativa. Esto tiene que ver con el contraste F, pero el resultado es equivalente.


MEDIDAS DE ASOCIACIÓN LINEAL

En las secciones anteriores dedicamos un considerable esfuerzo a elaborar criterios que nos permitan determinar si existe evidencia suficiente en los datos para considerar a los parámetros de la regresión significativamente diferentes de cero. En ocasiones, sin embargo, nos puede interesar emitir algún comentario sobre el grado en el que la relación entre la variable dependiente y la variable explicativa es lineal.

\(R^2\) (CONT.)

Ya se mencionó anteriormente a la estadística \(R^2\):

\[R^2 = \frac{SSR}{SST} = 1-\frac{SSE}{SST}.\]

La \(R^2\) no estima ningún parámetro de la regresión, es únicamente una medida descriptiva de la fortaleza de la relación lineal entre las variables explicativa y respuesta. Dijimos, sin embargo, que esta estadística suele ser interpretada coloquialmente como la cantidad de variabilidad observada en la variable respuesta que es recogida o explicada por el modelo o, en otras palabras, por la relación lineal entre la variable respuesta y la variable explicativa.

En este sentido, por lo tanto, mientras mayor sea la \(R^2\) (recordemos que \(0 \leq R^2 \leq 1\)) mayor se dice que será el poder explicativo de la relación lineal. Es importante, sin embargo, tener cuidado en el uso de la \(R^2\) (aún cuando en la práctica es ampliamente utilizada):

  • El valor de la \(R^2\) suele ser particularmente sensible a la amplitud de los valores de la variable explicativa. A mayor amplitud, mayor \(R^2\).

  • Recordemos que el ajuste del modelo y, por lo tanto, la inferencia sobre una posible relación lineal, aplica fundamentalmente dentro del rango de los valores observados (principalmente para la variable independiente). Aún con una \(R^2\) alta es necesario tener cuidado con lo que afirmamos para rangos no observados (por ejemplo, pronósticos) o para usos como predicción de valores nuevos (lo que depende de la varianza estimada y no necesariamente de la linealidad de la relación).

  • En ocasiones, también la \(R^2\) es empleada como un proxy del poder explicativo de la variable explicativa sobre el comportamiento de la variable respuesta, sin embargo es necesario recordar que el modelo de regresión no es un modelo de causalidad y, por lo tanto, no podemos afirmar que este sea exactamente el sentido de la relación entre las variables.

  • Un modelo con valor elevado de \(R^2\) no necesariamente es un buen modelo predictivo. Recuerda que para las predicciones el intervalo de confianza depende significativamente del estimador de la varianza del valor a pronosticar (\(S_{\hat{Y}_h}\)).

  • Adicionalmente, es necesario recordar que esta es una medida de relación lineal por lo que es necesario tener particular cuidado ante la presencia de patrones no lineales.

¿Cuál crees que sea la \(R^2\) del modelo polinomial que se mostró al inicio del curso?

Con base en tu respuesta anterior, ¿cuál crees que sea un modelo más apropiado para los datos?

COEFICIENTE DE CORRELACIÓN

Observemos que para los datos contenidos en los vectores \(X\) y \(Y\) de las observaciones podemos calcular:

\[ r_{XY} = \frac{\sum\limits_{i=1}^n (X_i - \bar{X})(Y_i - \bar{Y})}{\sqrt{\sum\limits_{i=1}^n (X_i - \bar{X})^2}\sqrt{\sum\limits_{i=1}^n (Y_i - \bar{Y})^2}}. \]

Sin importar si la variable \(X\) es o no una variable aleatoria, podemos considerar a \(r_{XY}\) como un estimador del grado de asociación (para no usar el término correlación) lineal entre las dos variables (ver Draper and Smith (1966), pág. 34 para una discusión sobre el tema). Lo cual nos puede dar una buena indicación del ajuste de nuestro modelo.

Observa que

\[ \hat{\beta_1} = \frac{\sqrt{\sum\limits_{i=1}^n (Y_i - \bar{Y})^2}}{\sqrt{\sum\limits_{i=1}^n (X_i - \bar{X})^2}} r_{XY} \]

por lo que, como se puede ver, estas cantidades están relacionadas, sólo que el coeficiente de correlación busca medir el grado de asociación lineal entre las variables mientras que el coeficiente de la regresión nos indica el incremento en el número de unidades que se espera observar en la variable dependiente por cada unidad que se incremente en la variable explicativa.

También, derivado de esta última expresión, es posible ver que (para el modelo de regresión lineal simple)

\[ |r_{XY}| = \sqrt{R^2}. \]

¿Puedes probarlo? Hint: primero prueba que \(SSE = SST - \hat\beta_1 \sum (X_i - \bar{X})Y_i\).

Material adicional

PRUEBA F (PRIMERA VUELTA)

Volvamos a tomar como referencia los valores de MSR y MSE. Sabemos que MSE es un estimado insesgado de \(\sigma^2\); MSR, por otro lado, será un estimado insesgado de \(\sigma^2\) únicamente cuando \(\beta_1 = 0\):

\[ E(MSR) = \sigma^2 + \beta_1^2 \sum_{i=1}^n (X_i - \bar{X})^2. \]

Tarea

De hecho, revisando la expresión anterior, podemos observar que si \(\beta_1 \neq 0\) entonces \(E(MSR) > E(MSE)\). Por lo tanto, los valores que componen a la tabla ANOVA nos dan elementos para juzgar no solamente la cantidad (el origen) de la variabilidad observada en la variable respuesta explicada por nuestro modelo sino también para juzgar si existe evidencia para afirmar que el coeficiente \(\beta_1\) es diferente de cero.

Nuevamente, ¿por qué nos interesa tanto saber si el coeficiente es diferente de cero?

Estamos entonces planteando la hipótesis

\[ H_0: \beta_1 = 0\\ H_1: \beta_1 \neq 0. \]

¿Dónde más vimos esta hipótesis?

Resulta, si seguimos el razonamiento expuesto unos párrafos más arriba, que la estadística

\[ F = \frac{MSR}{MSE} \sim F_{1,n-2} \]

bajo la hipótesis nula.

Demostración
Si \(\beta_1 = 0\) entonces, por el teorema de Cochran:

\[ \frac{SSR}{\sigma^2} \sim \chi^2_{1}\\ \frac{SSE}{\sigma^2} \sim \chi^2_{n-2}\\ \]

y, por lo tanto,

\[ F = \frac{\frac{\frac{SSR}{\sigma^2}}{1}}{\frac{\frac{SSE}{\sigma^2}}{n-2}} = \frac{\frac{SSR}{1}}{\frac{SSE}{n-2}} = \frac{MSR}{MSE} \sim F_{1,n-2}. \]


Podemos entonces construir el contraste de hipótesis para un nivel \(1-\alpha\) de confianza utilizando la regla de decisión siguiente (recordemos que se trata de un contraste de una sola cola): si \(F \leq {_{1-\alpha}F_{1,n-2}}\), entonces concluir \(H_0\); en otro caso, \(H_1\).

Ejemplo

[PENDIENTE]


Ahora, si recordamos las propiedades de la distribución t, entonces podremos observar que, para el caso que nos ocupa (regresión lineal simple), las pruebas F y t (de dos colas) son equivalentes.

ESTIMADORES DE MÁXIMA VEROSIMILITUD

Los estimadores de los parámetros de la regresión pueden también ser obtenidos mediante estimación por máxima verosimilitud. Para ello, desde luego, debemos partir de supuestos distribucionales. En nuestro caso, entonces, partiremos del supuesto de que los errores siguen una distribución Normal:

\[ \epsilon_i \sim N(0, \sigma^2). \]

Por lo tanto, si la variable es apropiadamente descrita por el modelo lineal simple de primer orden:

\[ Y_i = \beta_0 + \beta_1 X_i + \epsilon_i \\ Y_i|X_i \sim N(\beta_0 + \beta_1 X_i, \sigma^2). \]

Se desprende de ello entonces que, para las \(n\) observaciones de la muestra (asumiendo que se trata de observaciones independientes), la función de verosimilitud es:

\[ L(\beta_0, \beta_1, \sigma^2) = \prod\limits_{i=1}^n \frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(y_i - \beta_0 - \beta_1x_i)^2}{2\sigma^2}}. \]

Si queremos estimar los parámetros de regresión (\(\beta_0\), \(\beta_1\) y \(\sigma^2\)) buscamos entonces los valores que maximizan a la función de verosimilitud. En este caso, los valores que maximizan a la función de verosimilitud son los mismos que maximizan a la log-verosimilitud:

\[ \begin{aligned} \log[L(\beta_0, \beta_1, \sigma^2)] &= \sum\limits_{i=1}^n \left[-\log(\sigma) - \log(\sqrt{2\pi}) -\frac{(y_i - \beta_0 - \beta_1x_i)^2}{2\sigma^2} \right]\\ &= -n\log(\sigma) - n\log(\sqrt{2\pi}) - \sum\limits_{i=1}^n \frac{(y_i - \beta_0 - \beta_1x_i)^2}{2\sigma^2}\\ &= -\frac{n}{2}\log(\sigma^2) - n\log(\sqrt{2\pi}) - \sum\limits_{i=1}^n \frac{(y_i - \beta_0 - \beta_1x_i)^2}{2\sigma^2}. \end{aligned} \]

Para encontrar los valores que maximizan esta expresión entonces es necesario encontrar los valores de los parámetros que satisfacen las siguientes condiciones:

\[ \begin{aligned} \frac{\partial \log[L(\beta_0, \beta_1, \sigma^2)]}{\partial \beta_0} &= 0\\ \frac{\partial \log[L(\beta_0, \beta_1, \sigma^2)]}{\partial \beta_1} &= 0\\ \frac{\partial \log[L(\beta_0, \beta_1, \sigma^2)]}{\partial \sigma^2} &= 0. \end{aligned} \]

Desarrollando las condiciones de arriba tenemos que:

\[ \begin{aligned} \frac{\partial \log[L(\beta_0, \beta_1, \sigma^2)]}{\partial \beta_0} &= \frac{1}{\sigma^2} \sum\limits_{i=1}^n (y_i - \beta_0 - \beta_1x_i)\\ \frac{\partial \log[L(\beta_0, \beta_1, \sigma^2)]}{\partial \beta_1} &= \frac{1}{\sigma^2} \sum\limits_{i=1}^n x_i(y_i - \beta_0 - \beta_1x_i)\\ \frac{\partial \log[L(\beta_0, \beta_1, \sigma^2)]}{\partial \sigma^2} &= -\frac{n}{2\sigma^2} + \frac{1}{2} \sigma^{-4} \sum\limits_{i=1}^n (y_i - \beta_0 - \beta_1x_i)^2. \end{aligned} \]

Dado que buscamos

\[ \begin{aligned} \frac{\partial \log[L(\beta_0, \beta_1, \sigma^2)]}{\partial \beta_0} &= 0\\ \frac{1}{\sigma^2} \sum\limits_{i=1}^n (y_i - \beta_0 - \beta_1x_i) &= 0 \\ \sum\limits_{i=1}^n (y_i - \beta_0 - \beta_1x_i) &= 0. \end{aligned} \]

y, por el lado de \(\beta_1\):

\[ \begin{aligned} \frac{\partial \log[L(\beta_0, \beta_1, \sigma^2)]}{\partial \beta_1} &= 0\\ \frac{1}{\sigma^2} \sum\limits_{i=1}^n x_i(y_i - \beta_0 - \beta_1x_i) &= 0 \\ \sum\limits_{i=1}^n x_i(y_i - \beta_0 - \beta_1x_i) &= 0. \end{aligned} \]

Como se puede ver, estas expresiones son las mismas a las que llegamos cuando desarrollamos para mínimos cuadrados, por lo que podemos concluir que los estimadores de los coeficientes serán los mismos que los de mínimos cuadrados. El procedimiento se sigue de lo expuesto anteriormente.

Ahora, para \(\sigma^2\):

\[ \begin{aligned} \frac{\partial \log[L(\beta_0, \beta_1, \sigma^2)]}{\partial \sigma^2} &= 0 \\ -\frac{n}{2\sigma^2} + \frac{1}{2} \sigma^{-4} \sum\limits_{i=1}^n (y_i - \beta_0 - \beta_1x_i)^2 &= 0 \\ \sigma^{-2} \sum\limits_{i=1}^n (y_i - \beta_0 - \beta_1x_i)^2 &= n\\ \sigma^{2} &= \frac{\sum\limits_{i=1}^n (y_i - \beta_0 - \beta_1x_i)^2}{n}. \end{aligned} \]

Por lo que

\[ \begin{aligned} \hat{\sigma}^{2} &= \frac{\sum\limits_{i=1}^n (y_i - \hat{y}_i)^2}{n}. \end{aligned} \]

Sin embargo, ya vimos que este es un estimador sesgado.

Legendre fue el primero en proponer minimizar el cuadrado de los errores para obtener los valores de los coeficientes, en 1805. Posteriormente Gauss, en 1809, introdujo el supuesto de normalidad de los errores para obtener los estimadores mediante la maximización de la verosimilitud. Sin embargo, el propio Gauss regresó más tarde a la formulación menos restrictiva de mínimos cuadrados al demostrar (1829) que los estimadores de mínimos cuadrados son los de mínima varianza dentro de la clase de estimadores insesgados.

REGRESIÓN BAYESIANA (OPCIONAL)

Si pensamos que la variable respuesta \(Y = \beta_0 + \beta_1 X + \epsilon\) es una variable aleatoria y, partiendo del supuesto de que sabemos q ue \(\epsilon \sim F_\epsilon (\mu_\epsilon = 0, \sigma_{\epsilon}^2)\), entonces podemos deducir que

\[ Y | \beta_0, \beta_1,\sigma^2,X \sim F_Y (\mu_Y = \beta_0 + \beta_1X, \sigma_Y^2 = \sigma_{\epsilon}^2). \]

Adicionalmente, desde una perspectiva Bayesiana, dado que \(\beta_0\), \(\beta_1\) y \(\sigma^2\) son cantidades desconocidas, podemos describir la incertidumbre asociada a dichos valores mediante las distribuciones (previas) \(F_{\beta_0}\), \(F_{\beta_1}\) y \(F_{\sigma^2}\). Así, combinando nuestro conocimiento previo de los parámetros y la distribución condicional de la variable de interés, podemos obtener lo que se conoce como la función de distribución posterior de los parámetros, que nos permitirá hacer inferencia sobre los parámetros de la regresión.

Al igual que en el caso frecuentista, es a partir de este punto en el que, para poder avanzar a resultados más concretos, es necesario hacer algunos supuestos. Los supuestos más comúnmente utilizados (aunque en el caso Bayesiano es mucho más frecuente, quizás, modificar algunos de estos supuestos) son los siguientes:

  • \(1/\sigma_Y^2 = 1/\sigma_Y^2 = \tau \sim Gamma(\alpha_0, \beta_0)\)

  • \(\beta_0 | \tau \sim N(\theta_{\beta_0}, \tau)\)

  • \(\beta_1 | \tau \sim N(\theta_{\beta_1}, \tau)\)

Como es de esperarse, bajo estos supuestos, y si añadimos una función de pérdida cuadrática, los resultados obtenidos por el procedimiento Bayesiano serán los mismos que los obtenidos para máxima verosimilitud y, desde luego, el método de mínimos cuadrados con supuesto de normalidad de errores.

REGRESIÓN A TRAVÉS DEL ORIGEN (OPCIONAL)

Lecturas recomendadas
  • Kutner et al. (2004), cap. 4.4

En ocasiones se sabe que el modelo que se desea ajustar pasa por el origen (esto es, se sabe que \(Y = 0\) cuando \(X = 0\)). Lo que esto nos dice, entonces, es que sabemos que \(\beta_0 = 0\). Por lo tanto, la expresión del modelo a ajustar es \(Y = \beta_1 X + \epsilon\), si se mantienen el resto de los supuestos, entonces nuestro problema se reduce a encontrar el estimador de mínimos cuadrados de solamente un parámetro:

\[ \hat\beta_1 = \frac{\sum\limits_{i=1}^n X_iY_i}{\sum\limits_{i=1}^n X_i^2}. \]

En forma similar, entonces, podemos construir los estimadores que construimos para el modelo completo:

  • \(\hat{Y}_i = \hat\beta_1X_i\); \(\hat\sigma^2\{\hat{Y}_i\} = \frac{X_i^2MSE}{\sum\limits_{i=1}^n X_i^2}\); \(IC(\hat{Y}_i) = \hat{Y}_i \pm \hat\sigma\{\hat{Y}_i\} \times {_{1-\alpha}{t_{n-1}}}\).

  • \(\hat\sigma^2 = MSE = \frac{\sum\limits_{i=1}^n (Y_i - \hat{Y}_i)^2}{n-1}\).

  • \(\hat\beta_1 = \frac{\sum\limits_{i=1}^n X_iY_i}{\sum\limits_{i=1}^n X_i^2}\); \(\hat\sigma^2\{\hat\beta_1\} = \frac{MSE}{\sum\limits_{i=1}^n X_i^2}\); \(IC(\beta_1) = \hat\beta_1 \pm \hat\sigma\{\hat\beta_1\} \times {_{1-\alpha}{t_{n-1}}}\).

  • \(\hat\sigma^2\{\hat{Y}_i^*\} = MSE \times \left(1 + \frac{X_i^2}{\sum\limits_{i=1}^n X_i^2}\right)\); \(IC(\hat{Y}_i^*) = \hat{Y}_i^* \pm \hat\sigma\{\hat{Y}_i^*\} \times {_{1-\alpha}{t_{n-1}}}\).

Observa que siempre es posible construir un modelo de un solo coeficiente a partir del modelo original restando a la variable respuesta su media (a esto se le conoce como centrar los datos):

\[ Y - \bar{Y} = \beta'_0 + \beta_1X + \epsilon \]

\[ \beta'_0 = \beta_0 - \bar{Y}. \]

Si desarrollamos ahora los estimadores de mínimos cuadrados para este modelo modificado podemos fácilmente encontrar que:

\[\hat{\beta'_0} = 0.\]

Sin embargo, es importante observar que, para eliminar la presencia del coeficiente \(\beta_0\) tuvimos que incurrir en el costo de reducir la información disponible en el modelo ya que la resta de la media implica perder una observación (para \(Y - \bar{Y}\), una observación es redundante).

Ejemplo
Supongamos que para los datos de marketing, alguien opina que sin publicidad no se vende. Asume que este supuesto es válido para la relación entre la promoción en Youtube y las ventas de la empresa y ajusta el modelo correspondiente. Proporciona la recta de regresión ajustada (y grafícala) y los estimadores de los parámetros de la regresión.
R
En R es posible especificar un modelo que pase por el origen de la siguiente manera:
modelo.origin <- lm(formula = sales ~ 0 + youtube, data = marketing)
summary(modelo.origin)
## 
## Call:
## lm(formula = sales ~ 0 + youtube, data = marketing)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -13.6808  -0.9554   3.0121   6.1750  10.1775 
## 
## Coefficients:
##         Estimate Std. Error t value Pr(>|t|)    
## youtube  0.08325    0.00200   41.63   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 5.774 on 199 degrees of freedom
## Multiple R-squared:  0.897,  Adjusted R-squared:  0.8965 
## F-statistic:  1733 on 1 and 199 DF,  p-value: < 2.2e-16
ggplot(data = marketing) + 
  aes(x = youtube, y = sales) +
  geom_point() +
  geom_smooth(method = 'lm', formula = y ~ 0 + x, se = FALSE) +
  theme_classic() +
  labs(y = 'Ventas', x = 'Youtube', caption = 'Regresión através del origen.')

sigma.gorro.o <- sqrt(sum((marketing$sales - modelo.origin$fitted.values)^2)/(nrow(marketing)-1))
sigma.gorro.o
## [1] 5.774404

¿Cómo se compara este error estándar con el del resultado obtenido en el modelo completo?

Ahora podemos obtener entonces el intervalo de confianza al 95% para \(\beta_1\):

sigma.gorro.b1.o <- sqrt((sigma.gorro.o^2)/sum(marketing$youtube^2))
sigma.gorro.b1.o
## [1] 0.001999607
ic.b1.o.inf <- modelo.origin$coefficients[1] - sigma.gorro.b1.o*qt(p = 0.975, df = nrow(marketing)-1)
ic.b1.o.inf
##    youtube 
## 0.07930647
ic.b1.o.sup <- modelo.origin$coefficients[1] + sigma.gorro.b1.o*qt(p = 0.975, df = nrow(marketing)-1)
ic.b1.o.sup
##    youtube 
## 0.08719275

¿Cuál de los dos modelos consideras que es mejor?


ESTIMACIÓN SIMULTÁNEA (OPCIONAL)

Lecturas recomendadas
  • Kutner et al. (2004), caps. 4.1, 4.2 y 4.3.

En ocasiones se desea realizar una estimación en forma simultánea sobre los coeficientes de la regresión. Observa que este es un problema de naturaleza más compleja que el de estimación sobre un solo coeficiente. Tomemos como ejemplo la estimación mediante intervalos de confianza: si deseamos construir un intervalo de confianza para los dos coeficientes de la regresión en forma simultánea, el espacio del intervalo de confianza es un espacio en \(\mathbb{R}^2\).

PROCEDIMIENTO DE BONFERRONI

El procedimiento de Bonferroni es un conjunto de pasos para construir intervalos de confianza simultáneos para los coeficientes de la regresión. Comencemos a partir de los intervalos de confianza individuales para \(\beta_0\) y \(\beta_1\) para un nivel de confianza \(1 - \alpha\):

\[ \hat{\beta}_1 \pm \hat\sigma_{\hat{\beta_1}} t_{\left(n-2, 1 - \frac{\alpha}{2} \right)}\\ \hat{\beta}_0 \pm \hat\sigma_{\hat{\beta_0}} t_{(n-2, 1-\alpha/2)}. \]

Si ahora definimos a \(A_0\) como el evento de que el intervalo de confianza para \(\beta_0\) no contiene al valor real de \(\beta_0\) y \(A_1\) como el evento de que el intervalo de confianza para \(\beta_1\) no contiene al valor real de \(\beta_1\), entonces

\[ P[A_0] = \alpha\\ P[A_1] = \alpha\\ P[A_0 \cup A_1] = P[A_0] + P[A_1] - P[A_0 \cap A_1]. \]

La probabilidad de que el intervalo para \(\beta_0\) contenga a \(\beta_0\) y simultáneamente el intervalo para \(\beta_1\) contenga a \(\beta_1\) puede ser denotado por

\[ P[A_0^c \cap A_1^c] = P[(A_0 \cup A_1)^c]\\ = 1 - P[A_0 \cup A_1]\\ = 1 - P[A_0] - P[A_1] + P[A_0 \cap A_1]\\ = 1 - 2 \alpha + P[A_0 \cap A_1] \geq 1 - 2 \alpha. \]

La desigualdad de Bonferroni nos dice entonces cuál será el límite inferior del nivel de confianza si se utilizan los intervalos estimados individualmente para realizar una estimación simultánea. Desde luego, se puede utilizar en el otro sentido, es posible establecer el nivel de significancia deseado para la estimación simultánea para determinar el nivel de confianza necesario para los intervalos individuales.

Ejemplo
Calcula un intervalo de al menos un 90% de confianza conjunto para \(\beta_0\) y \(\beta_1\).
load(file = 'ejemplo.Rdata')

alpha <- 0.05

v.c <- qt(p = 1 - alpha/2, df = nrow(marketing)-2)

ic.1.inf <- b.1.est - v.c*se.b1.est
ic.1.sup <- b.1.est + v.c*se.b1.est

ic.0.inf <- b.0.est - v.c*se.b0.est
ic.0.sup <- b.0.est + v.c*se.b0.est

Los intervalos de confianza para \(\beta_0\) y \(\beta_1\), \([7.3557 < \beta_0 < 9.5226]\) y \([0.0422 < \beta_1 < 0.0528]\) son, individualmente, intervalos al 95% de confianza. Entonces, utilizando la desigualdad de Bonferroni, el intervalo de confianza conjunto \([7.3557 < \beta_0 < 9.5226, 0.0422 < \beta_1 < 0.0528]\) es un intervalo a un nivel de significancia mayor o igual a 90%.


ESTIMACIÓN SIMULTÁNEA DE DIFERENTES NIVELES DE RESPUESTA MEDIA

Otra situación en la que se puede considerar relevante el problema de estimación simultánea es aquella en la que se desea estimar el nivel de respuesta media para más de un valor de la variable explicativa en forma simultánea.

PROCEDIMIENTO DE WORKING-HOTELLING

El procedimiento diseñado por Working and Hotelling (1929) parte de la idea de obtener un intervalo para la estimación simultánea para todos los niveles observados para la variable explicativa. Estos intervalos serán, entonces, un caso límite o extremo.

El intervalo al \(1 - \alpha\) de confianza establecido por el procedimiento de WH, entonces, queda expresado de la siguiente manera:

\[ \hat{Y}_i \pm W s\{\hat{Y}_i\};\\ W^2 = 2F_{(1-\alpha;2, n-2)}, \]

donde \(F_{(1-\alpha;n-2)}\) es el cuantil \(1-\alpha\) de una función de distribución \(F\) con 2 y \(n-2\) grados de libertad.

Ejemplo
Calcula los intervalos al 95% de confianza, simultáneos, para el valor medio de las ventas cuando el gasto en promoción en Youtube es de $100,000 y $200,000 dólares. Utiliza el procedimiento de Working-Hotelling. Compara estos intervalos con los intervalos obtenidos si se construyen de manera independiente.
R
Primero, calculamos el valor del estadístico \(W\) utilizando el cuantil 95 de la distribución \(F\) con 2 y 198 grados de libertad:
load(file = 'ejemplo.Rdata')

alpha <- 0.05

W <- sqrt(2*qf(p = 0.95, df1 = 2, 198))
W
## [1] 2.466381

y el estimador de la desviación estándar de \(\hat{Y}_{100}\) y \(\hat{Y}_{200}\):

s.est.y.100 <- 
  sqrt(
    MSE *
      (
        1/nrow(marketing) + 
          ((100 - x.barra)^2)/(sum((marketing$youtube-x.barra)^2))
        )
    )
s.est.y.100
## [1] 0.3446273
s.est.y.200 <- 
  sqrt(
    MSE *
      (
        1/nrow(marketing) + 
          ((200 - x.barra)^2)/(sum((marketing$youtube-x.barra)^2))
        )
    )
s.est.y.200
## [1] 0.2836729

Con este valor podemos construir los intervalos simultáneos para:

  • \(X_i = 100\):
y.100 <- predict(object = rl, newdata = data.frame(youtube = 100))
li <- y.100 - W*s.est.y.100
li
##        1 
## 12.34279
ls <- y.100 + W*s.est.y.100
ls
##        1 
## 14.04276
  • \(X_i = 200\):
y.200 <- predict(object = rl, newdata = data.frame(youtube = 200))

li <- y.200 - W*s.est.y.200
li
##        1 
## 17.24679
ls <- y.200 + W*s.est.y.200
ls
##        1 
## 18.64609

Comparemos ahora con los intervalos si los hubiéramos construido de manera independiente:

predict(
  object = rl
  , newdata = data.frame(youtube = c(100, 200))
  , interval = 'confidence'
  )
##        fit      lwr      upr
## 1 13.19278 12.51317 13.87239
## 2 17.94644 17.38703 18.50585

Como es de esperar, el procedimiento de W-H, dado que busca construir un intervalo de confianza para toda la recta de regresión en forma simultánea, dará intervalos más amplios que el procedimiento para una sola observación basado en la estadística t. La interpretación, sin embargo, es esencialmente la misma: nos indica la proporción de las veces que esperaríamos observar rectas estimadas dentro de la banda en una serie grande de muestras en las que los niveles de la variable explicativa se mantienen los mismos.

Material adicional
  • Working and Hotelling (1929)

PROCEDIMIENTO DE BONFERRONI

El procedimiento de Bonferroni expuesto anteriormente para construir intervalos de confianza en forma simultánea para \(\beta_0\) y \(\beta_1\) en realidad es un procedimiento genérico y, por tanto, podemos aplicarlo también a la inferencia simultánea sobre diferentes niveles de respuesta media.

Así, si se desea construir simultáneamente el intervalo de confianza asociado a \(g\) respuestas medias para diferentes niveles de la variable explicativa, los intervalos se construirán conforme de la siguiente manera:

\[ \hat{Y}_h \pm B \times s\{\hat{Y}_h\};\\ B = t_{n-2,1 - \frac{\alpha}{2g}}. \]

En otras palabras, como se puede ver, simplemente se establecerá un cuantil más extremo de la distribuciópn \(t\) debido a la incertidumbre adicional asociada a la simultaneidad de la estimación.

Ejemplo
Calcula ahora los intervalos al 95% de confianza, simultáneos, para el valor medio de las ventas cuando el gasto en promoción en Youtube es de $100,000 y $200,000 dólares utilizando el procedimiento de Bonferroni. Compara estos intervalos con los intervalos obtenidos en la sección anterior.
R
Primero, calculamos el valor del estadístico \(B\) utilizando el cuantil 98.75 de la distribución \(t\) con 198 grados de libertad:
g <- 2
B <- qt(p = 1 - 0.05/(2*g), df = nrow(marketing)-2)

y el estimador de la desviación estándar de \(\hat{Y}_{100}\) y \(\hat{Y}_{200}\) (previamente calculados):

s.est.y.100
## [1] 0.3446273
s.est.y.200
## [1] 0.2836729

Con estos valores podemos construir los intervalos simultáneos para:

  • \(X_i = 100\):
li <- y.100 - B*s.est.y.100
li
##        1 
## 12.41441
ls <- y.100 + B*s.est.y.100
ls
##        1 
## 13.97114
  • \(X_i = 200\):
li <- y.200 - B*s.est.y.200
li
##        1 
## 17.30574
ls <- y.200 + B*s.est.y.200
ls
##        1 
## 18.58714

Como podemos observar, el procedimiento de Bonferroni proporciona intervalos más cerrados.


En relación con esta última observación derivada del ejemplo, es importante señalar que, al menos inicialmente, es de esperarse ya que el procedimiento de WH es un procedimiento general y limítrofe, mientras que el procedimiento de Bonferroni toma en consideración el número de estimaciones simultáneas que se están realizando. Sin embargo, es relevante señalar que para \(g\) grande el procedimiento de Bonferroni, desde luego, sigue incrementando el tamaño de los intervalos y, por lo tanto, suele producir intervalos más grandes que el procedimiento de WH. En la práctica, para lidiar con esta situación, suelen calcularse ambos (dado que son relativamente simples de calcular) y tomar los intervalos más estrechos.

Por último, es importante tener en cuenta que ambos procedimientos generan únicamente estimaciones, por medio de límites, a los intervalos reales.

ESTIMACIÓN SIMULTÁNEA DE NUEVAS OBSERVACIONES MÚLTIPLES

Consideraremos ahora el mismo caso de estimación simultánea pero ahora para varias observaciones nuevas. Nuevamente consideraremos el procedimiento de Bonferroni pero consideraremos también el procedimiento de Scheffé2.

PROCEDIMIENTO DE BONFERRONI PARA MÚLTIPLES NUEVAS OBSERVACIONES

Como en los casos anteriores, el procedimiento de Bonferroni hace uso de la estadística

\[ B = t_{n-2; 1 - \frac{\alpha}{2g}} \]

para construir de manera simultánea los intervalos de confianza correspondientes a \(g\) nuevas observaciones de la variable respuesta. De esta manera, el intervalo para el estimador de la nueva observación \(\hat{Y}_h\) será

\[ \hat{Y}_h \pm B \times s\{\hat{Y}_h\} \]

PROCEDIMIENTO DE SCHEFFÉ PARA MÚLTIPLES NUEVAS OBSERVACIONES

El procedimiento de Scheffé, en forma similar al procedimiento de Working-Hotelling, utiliza un cuantil de la distribución F, pero toma en consideración también el número de estimaciones simultáneas a realizar.

Así, si \(S^2 = g \times F_{g, n-2; 1-\alpha}\), donde \(g\) es el número de estimaciones simultáneas a realizar, y \(F_{g, n-2; 1-\alpha}\) es el cuantil \(1 - \alpha\) de una distribución F con g y n-2 grados de libertad, entonces el intervalo de \(\hat{Y}_h\) será

\[ \hat{Y}_h \pm S \times s\{\hat{Y}_h\} \]

Al igual que el procedimiento de WH, el procedimiento de Scheffé tiende a producir intervalos de confianza conservadores por lo que su uso se recomienda únicamente cuando una cantidad considerable de estimaciones simultáneas es requerida.

Ejemplo
En secciones anteriores se obtuvieron los intervalos de confianza para nuevas observaciones de las ventas dados niveles de gasto en publicidad en Youtube de $250 y $400 (miles de dólares). ¿Cuáles son los intervalos correspondientes si se nos pide obtenerlos en forma simultánea? Utiliza tanto el procedimiento de Bonferroni como el procedimiento de Scheffé, al 95% de confianza.
R
  • Bonferroni: para el procedimiento de Bonferroni primero necesitamos calcular el valor de la estadística \(B\) para \(g = 2\) y una confianza de 0.95:
g <- 2
B <- qt(p = 1 - 0.05/(2*g), df = nrow(marketing)-2)

y el estimador de la desviación estándar de una nueva observación para \(\hat{Y}_{250}\) y \(\hat{Y}_{400}\) (previamente calculados):

s.est.pred.250
## [1] 3.925143
s.est.pred.400
## [1] 3.966027

Con estos valores podemos construir los intervalos simultáneos para:

  • \(X_i = 250\):
li <- y.est.250 - B*s.est.pred.250
li
## [1] 11.45804
ls <- y.est.250 + B*s.est.pred.250
ls
## [1] 29.18851
  • \(X_i = 400\):
li <- y.est.400 - B*s.est.pred.400
li
## [1] 18.49619
ls <- y.est.400 + B*s.est.pred.400
ls
## [1] 36.41134
  • Scheffé: para el procedimiento de Scheffé primero necesitamos calcular el valor de la estadística \(S\) para \(g = 2\) y una confianza de 0.95:
g <- 2
S <- sqrt(g*qf(p = 0.95, df1 = g, df2 = nrow(marketing)-2))

Entonces, los intervalos de confianza de Scheffé serán:

  • \(X_i = 250\):
li <- y.est.250 - S*s.est.pred.250
li
## [1] 10.64237
ls <- y.est.250 + S*s.est.pred.250
ls
## [1] 30.00417
  • \(X_i = 400\):
li <- y.est.400 - S*s.est.pred.400
li
## [1] 17.67203
ls <- y.est.400 + S*s.est.pred.400
ls
## [1] 37.2355

Como podemos observar, ambos procedimientos arrojan intervalos de confianza más amplios que los obtenidos individualmente (como era de esperarse).


PRONÓSTICO INVERSO | REGRESIÓN INVERSA (OPCIONAL)

Lecturas recomendadas
  • Kutner et al. (2004), cap. 4.6.

En ocasiones el analista puede llegar a enfrentar el problema de requerir una estimación del valor de la variable explicativa que correspondería a un determinado valor de la variable respuesta (medio o nuevo). Pensemos, por ejemplo, en ensayos clínicos de un nuevo medicamento en los que se estiman los parámetros de un modelo que describe los efectos del medicamento (variable respuesta) en función de las dosis suministradas a los pacientes (variable explicativa). Sin embargo, una vez estimado el modelo, se desea utilizar el modelo estimado para determinar la dosis a suministrarle a un paciente dado que se desea obtener un nivel determinado de efectos. A este problema se le conoce como regresión inversa o calibración.

Una alternativa de solución a este problema es, desde luego, volver a ajustar un modelo de regresión utilizando como variable respuesta la dosis y como variable explicativa el efecto. Sin embargo, también es posible dar respuesta “despejando” la ecuación de regresión, es decir, proponer:

\[ \hat{X}_h = \frac{\hat{Y}_h - \hat\beta_0}{\hat\beta_1}. \]

De lo que es posible calcular \(Var(\hat{X}_h) = \sigma^2\{\hat{X}_h\}\)

\[ \sigma^2\{\hat{X}_h\} = \frac{MSE}{\hat\beta_1^2}\left[\frac{1}{n} + \frac{(\hat{X}_h - \bar{X})^2}{\sum\limits_{i=1}^n (X_i - \bar{X})^2}\right] \]

y realizando el ajuste correspondiente cuando la estimación corresponde a una nueva observación de \(Y\). Utilizando esta varianza es posible, desde luego, construir un intervalo de confianza:

\[ \hat{X}_h \pm {_{1-\alpha/2}t_{n-2}} \times \hat\sigma\{\hat{X}_h\} \]

Ejemplo
Para los datos de marketing, supongamos que el director de mercadotecnia de la empresa desea saber cuál debería ser el gasto de publicidad en Youtube si se desea conseguir ventas de 25 millones de dólares. Proporciona un intervalo de confianza al 95% para la estimación solicitada.
R
La gráfica que se muestra a continuación
ggplot(data = marketing) +
  aes(x = youtube, y = sales) +
  geom_point() +
  geom_smooth(method = 'lm', se = FALSE, formula = y ~ x) +
  geom_hline(yintercept = 25, linetype = 'dashed') +
  theme_classic()

Entonces, el valor estimado del gasto en Youtube necesario, corresponde a:

x.gorro.25 <- (25 - b.0.est)/b.1.est
dollar(x.gorro.25)
## [1] "$348.38"
ggplot(data = marketing) +
  aes(x = youtube, y = sales) +
  geom_point() +
  geom_smooth(method = 'lm', se = FALSE, formula = y ~ x) +
  geom_hline(yintercept = 25, linetype = 'dashed') +
  geom_vline(xintercept = x.gorro.25, linetype = 'dashed') +
  theme_classic()

y el intervalo de confianza correspondiente es:

sigma.2.x.gorro.25 <- (MSE/b.1.est^2)*(1 + 1/nrow(marketing) + ((x.gorro.25-x.barra)^2)/(sum((marketing$youtube-x.barra)^2)))
ic.x.25.inf <- x.gorro.25 - qt(p = 0.975, df = nrow(marketing)-2)*sqrt(sigma.2.x.gorro.25)
ic.x.25.inf
## [1] 184.629
ic.x.25.sup <- x.gorro.25 + qt(p = 0.975, df = nrow(marketing)-2)*sqrt(sigma.2.x.gorro.25)
ic.x.25.sup
## [1] 512.1341
ggplot(data = marketing) +
  aes(x = youtube, y = sales) +
  geom_point() +
  geom_smooth(method = 'lm', se = FALSE, formula = y ~ x) +
  geom_hline(yintercept = 25, linetype = 'dashed') +
  geom_vline(xintercept = x.gorro.25, linetype = 'dashed') +
  geom_segment(aes(x = ic.x.25.inf, xend = ic.x.25.sup, y = 0, yend = 0), colour = 'red') +
  theme_classic()
## Warning in geom_segment(aes(x = ic.x.25.inf, xend = ic.x.25.sup, y = 0, : All aesthetics have length 1, but the data has 200 rows.
## ℹ Please consider using `annotate()` or provide this layer with data containing
##   a single row.

Podemos ver que, en este caso, el pronóstico no resulta de mucha utilidad.


MODELO NORMAL DE CORRELACIÓN (OPCIONAL)

Lecturas sugeridas
  • Kutner et al. (2004), cap. 2.11.

Durante el desarrollo de este material se ha señalado que, en el planteamiento del modelo de regresión simple usualmente se asume que la variable explicativa (X) no es una variable aleatoria, es decir, consideramos que la variable explicativa es una variable cuyos valores están fijos (o bajo control del investigador) y sobre cuyos niveles se registrarán las observaciones de la variable respuesta (Y).

Como es de suponer, esta situación no describe la realidad de muchos estudios ya que frecuentemente la variable explicativa no se encuentra bajo el control del investigador. Podríamos entonces, en esta situación, modelar también a la variable explicativa como una variable aleatoria.

Supóngase entonces que X y Y siguen una distribución normal conjunta (bivariada). Sabemos entonces que las distribuciones marginales de X y Y serán también normales (recordemos, sin embargo, que dos variables aleatorias normales no necesariamente siguen una distribución normal conjunta).

La función de distribución conjunta de X y Y será igual, entonces, a:

\[ f(Y,X) = \frac{1}{2 \pi \sigma_Y \sigma_X \sqrt{1 - \rho_{YX}}} e^{-\frac{1}{2 \left( 1-\rho_{YX}^2 \right)} \left[ \left( \frac{Y - \mu_Y}{\sigma_Y} \right)^2 + \left( \frac{X - \mu_X}{\sigma_X} \right)^2 - 2 \rho_{YX} \left( \frac{Y - \mu_Y}{\sigma_Y} \right) \left( \frac{X - \mu_X}{\sigma_X} \right) \right]}. \]

Donde:

  • \(\mu_X\) es la media de X;
  • \(\mu_Y\) es la media de Y;
  • \(\sigma_X\) es la desviación estándar de X;
  • \(\sigma_Y\) es la desviación estándar de Y, y
  • \(\rho_{YX}\) es el coeficiente de correlación lineal de X y Y.

Para nuestros fines, sin embargo, lo que nos interesa es realizar inferencia sobre Y y los parámetros de su distribución dado que observamos ciertos niveles de X, es decir, queremos hacer inferencia sobre su distribución condicional, a saber:

\[ f(Y|X) = \frac{1}{\sigma_{Y|X} \sqrt{2 \pi}} e^{ - \frac{1}{2} \left( \frac{Y - \alpha_{Y|X} - \beta_{Y|X} X}{\sigma_{Y|X}} \right)^2}. \]

Donde:

  • \(\alpha_{Y|X} = \mu_Y - \mu_X \rho_{YX} \frac{\sigma_Y}{\sigma_X}\);

  • \(\beta_{Y|X} = \rho_{YX} \frac{\sigma_Y}{\sigma_X}\);

  • \(\sigma_{Y|X}^2 = \sigma_Y^2 (1 - \rho_{YX}^2)\).

Observa que es posible interpretar estos parámetros a la luz de lo aprendido para el modelo de regresión lineal (normal) simple y ver que, bajo ciertas condiciones, resultan equivalentes.

¿Qué condiciones son estas?

Observa también que, bajo este modelo, sigue siendo importante considerar tres supuestos fundamentales: varianzas constantes, normalidad y linealidad. Adicionalmente, es importante observar que, bajo esta especificación del modelo, para realizar inferencia condicional de \(Y|X\) es posible utilizar los métodos desarrollados para el modelo de regresión lineal ya expuestos.

Una diferencia significativa de este modelo respecto del modelo normal de regresión lineal previamente estudiado es que, bajo este modelo, podemos hacer inferencia sobre el coeficiente de correlación \(\rho_{YX}\).

Así, por máxima verosimilitud, el estimador puntual de \(\rho_{YX}\) es igual a:

\[ \hat\rho_{YX} = \frac{\sum (X_i - \bar{X})(Y_i -\bar{Y})}{\sum (X_i - \bar{X})^2\sum (Y_i - \bar{Y})^2} \]

conocido como el estimador de Pearson. Vale la pena observar que este es un estimador sesgado.

Sobre la correlación, la hipótesis que con mayor frecuencia se desea contrastar es la hipótesis

\[ \begin{aligned} H_0 : \rho_{YX} = 0\\ H_1 : \rho_{YX} \neq 0. \end{aligned} \]

Ahora, nótese que, si \(\rho_{YX} = 0\) entonces \(\beta_{Y|X} = 0\), por lo tanto, podemos utilizar la prueba \(t\) para, por equivalencia, probar la hipótesis planteada arriba mediante la hipótesis:

\[ \begin{aligned} H_0 : \beta_{Y|X} = 0\\ H_1 : \beta_{Y|X} \neq 0. \end{aligned} \]

La estadística de prueba de la prueba t puede ser re-expresada como

\[ t^* = \frac{\hat\rho_{YX} \sqrt{n-2}}{\sqrt{1 - \hat\rho_{YX}^2}} \]

Desde luego, si no logramos rechazar la hipótesis nula, esto significa que existe evidencia estadística para afirmar que las variables X y Y son independientes (por tratarse de vv.aa. normales bi-variadas de covarianza cero).


Material adicional

REGRESIÓN LINEAL MÚLTIPLE3

Lecturas recomendadas
  • Kutner et al. (2004), cap. 5.10, 5.11, 5.12, 5.13, 6.1, 6.2.

  • DeGroot (1988), cap. 10.1.


En la sección anterior asumimos un planteamiento relativamente simple del problema en el que tenemos solamente una variable explicativa. Extenderemos ahora el planteamiento a situaciones en las que tenemos dos o más variables explicativas.

Para todos los desarrollos que siguen a partir de este punto, es a veces útil recordar que el modelo de regresión lineal simple es un caso especial del modelo múltiple por lo que en ocasiones es útil como modelo de referencia.

Para poder plantear el modelo múltiple resulta muy útil hacer uso de matrices. Definamos entonces a \(Y\), la variable respuesta, como un vector de observaciones de tamaño \(n \times 1\); \(X\), una matriz de observaciones4 de las variables explicativas, de tamaño \(n \times m\) (esto es, se tienen \(m\) variables explicativas); \(\beta\), el vector de parámetros de regresión, de tamaño \(m \times 1\), y \(\epsilon\), el vector de errores aleatorios de tamaño \(n \times 1\). Entonces podemos expresar el modelo lineal múltiple como:

\[ Y = X\beta + \epsilon. \]

¿Qué interpretación tienen ahora los coeficientes \(\beta_i\)?

Es importante subrayar que el modelo planteado así supone que las diferentes variables incluidas en la matriz X no interactúan entre sí.

Geométricamente, lo que estaríamos diciendo mediante este modelo es que el valor de la variable respuesta puede ser aproximado mediante el hyperplano definido por la combinación lineal de las X’s. Desde luego, al igual que en el caso de la regresión simple, no estamos afirmando que este hyperplano es la representación real de la variable respuesta sino únicamente que este hyperplano es una buena aproximación a la forma real de la variable respuesta.

Ejemplo
Ferwerda et al. (2013) señalan que el modelo de gravedad se ha convertido en el caballo de batalla de economía internacional aplicada para estudiar el comercio entre dos países. La forma más usualmente utilizada del modelo de gravedad es:

\[_{A,B}X_{i} = e^{\beta_0} \times _AY_i^{\beta_1} \times _AN_i^{\beta_2} \times _B Y_i^{\beta_3} \times _B N_i^{\beta_4} \times _{A,B} D_{i}^{\beta_5} \times _{A,B} P_{i}^{\beta_6} \times \gamma_{i}\]

donde:

  • \(_{A,B}X_{i}\) es la i-ésima observación del comercio total entre las economías \(A\) y \(B\).

  • \(_AY_i\) es la i-ésima observación del Producto Interno Bruto de la economía \(A\).

  • \(_A N_i\) es la i-ésima observación de la población de la economía \(A\).

  • \(_B Y_i\) es la i-ésima observación del Producto Interno Bruto de la economía \(B\).

  • \(_B N_i\) es la i-ésima observación de la población de la economía \(B\).

  • \(_{A,B} D_{i}^{\beta_5}\) es la i-ésima observación de la distancia entre las economías A y B.

  • \(_{A,B} P_{i}^{\beta_6}\) es una variable que indica la posibilidad de la existencia de una relación especial entre las economías A y B.

  • \(\gamma_i\) es un error aleatorio.

Desde luego, si observamos la ecuación que se usa para representar al modelo de gravedad fácilmente podremos ver que no se trata de una ecuación lineal. Sin embargo, si aplicamos una transformación logarítmica podemos linearizar el problema:

\[ \ln{_{A,B}X_{i}} = \beta_0 + {\beta_1} \ln{_AY_i} + {\beta_2} \ln{_AN_i} + {\beta_3} \ln{_B Y_i} + {\beta_4} \ln{_B N_i} + {\beta_5} \ln{_{A,B} D_{i}} + {\beta_6} \ln{_{A,B} P_{i}} + \epsilon_{i} \]

donde

  • \(\epsilon_i = \ln{\gamma_i}\).

Como cualquier modelo, desde luego, el modelo de gravedad describe al comercio internacional entre dos países de manera muy acotada y bajo condiciones muy restrictivas e irreales. Sin embargo es un modelo útil para en el estudio del comercio internacional.


AJUSTE POR MÍNIMOS CUADRADOS

Lecturas recomendadas
  • Kutner et al. (2004), cap. 6.3.

  • Weisberg (2005) cap. 3.4.3.


Si queremos ahora aplicar la técnica de mínimos cuadrados al problema de regresión lineal múltiple tenemos primero que observar que la suma del cuadrado de los residuales estaría definida como:

\[ \begin{aligned} SSE &= (Y - X\beta)'(Y - X\beta) \\ &= Y'Y - Y'X\beta - \beta'X'Y + \beta'X'X\beta \\ &= Y'Y - 2 \beta'X'Y + \beta'X'X\beta \end{aligned} \]

donde \(\beta\) es el vector de coeficientes de regresión.

Entonces buscamos el vector \(\beta\) que minimiza a \(SSE\).

Si diferenciamos \(RSS\) con respecto a \(\beta\) obtenemos:

\[ \begin{aligned} \frac{d SSE}{d \beta} &= - 2X'Y + 2 X'X \beta. \end{aligned} \]

E, igualando a 0:

\[ \begin{aligned} - 2Y'X + 2 X'X \beta &= 0 \\ X'X \beta &= Y'X \\ \beta &= (X'X)^{-1}X'Y. \end{aligned} \]

Nota que lo anterior se cumple únicamente si \((X'X)^{-1}\) existe. Adicionalmente, nota que, en la práctica, usualmente no se utiliza esta fórmula para la estimación de \(\beta\) ya que \((X'X)^{-1}\) es casi siempre una matriz cuyo cómputo es inestable y altamente sensible a redondeo. El algoritmo más comúnmente utilizado para el cómputo de \(\hat{\beta}\) es la descomposición \(QR\) (ver Weisberg (2005), Anexo 9, para una descripción del método).

¿Cómo sabemos si la inversa existe?

¿Cuándo sucede que la inversa no existe? ¿Qué significa esto en el contexto de nuestro planteamiento?

Entonces, el vector \(\hat{\beta} = (X'X)^{-1}X'Y\) es el vector que minimiza la suma del cuadrado de los errores y, por lo tanto, corresponde al estimador de los coeficientes de regresión de mínimos cuadrados.

A \(H = X(X'X)^{-1}X'\) se le conoce como la matriz gorro (hat, en inglés). Por conveniencia, también podemos definir a \(M = I - H\). \(H\) y \(M\) son matrices simétricas e idempotentes. \(H\) es la matriz de proyección que proyecta en el subespacio generado por las columnas de \(X\).

Podemos entonces ahora calcular:

  • El valor estimado para un vector de observaciones \(\hat{Y} = X \hat{\beta}\);

  • El valor estimado de los residuales: \(\hat{\epsilon} = Y - \hat{Y} = Y - X \hat{\beta} = Y - X(X'X)^{-1}X'Y = Y - HY = MY\);

  • La suma del cuadrado de los residuales de regresión: \(SSE = (Y - \hat{Y})'(Y - \hat{Y}) = Y'M'MY = Y'MY\).

PROPIEDADES DE LOS ESTIMADORES DE REGRESIÓN

Nuevamente, desarrollaremos las propiedades de los estimadores de regresión, pero ahora para el caso de la regresión múltiple.

Al igual que hicimos para el caso de la regresión simple, estableceremos algunos supuestos básicos iniciales:

  • \(E(\epsilon) = 0\);

  • \(Var(\epsilon) = \sigma^2 I\).

  • \(\epsilon \sim N(0,\sigma^2I)\)

Entonces:

\(\hat\epsilon\)

\(\hat\epsilon\) representa ahora al vector de residuales de la regresión y, por lo tanto:

\[ \begin{aligned} \hat\epsilon &= Y - \hat{Y}\\ &= Y - X \hat\beta\\ &= Y - X(X'X)^{-1}X'Y\\ &= (I - H)Y\\ &= MY \end{aligned} \]

Y, por lo tanto:

\[ E(\hat\epsilon) = E(MY)\\ = ME(Y)\\ = MX\beta\\ = X\beta - X(X'X)^{-1}X'X\beta\\ =0. \]

De lo que podemos fácilmente deducir que la distribución muestral de \(\hat\epsilon\) es una distribución normal con media 0. Entonces, para determinar su matriz de varianzas y covarianzas:

\[ \begin{aligned} Var[\hat\epsilon] &= Var[MY]\\ &= M Var[Y] M'\\ &= M \sigma^2 I M'\\ &= \sigma^2 MM'\\ &= \sigma^2 M\\ \end{aligned} \]

Es importante observar que, derivado de esta propiedad, los residuos tienen, cada uno, su propia varianza y no son necesariamente independientes.

Por el supuesto de normalidad de los errores podemos deducir que la variable respuesta sigue también una distribución normal. Los residuales, al ser una transformación lineal de una variable aleatoria normal serán, a su vez, también normales.

  • \(\hat\epsilon \sim N(0, \sigma^2 M)\)
  • \(\frac{\hat{\epsilon}' \hat\epsilon}{\sigma^2} \sim \chi_{n - m}^2\).

\(\hat\sigma^2\)

El estimador puntual para \(\sigma^2\) es igual a:

\[ \begin{aligned} \hat{\sigma}^2 &= \frac{(Y - \hat{Y})'(Y - \hat{Y})}{n - m} \\ &= \frac{(Y - X\hat{\beta})'(Y - X\hat{\beta})}{n - m} \\ &= \frac{(Y - X(X'X)^{-1}Y'X)'(Y - X(X'X)^{-1}Y'X)}{n - m} \\ &= \frac{Y'Y - (X\hat{\beta})'Y}{n - m}. \end{aligned} \]

\(\hat{\sigma}^2\) es un estimador insesgado para \(\sigma^2\):

Demostración

\[ \begin{aligned} E[(Y - \hat{Y})'(Y - \hat{Y})] &= E[Y'MY]\\ &= tr(M \sigma^2I) + E[Y]'ME[Y]\\ &= tr(M \sigma^2I) + (X\beta)'M(X\beta)\\ &= tr(M \sigma^2I)\\ &= \sigma^2 tr(M I)\\ &= \sigma^2 tr(M). \end{aligned} \]

Ahora, consideremos \(tr(M) = tr(I - H) = tr(I) - tr(H) = n - tr(H)\). Entonces, necesitamos calcular \(tr(H)\).

\[ \begin{aligned} tr(H) &= tr(X(X'X)^{-1}X')\\ &= tr(X'X(X'X)^{-1})\\ &= tr(I)\\ &= m. \end{aligned} \]

Entonces \(tr(M) = n-m\) y, por lo tanto, \(E[(Y - \hat{Y})'(Y - \hat{Y})] = (n-m)\sigma^2\).


Entonces, por un razonamiento análogo al seguido para regresión simple:

\[ \frac{(n-m)\hat\sigma^2}{\sigma^2} \sim \chi_{n-m}^2. \]

\(\hat\beta\)

  • El estimador puntual para \(\beta\) es \(\hat\beta = (X'X)^{-1}X'Y\).

  • \(\hat{\beta}\) es un estimador insesgado de \(\beta\).

Demostración

\[ \begin{aligned} E(\hat{\beta}) &= E[(X'X)^{-1}X'Y] \\ &= (X'X)^{-1}X'E(Y) \\ &= (X'X)^{-1}X'E(X\beta + \epsilon) \\ &= (X'X)^{-1}X'[X\beta + E(\epsilon)] \\ &= (X'X)^{-1}X'X\beta \\ &= \beta. \end{aligned} \]


  • \(Var(\hat{\beta}) = \sigma^2 (X'X)^{-1}\).
Demostración

\[ \begin{aligned} Var(\hat{\beta}) &= Var[(X'X)^{-1}X'Y] \\ &= Var[(X'X)^{-1}X'(X\beta + \epsilon)] \\ &= Var[(X'X)^{-1}X'X\beta + (X'X)^{-1}X' \epsilon)] \\ &= Var[(X'X)^{-1}X' \epsilon)] \\ &= (X'X)^{-1}X' Var(\epsilon) X(X'X)^{-1} \\ &= (X'X)^{-1}X' \ \sigma^2 I \ X(X'X)^{-1} \\ &= \sigma^2 (X'X)^{-1}X' X(X'X)^{-1} \\ &= \sigma^2 (X'X)^{-1}. \end{aligned} \]


  • \(\hat\beta \sim N(\beta, \sigma^2 (X'X)^{-1})\)

  • \(\frac{\hat{\beta} - \beta}{\sigma \sqrt{(X'X)^{-1}}} \sim N(0,1)\)

  • \(\frac{\hat{\beta} - \beta}{\hat\sigma \sqrt{(X'X)^{-1}}} \sim t_{n-m}\)

\(\hat{Y}\)

  • \(Var(\hat{Y})\):

\[ \begin{aligned} Var(\hat{Y}) &= Var(X\hat{\beta})\\ &= Var(X(X'X)^{-1}X'Y)\\ &= [X(X'X)^{-1}X']'Var(Y)[X(X'X)^{-1}X']\\ &= [X(X'X)^{-1}X']Var(Y)[X(X'X)^{-1}X']\\ &= [X(X'X)^{-1}X'][\sigma^2 I][X(X'X)^{-1}X']\\ &= \sigma^2 [X(X'X)^{-1}X'][X(X'X)^{-1}X']\\ &= \sigma^2 [X(X'X)^{-1}X']. \end{aligned} \]

Nota que en la mayoría de las referencias se desarrolla lo anterior para una observación, es decir, para \(\hat{Y}_j\) y \(X_j\), donde \(X_j\) representaría al j-ésimo renglón de \(X\) (o renglones).

\(Var(\hat{Y}_j) = \sigma^2 [X_j (X'X)^{-1} X'_j]\).

  • \(\frac{(\hat{Y} - \bar{Y})'(\hat{Y} - \bar{Y})}{\sigma^2} \sim \chi_{m - 1}^2\).

  • \(\frac{\hat{Y}_j - E(Y_j)}{\hat{\sigma\{\hat{Y}_j}\}} \sim t_{n-m}\).

Si, ahora, con el sub-índice \(h\) denotamos una nueva observación como hicimos en el caso de la regresión simple:

  • \(\frac{Y_h - \hat{Y}_h}{\hat{\sigma}\{\hat\epsilon_h\}} \sim t_{n-m}\).

donde:

  • \(\hat{\sigma}^2\{\hat\epsilon_h\} = Var (\hat\epsilon_h)\): recordemos que cuando tenemos una nueva observación (para una \(X_h\)) no nos interesa la estimación puntual del valor de esta observación (es decir, si nos interesa, pero ese estimador ya lo conocemos porque corresponde a \(\hat{Y}_h\)). Sin embargo, sí nos interesa el estimador de la varianza del residual de esa nueva observación.

\[ \begin{aligned} Var (\hat\epsilon_h) &= Var(Y_h - \hat{Y}_h) & \\ &= Var(Y_h - X_h \hat\beta) & \\ &= Var(Y_h - X_h (X'X)^{-1}X'Y) & \\ &= Var(Y_h) + Var(X_h (X'X)^{-1}X'Y) & \text{Por independencia}\\ &= \sigma^2 I_h + [X_h (X'X)^{-1}X'] Var(Y) [X_h (X'X)^{-1}X']' & \\ &= \sigma^2 I_h + \sigma^2[X_h (X'X)^{-1}X'][X_h (X'X)^{-1}X']' & \\ &= \sigma^2 I_h + \sigma^2[X_h (X'X)^{-1}X'][X(X'X)^{-1}X_h'] & \\ &= \sigma^2 [I_h + X_h (X'X)^{-1}X_h']. & \\ \end{aligned} \]

  • Los residuales son ortogonales a \(\hat{Y}\):

\[ \begin{aligned} \hat{\epsilon}'\hat{Y} &= (Y - \hat{Y})'\hat{Y}\\ &= [(I-H)Y]'HY\\ &= [Y'(I-H)']HY\\ &= Y'HY-Y'H'HY\\ &= Y'HY-Y'HY\\ &= 0. \end{aligned} \]

Ejemplo (Cont.)
Continuamos con nuestro ejemplo del gasto en marketing en diferentes medios. Agregaremos ahora el resto de las variables.

Tenemos entonces ahora, como variables explicativas adicionales, el gasto en publicidad en Facebook y en medios impresos. ¿Observas una relación clara?

load(file = 'ejemplo.Rdata')

pairs(marketing[, 1:4])

Generalmente, cuando agregamos más variables al análisis, es complicado ya juzgar a simple vista si existe una relación directa con la variable de interés. Aquí es donde cobran relevancia nuestras habilidades de modelado (y los diagnósticos que veremos más adelante).

Por el momento, asumiremos que la hipótesis es que la relación existe.

¿Cuál es el valor de los coeficientes de la regresión?

modelo <- lm(data = marketing, formula = sales ~ facebook + youtube + newspaper)

summary(modelo)
## 
## Call:
## lm(formula = sales ~ facebook + youtube + newspaper, data = marketing)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.5932  -1.0690   0.2902   1.4272   3.3951 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  3.526667   0.374290   9.422   <2e-16 ***
## facebook     0.188530   0.008611  21.893   <2e-16 ***
## youtube      0.045765   0.001395  32.809   <2e-16 ***
## newspaper   -0.001037   0.005871  -0.177     0.86    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.023 on 196 degrees of freedom
## Multiple R-squared:  0.8972, Adjusted R-squared:  0.8956 
## F-statistic: 570.3 on 3 and 196 DF,  p-value: < 2.2e-16

Nuestro modelo propuesto (por el momento) sería entonces:

\[ sales = 3.53 + 0.19 \times facebook + 0.05 \times youtube - 0.001 \times newspaper. \]

¿Puedes dar una interpretación de los valores de los coeficientes de la regresión?

¿Por qué crees que el coeficiente correspondiente al gasto en medios impresos sea negativo? ¿Tiene eso sentido?

¿Cómo intrepretamos ahora los valores de las estadísticas?

¿Cuál es el estimador de \(\sigma\) ahora?


ANOVA

Al igual que hicimos en la regresión simple, queremos ahora analizar (entender) el origen de la varianza observada en \(Y\). Nuevamente, notemos que

\[ \begin{aligned} SST &= (Y - \bar{Y})'(Y - \bar{Y}) \\ (Y - \bar{Y})'(Y - \bar{Y}) &= (Y - \hat{Y} + \hat{Y} - \bar{Y})'(Y - \hat{Y} + \hat{Y} - \bar{Y})\\ &= (Y - \hat{Y})'(Y - \hat{Y}) + (Y - \hat{Y})'(\hat{Y} - \bar{Y}) + (\hat{Y} - \bar{Y})'(Y - \hat{Y}) + (\hat{Y} - \bar{Y})'(\hat{Y} - \bar{Y})\\ &= SSE + (Y - \hat{Y})'(\hat{Y} - \bar{Y}) + (\hat{Y} - \bar{Y})'(Y - \hat{Y}) + SSR \end{aligned} \]

Ahora

\[ \begin{aligned} (Y - \hat{Y})'(\hat{Y} - \bar{Y}) + (\hat{Y} - \bar{Y})'(Y - \hat{Y}) &= Y'\hat{Y} - Y'\bar{Y} - \hat{Y}'\hat{Y} + \hat{Y}'\bar{Y} + \hat{Y}'Y - \hat{Y}'\hat{Y} - \bar{Y}'Y + \bar{Y}'\hat{Y}\\ &= 2(Y'\hat{Y} - Y'\bar{Y} + \bar{Y}'\hat{Y} - \hat{Y}'\hat{Y}). \end{aligned} \]

Por otro lado:

\[ \begin{aligned} \hat{Y}'\hat{Y} &= (X\hat{\beta})'X\hat{\beta}\\ &= \hat{\beta}'X'X\hat{\beta}\\ &= [(X'X)^{-1}X'Y]'X'X[(X'X)^{-1}X'Y]\\ &= [Y'X(X'X)^{-1}]X'X[(X'X)^{-1}X'Y]\\ &= Y'X(X'X)^{-1}X'Y\\ &= [(X'X)^{-1}X'Y]'X'Y\\ &= \hat{\beta}'X'Y\\ &= (X\hat{\beta})'Y\\ &= \hat{Y}'Y. \end{aligned} \]

Observa también que \(\hat{Y}'Y = Y'\hat{Y}\) pues ambos representan a la suma del producto de sus elementos.

Entonces:

\[ \begin{aligned} 2(Y'\hat{Y} - Y'\bar{Y} + \bar{Y}'\hat{Y} - \hat{Y}'\hat{Y}) &= 2(Y'\hat{Y} - Y'\bar{Y} + \bar{Y}'\hat{Y} - \hat{Y}'Y) \\ &= 2(\bar{Y}'\hat{Y} - Y'\bar{Y}). \end{aligned} \]

Ahora, para la expresión restante, observemos primero que \(\bar{Y}'\hat{Y} = \hat{Y}'\bar{Y}\), entonces \(\bar{Y}'\hat{Y} - Y'\bar{Y} = (\hat{Y} - Y)'\bar{Y}\) lo cual, a su vez es igual a \(Y'(I - X(X'X)^{-1}X')'\bar{Y}\).

No es muy obvio, pero observemos que \(Y'(X'(X'X)^{-1}X - I)X = 0\) lo que significa que \(Y'(I - X'(X'X)^{-1}X)'\bar{Y}\) también es igual a 0 ya que la primera columna de \(X\) es una columna de 1’s.

Entonces:

\[ \begin{aligned} 2(\bar{Y}'\hat{Y} - Y'\bar{Y}) = 0. \end{aligned} \]

Por lo tanto:

\[ \begin{aligned} SST &= SSR + SSE. \end{aligned} \]

Podemos entonces construir la tabla de análisis de varianza:

FUENTE SUMA DE CUADRADOS GRADOS DE LIBERTAD VALOR MEDIO
Modelo \(SSR = (\hat{Y}-\bar{Y})'(\hat{Y}-\bar{Y})\) \(m - 1\) \(MSR = \frac{SSR}{m - 1}\)
Residuales \(SSE = (Y-\hat{Y})'(Y-\hat{Y})\) \(n - m\) \(MSE = \frac{SSE}{n - m}\)
Total \(SST = (Y-\bar{Y})'(Y-\bar{Y})\) \(n - 1\)
Ejemplo (Cont.)
Construiremos ahora la tabla ANOVA para nuestro ejemplo.
anova(object = modelo)

O bien:

t(modelo$fitted.values - y.barra) %*% (modelo$fitted.values - y.barra)
##          [,1]
## [1,] 6998.866
t(marketing$sales - modelo$fitted.values) %*% 
  (marketing$sales - modelo$fitted.values)
##          [,1]
## [1,] 801.8284
t(marketing$sales - y.barra) %*% (marketing$sales - y.barra)
##          [,1]
## [1,] 7800.694

SUMA DE CUADRADOS ADICIONAL

Lecturas recomendadas
  • Kutner et al. (2004), cap. 7.1.

Observa que R arroja los resultados de la tabla ANOVA en forma distinta a como los hemos presentado aquí. ¿A qué se debe esto? A que R presenta el análisis de varianza en forma de descomposición de suma de cuadrados de regresión marginales.

Considera nuevamente la ecuación

\[ SST = SSR + SSE. \]

El lado derecho de esta ecuación es el mismo siempre, no depende del modelo que estemos ajustando. Por lo tanto, si consideramos una, dos o quince variables explicativas, lo que tiene que cambiar en la ecuación es el lado derecho, no el izquierdo.

Tomemos primero el caso de la regresión lineal simple:

\[ SST = SSR\{X_1\} + SSE\{X_1\}. \]

Supongamos ahora que tenemos, en principio, solamente dos variables explicativas. En estes caso:

\[ SST = SSR\{X_1, X_2\} + SSE\{X_1, X_2\} \]

y, por lo tanto:

\[ SSR\{X_1\} + SSE\{X_1\} = SSR\{X_1, X_2\} + SSE\{X_1, X_2\}\\ SSR\{X_1, X_2\} - SSR\{X_1\} = SSE\{X_1\} - SSE\{X_1, X_2\}. \]

Entonces podemos definir a la suma de cuadrados de la regresión marginal de \(X_2\) como

\[ SSR\{X_2|X_1\} = SSR\{X_1, X_2\} - SSR\{X_1\} = SSE\{X_1\} - SSE\{X_1, X_2\}. \]

Podemos ver, entonces, que:

\[ SST = SSR\{X_1\} + SSE\{X_1\}\\ = SSR\{X_1\} + SSE\{X_1\} + SSR\{X_2|X_1\} - SSE\{X_1\} + SSE\{X_1, X_2\}\\ = SSR\{X_1\} + SSR\{X_2|X_1\} + SSE\{X_1, X_2\}. \]

Es decir, podemos descomponer el análisis de varianza en la aportación marginal de cada una de las variables a la suma de cuadrados de la regresión.

Esta notación se puede extender a más variables fácilmente. Solamente es necesario considerar que, cuando agregamos más variables, incrementamos la cantidad de posibles ordenamientos (y agrupaciones) de las variables para el cálculo de las sumas de cuadrados marginales.

La \(SSR\{X_j | X_i\}\) refleja, entonces, la reducción extra en la suma de cuadrados de los errores asociada a \(X_j\) dado que \(X_i\) ya se encontraba considerada en el modelo.

En R, entonces, lo que se nos muestra como resultado del ANOVA es, precisamente, esta descomposición en aportaciones marginales. Es importante, nada más, observar que R realiza la descomposición en el orden en el que le proporcionamos las variables en la fórmula del modelo, lo cual puede ser importante dependiendo del contexto.

Ejemplo
Veamos el resultado del ANOVA para los datos de marketing utilizando diferentes ordenamientos de las variables.
anova(
  object = 
    lm(formula = sales ~ youtube + facebook + newspaper, data = marketing)
  )
anova(
  object = 
    lm(formula = sales ~ newspaper + youtube + facebook, data = marketing)
  )
anova(
  object = 
    lm(formula = sales ~ facebook + newspaper + youtube, data = marketing)
  )

Si bien, como se puede apreciar en el ejemplo anterior, las sumas de cuadrados marginales cambian dependiendo del orden en el que se consideran (lo cual es natural, pues se trata de marginales), esta manera de realizar el ANOVA puede ser de mucha utilidad para evaluar si es conveniente quitar alguna variable del modelo.

PRUEBA F

Lecturas sugeridas:

  • Kutner et al. (2004), caps. 2.8, 3.7.

  • Mendenhall and Sincich (1996) cap. 4.7.


Para probar entonces si la regresión es significativa, haremos una prueba similar (en espíritu, al menos) a la que hicimos para la regresión simple. Sin embargo, en este caso tenemos múltiples coeficientes de regresión por lo que la prueba utilizada busca probar la hipótesis:

\[ \begin{aligned} H_0 &: \beta_1 = \beta_2 = \dots = \beta_{m-1} = 0\\ H_1 &: \exists \ \beta_i \neq 0, \ i \in \{1,2,\dots,m-1\}. \end{aligned} \]

Para ello, se usa la estadística de prueba \(F^* = \frac{MSR}{MSE}\), donde \(F^* \sim F_{m-1, n-m}\).

De hecho, es posible realizar la prueba de hipótesis sobre la hipótesis lineal general:

\[ H_0 : C\beta = \gamma\\ H_1 : \text{No } H_0. \]

La estadística de prueba será:

\[ F = \frac{\frac{1}{l}(C\hat\beta - \gamma)'[C(X'X)^{-1}C']^{-1}(C\hat\beta - \gamma)}{\hat\sigma^2} \]

donde \(l = rango(C)\). Bajo \(H_0\), \(F \sim F_{l, n - m}\).

Observa que esta prueba de hipótesis cubre, como casos especiales, el caso en que \(\beta_1 = \beta_2 = \dots = \beta_{m-1} = 0\) y el caso para \(\beta_i = 0\).

Es importante notar que es posible realizar una prueba \(t\) de manera individual para cada coeficiente de la regresión. Sin embargo, notemos que la probabilidad de cometer un error tipo I al hacer las pruebas de manera individual se incrementa significativamente si lo comparamos con el caso de la regresión lineal simple.

Supongamos que se desea ajustar un modelo con \((m-1)\) variables explicativas por lo que necesitamos hacer \(m-1\) pruebas individuales (independientes), entonces:

\[ \begin{aligned} P(\text{Rechazar $H_0$ para alguna $\beta_i$}|\text{$H_0$ es verdadera}) &= 1 - P(\text{No rechazar $H_0$ para toda $\beta_i$}|\text{$H_0$ es verdadera})\\ &= 1 - P(\text{Aceptar $\beta_1 = 0$}|\beta_1 = 0) \times P(\text{Aceptar $\beta_2 = 0$}|\beta_2 = 0) \times \dots \times P(\text{Aceptar $\beta_{(m-1)} = 0$}|\beta_{(m-1)} = 0)\\ &= 1 - P(\text{Aceptar $\beta_1 = 0$}|\beta_1 = 0) \times P(\text{Aceptar $\beta_2 = 0$}|\beta_2 = 0) \times \dots \times P(\text{Aceptar $\beta_{(m-1)} = 0$}|\beta_{(m-1)} = 0)\\ &= 1 - (1-\alpha)^{m-1}. \end{aligned} \]

Ejemplo
Considera un conjunto de pruebas marginales al 95% de confianza y con 5 parámetros, ¿cuál es la probabilidad de rechar la hipótesis nula para alguna de las pruebas si la hipótesis nula es verdadera? ¿Cuál es la probabilidad si agregamos 3 parámetros más?
R
Para esta situación tenemos que \(\alpha = 0.05\) y \(m = 5\) por lo que la probabilidad es igual a
1 - (1-0.05)**(5-1)
## [1] 0.1854938

Si \(m\) se incrementa a 8, entonces:

1 - (1-0.05)**(8-1)
## [1] 0.3016627

Como podemos ver, la probabilidad de rechazar incorrectamente la hipótesis nula se incrementa significativamente cuando realizamos las pruebas de hipótesis de manera individual. De ahí la relevancia de realizar la prueba F.

Por lo anterior, en ocasiones se recomienda:

  1. Determinar los coeficientes / variables de mayor interés para el análisis previo al ajuste del modelo.

  2. Realizar la prueba \(F\) para determinar la significancia de la relación lineal.

  3. Realizar las pruebas \(t\) individuales sobre los coeficientes / variables identificadas en el paso 1.

Advertencia: lo anterior es equivalente a decir que no nos podemos equivocar sobre aquello sobre lo que no emitimos una opinión, lo cual es cierto, aunque en ocasiones cuestionable (e.g., “intentional ignorance”).

Ejemplo
¿Qué nos dice la prueba F en el ejemplo de los datos de marketing?
summary(modelo)
## 
## Call:
## lm(formula = sales ~ facebook + youtube + newspaper, data = marketing)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.5932  -1.0690   0.2902   1.4272   3.3951 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  3.526667   0.374290   9.422   <2e-16 ***
## facebook     0.188530   0.008611  21.893   <2e-16 ***
## youtube      0.045765   0.001395  32.809   <2e-16 ***
## newspaper   -0.001037   0.005871  -0.177     0.86    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.023 on 196 degrees of freedom
## Multiple R-squared:  0.8972, Adjusted R-squared:  0.8956 
## F-statistic: 570.3 on 3 and 196 DF,  p-value: < 2.2e-16

¿Qué conclusiones podemos sacar para nuestro modelo?


COMPARACIÓN DE MODELOS ANIDADOS

Lecturas recomendadas
  • Kutner et al. (2004), caps. 7.2 y 7.3.
  • Mendenhall and Sincich (1996), cap. 4.10.
  • Weisberg (2005), cap. 5.4.

Si bien ya contamos con herramientas para determinar si nuestro modelo demuestra un buen ajuste a los datos, en particular mediante la prueba F, desafortunadamente nunca podemos asegurar que contamos con el mejor modelo. También ya vimos que agregar variables explicativas a nuestro modelo incrementa el valor de la \(R^2\), lo cual puede resultar engañoso.

Por lo tanto, es deseable contar con una manera de comparar dos (o más modelos) y la prueba F nos proporciona nuevamente esta herramienta. Para ello, desde luego es necesario asumir que los dos modelos que estamos comparando son comparables, es decir, que ambos son modelos lineales. De hecho, asumiremos un poco más, en realidad asumiremos que lo que queremos comparar son modelos anidados.

Decimos que dos modelos son anidados si un modelo incluye a todas las variables explicativas de otro modelo y al menos una adicional. En general, al modelo que incluye a todas la variables explicativas se le llama el modelo completo o, en ocasiones grande; al otro, reducido o pequeño.

Nuestro objetivo es, desde luego, determinar si el modelo completo proporciona información relevante que el modelo reducido no. Esto es equivalente, entonces, a preguntarse si alguno de los coeficientes de las variables del modelo completo que no se encuentra presentes en el modelo reducido son significativamente diferentes de cero. Podemos ver que esto se empieza ya a parecer al contexto de una prueba F.

Para probar esto, entonces, emplearemos el siguiente procedimiento:

Sean los modelos reducido y completo, respectivamente:

\[ \begin{aligned} Y &= \beta_0 + \beta_1 X_1 + \dots + \beta_g X_g + \epsilon_R & \text{Reducido}\\ Y &= \beta_0 + \beta_1 X_1 + \dots + \beta_g X_g + \beta_{g+1} X_{g+1} + \dots + \beta_k X_k + \epsilon_C & \text{Completo} \end{aligned} \]

  1. Ajustamos el modelo reducido y realizamos su ANOVA. A la suma de cuadrados de los residuales de este modelo le llamaremos \(SSE_R\) (el subíndice \(R\) hace referencia a que se trata de la suma de cuadrados de los residuales del modelo reducido).

  2. Ajustamos ahora el modelo completo y realizamos su correspondiente ANOVA. A la suma de cuadrados de los residuales de este modelo le llamaremos, correspondientemente, \(SSE_C\) (por ser el modelo completo).

Si las hipótesis que queremos contrastar son:

\[ H_0: \beta_{g+1} = \dots = \beta_k = 0\\ H_1: \beta_j \neq 0 \text{para alguna j en} [g+1, k]. \]

Entonces, se puede demostrar que, bajo \(H_0\):

\[ F = \frac{\frac{SSE_R - SSE_C}{gl_R - gl_C}}{\frac{SSE_C}{gl_C}}= \frac{\frac{SSE_R - SSE_C}{gl_R - gl_C}}{\sigma_C^2} \sim F_{gl_R - gl_C, gl_C}. \]

A este tipo de pruebas se les conoce como pruebas F parciales o marginales, ya que incluyen en el contraste el efecto de otras variables en el modelo. Observa que en el caso especial en el que el modelo reducido elimina solamente una variable del modelo completo, estas pruebas son equivalentes a realizar una prueba \(t\). Sin embargo, es importante recordar que esto solamente aplica para el caso de una variable. Si el modelo reducido excluye a más de una variable del modelo completo, solamente podemos aplicar la prueba \(F\).

Nota, por último, que en todos estos casos los modelos completos incluyen al coeficiente correspondiente con la intersección con el eje de la variable respuesta. Es posible hacer la prueba correspondiente a modelos sin este coeficiente o a pruebas alternativas (por ejemplo, la igualdad entre dos coeficientes o contrastes para valores diferentes de cero). Simplemente es necesario adaptar el modelo completo y reducido correspondientemente y tener cuidado en cómo impactan estas modificaciones en la determinación de los grados de libertad de cada modelo (ver la sección 7.3 de Kutner et al. (2004)).

Ejemplo (Cont.)
Supongamos que queremos demostrar que, en nuestros datos, el modelo sin la variable correspondiente al gasto en publicidad en medios impresos es al menos tan bueno como el modelo con todas las variables. Realiza la prueba F correspondiente al 95% de significancia.
R
En este caso, entonces, el modelo completo es el modelo con las tres variables mientras que el modelo reducido es el modelo que utiliza únicamente a las variables correspondientes al gasto en Facebook y el gasto en Youtube.
modelo.completo <- 
  lm(data = marketing, formula = sales ~ youtube + facebook + newspaper)
anova(modelo.completo)
modelo.reducido <- 
  lm(data = marketing, formula = sales ~ youtube + facebook)
anova(modelo.reducido)

Por lo que:

\[ \begin{aligned} F &= \frac{\frac{SSE_R - SSE_C}{gl_R - gl_C}}{\sigma_C^2}\\ &= \frac{\frac{801.9561 - 801.8283786}{197 - 196}}{801.8283786/196} \end{aligned} \]

(801.9561 - 801.8283786)/(801.8283786/196)
## [1] 0.03122039

La prueba de hipótesis, en este caso, es la siguiente:

\[ \begin{aligned} H_0 &: \beta_N = 0\\ H_1 &: \beta_N \neq 0 \end{aligned} \]

Entonces, si comparamos el valor obtenido de la estadística de prueba contra el cuantil 95 de una distribución \(F_{1,196}\):

qf(p = 0.95, df1=1, df2=196)
## [1] 3.889341

podemos observar que el valor de la estadística de prueba se encuentra por debajo del valor crítico, por lo que no existe evidencia para rechazar la hipótesis nula. Es decir, podemos afirmar que el valor del coeficiente para el gasto en medios impresos no es estadísticamente significativo.

Otra manera de obtener estos resultados en R sería:

anova(modelo.reducido, modelo.completo)

PRUEBA F PARA FALTA DE AJUSTE

Se puede realizar una prueba \(F\) modificada para verificar lo que se conoce como falta de ajuste. Sin embargo, la prueba que vamos a revisar en esta sección requiere que exista más de una observación para un mismo nivel de la variable explicativa5. Adicionalmente, el tratamiento lo haremos para el modelo de regresión lineal simple.

Para ello, es necesario primero calcular lo que se conoce como la suma de cuadrados del error puro:

\[ SSPE = \sum_{i} \sum_{j} (Y_{ij} - \bar{Y}_i)^2 \]

esto es, el error total asociado a cada nivel observado de la variable explicativa.

Observa entonces que, para cada nivel \(i\) de la variable explicativa, tenemos una suma de cuadrados de \(n_i\) observaciones. Cada una de estas sumas de cuadrados tendrá, entonces \(n_i - 1\) grados de libertad. La suma de todas estas sumas de cuadrados tendrá, entonces \(\sum_{i} (n_i -1)\) grados de libertad.

En forma equivalente a la tabla ANOVA explicada anteriormente, podemos también calcular el error cuadrático de la regresión asociado a cada nivel de la variable explicativa, conocido como la suma de cuadrados de falta de ajuste:

\[ SSLF = SSE - SSPE = \sum_{i} \sum_{j} (\hat{Y}_{ij} - \bar{Y}_i)^2 \]

Los grados de libertad asociados a \(SSLF\) son el número de niveles de la variable explicativa (\(c\)) menos el número de coeficientes estimados (2, en el caso del modelo de regresión lineal simple).

Con estos valores, entonces, es posible realizar la prueba de hipótesis:

\[ \begin{aligned} H_0: E[Y]_{i} = \beta_0 + \beta_1 X_i\\ H_1: E[Y]_{i} \neq \beta_0 + \beta_1 X_i\\ \end{aligned} \]

puesto que, bajo \(H_0\) la estadística

\[ F = \frac{SSLF / (c - 2)}{SSPE / (n - c)} \sim F_{c-2, n - c}. \]

En otras palabras, si el modelo de regresión es apropiado, \(SSLF\) será pequeño pues los valores estimados estarán cerca de la respuesta media de cada nivel de la variable explicativa. Dado que la hipótesis alterna incluye cualquier otro modelo diferente del lineal, esta prueba nos permite verificar el supuesto de linealidad.

Puede no resultar obvio en primera instancia, pero reflexionando detenidamente sobre el planteamiento descrito más arriba, se puede ver que este procedimiento es equivalente a contrastar dos modelos: el modelo de regresión lineal estándar (al que llamaremos el modelo reducido) y otro modelo en el que consideramos cada nivel de la variable explicativa como una variable indicadora a la que corresponderá un coeficiente de regresión (y que, por complemento, llamaremos el modelo completo). Podemos entonces utilizar esta manera de proceder para realizar el contraste ejecutando un ANOVA entre los dos modelos. Esta manera de considerar el problema resulta particularmente útil al trabajar en R.

Sin embargo, desafortunadamente, esto solamente lo podremos verificar cuando existan varias observaciones para cada nivel de la variable explicativa. En este sentido, es importante observar que deben ser diferentes observaciones (pues deben ser independientes), por lo que tenemos que tener cuidado con la presencia de falsas réplicas (p.e., mediciones repetidas sobre el mismo individuo).

Cuando el modelo de regresión lineal es rechazado utilizando esta prueba, lo siguiente sería realizar una análisis de los residuales para intentar determinar el tipo de modelo que resulta apropiado.

Por último, es posible aplicar esta misma prueba en casos en los que no se tienen observaciones repetidas pero quizás es posible agrupar algunas obsevaciones en rangos de valores de la variable explicativa (p.e., si las observaciones de la variable explicativa están suficientemente juntas).

Ejemplo
Para los datos de marketing no es posible aplicar esta prueba al modelo de regresión múltiple, ya que no se encuentran observaciones repetidas considerando todas las variables explicativas. Sin embargo, sí es posible aplicar la prueba al modelo de regresión simple:
modelo <- lm(formula = sales~youtube, data = marketing)
summary(modelo)
## 
## Call:
## lm(formula = sales ~ youtube, data = marketing)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.0632  -2.3454  -0.2295   2.4805   8.6548 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 8.439112   0.549412   15.36   <2e-16 ***
## youtube     0.047537   0.002691   17.67   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.91 on 198 degrees of freedom
## Multiple R-squared:  0.6119, Adjusted R-squared:  0.6099 
## F-statistic: 312.1 on 1 and 198 DF,  p-value: < 2.2e-16
modelo.pe <- lm(formula = sales ~ factor(youtube), data = marketing)
anova(modelo, modelo.pe)
temp <- aggregate(x = list(y.barra.i = marketing$sales), by = list(youtube = marketing$youtube), FUN = mean)

marketing <- merge(x = marketing, y = temp, by.x = 'youtube', by.y = 'youtube', all.x = TRUE)

sse <- sum(modelo$residuals**2)
sse
## [1] 3027.644
sspe <- sum((marketing$sales - marketing$y.barra.i)**2)
sspe
## [1] 111.0816
n <- nrow(marketing)
n
## [1] 200
c <- length(unique(marketing$youtube))
c
## [1] 190
F.lf <- ((sse - sspe)/(c-2))/(sspe/(n-c)) 
F.lf
## [1] 1.396598

COEFICIENTE DE DETERMINACIÓN MÚLTIPLE

De igual manera, podemos calcular el coeficiente de determinación (múltiple), \(R^2\):

\[R^2 = \frac{SSR}{SST} = \frac{SST - SSE}{SST}\]

y que puede ser interpretado de la misma manera que en la regresión simple, es decir, como la proporción de la variabilidad total de la variable respuesta que es capturada por el modelo.

No obstante, es importante notar que agregar más variables explicativas solamente puede incrementar el valor de \(R^2\), nunca reducirlo.

¿Por qué? [Sugerencia: utiliza la suma de cuadrados adicional.]

Por lo tanto, generalmente se utiliza el coeficiente de determinación múltiple ajustado:

\[R_a^2 = 1 - \frac{SSE/(n-m)}{SST/{(n-1)}} = 1 - \frac{MSE}{SST/{(n-1)}}.\]

Al igual que se mencionó en el caso de la regresión simple (pero quizás todavía con mayor énfasis en el caso de la regresión múltiple) es importante recordar que un valor alto del coeficiente de determinación no implica necesariamente un buen ajuste del modelo (es únicamente un valor de referencia entre muchos, y quizá deberían preocuparnos más valores bajos). En particular, el modelo puede evidenciar un coeficiente de determinación elevado en presencia de valores también elevados de errores medios, lo cual es particularmente delicado si se desea hacer pronósticos fuera del rango observado de variables explicativas (lo cual es fácil que ocurra en el caso múltiple), o cuando se está en presencia de matrices de variables explicativas dispersas.

En este sentido, es necesario recordar que, en contraste con el modelo de regresión simple (que se ubica sobre una recta) en este caso los datos ajustados se ubican sobre un hiperplano. Este espacio multidimensional es mucho más difícil de “poblar” de manera “densa” por lo que estamos mucho más expuestos al problema de sacar conclusiones sobre regiones para las cuales no tenemos observaciones (podemos tener observaciones para los valores observados en, digamos, dos variables explicativas de manera individual, pero no para el cruce de ambas)6.

COMPARACIÓN DE REGRESIONES

Lectura recomendada
  • Kutner et al. (2004), cap. 8.7.

En ocasiones, contamos con dos conjuntos de observaciones diferentes y queremos verificar si el proceso que las genera es el mismo o, en otras palabras, si podemos ajustar el mismo modelo a ambas. En estos casos, lo que buscamos es verificar si el modelo de regresión es el mismo. Para ello, es necesario asumir, desde luego, que ambos modelos corresponden a un modelo lineal y, adicionalmente, que la varianza de los errores de ambos conjuntos de datos es la misma.

Podemos ahora usar la idea de la prueba para modelos anidados para comparar dos propuestas de modelos diferentes. Esto lo podemos hacer de dos maneras: por un lado, es posible construir un modelo con las variables (incluyendo una variable indicadora para las fuentes de los datos) y sus interacciones y contrastar las hipótesis correspondientes al modelo completo y el modelo reducido en el que los coeficientes de las interacciones son iguales a cero; por otro lado, podemos utilizar también la hipótesis lineal general: supongamos que se proponen dos modelos diferentes de regresión lineal para una variable respuesta \(Y\), entonces, podemos construir el siguiente modelo anidado:

\[ Z = (y_1,y_2, \dots, y_n,y_1,y_2,\dots,y_n)'\\ W = \left[\begin{array}{} 1 & x_{1,1} & x_{1,2} & \dots & x_{1,m_1} & 0 & 0 & \dots & 0\\ 1 & x_{2,1} & x_{2,2} & \dots & x_{2,m_1} & 0 & 0 & \dots & 0\\ \vdots &\vdots &\vdots &\vdots &\vdots &\vdots &\vdots &\vdots &\vdots \\ 1 & x_{n,1} & x_{n,2} & \dots & x_{n,m_1} & 0 & 0 & \dots & 0\\ 0 & 0 & 0 & \dots & 0 & 1 & x_{1,m_1 + 1} & \dots & x_{1,m_1 + m_2}\\ 0 & 0 & 0 & \dots & 0 & 1 & x_{2,m_1 + 1} & \dots & x_{2,m_1 + m_2}\\ \vdots &\vdots &\vdots &\vdots &\vdots &\vdots &\vdots &\vdots &\vdots \\ 0 & 0 & 0 & \dots & 0 & 1 & x_{n,m_1 + 1} & \dots & x_{n,m_1 + m_2}\\ \end{array} \right]\\ \kappa = (\beta_{0,1}, \beta_{1,1}, \dots, \beta_{m_1,1}, \beta_{0, 2}, \beta_{1,2}, \dots, \beta_{m_2,2})'. \]

Esta formulación del modelo compuesto se puede extender, por supuesto, a más de dos modelos.

Al ajustar este modelo “compuesto”, cuando deseamos realizar comparaciones entre modelos, una gran diferencia contra la idea alternativa de, por ejemplo, ajustar dos modelos por separado, reside en que al ajustarlo de esta manera estamos imponiendo la restricción de que la varianza es la misma (y, desde luego, constante) en ambos modelos.

Podemos entonces utilizar la formulación del modelo lineal general para contrastar la hipótesis de si los modelos son iguales utilizando:

\[ C = \left[\begin{array}{} 1 & 0 & 0 & \dots & 0 & -1 & 0 & 0 & \dots & 0\\ 0 & 1 & 0 & \dots & 0 & 0 & -1 & 0 & \dots & 0\\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots\\ 0 & 0 & 0 & \dots & 1 & 0 & 0 & 0 & \dots & -1 \end{array}\right] \]

ESTIMADORES DE MÁXIMA VEROSIMILITUD

Si \(\epsilon\) es un vector de vv.aa.ii. distribuidas \(N(0, \sigma^2 I)\), entonces la versomilitud de \(Y\) es igual a:

\[ \mathcal{L} (\beta, \sigma^2|Y) = \frac{1}{\sigma^n(2\pi)^{n/2}}e^{-\frac{(Y - X\beta)'(Y - X\beta)}{2\sigma^2}}. \]

Entonces, los valores de \(\beta\) y \(\sigma^2\) que maximizan la verosimilitud son:

\[ \hat\beta = (X'X)^{-1}X'Y \\ \hat\sigma^2 = \frac{(Y - \hat{Y})'(Y - \hat{Y})}{n} \]

TIPOS DE VARIABLES TÍPICAMENTE INCLUIDAS EN EL ANÁLISIS DE REGRESIÓN MÚLTIPLE (OPCIONAL)

Lecturas recomendadas
  • Weisberg (2005), cap. 3.3.
  • Mendenhall and Sincich (1996), cap. 4.9.
  • Kutner et al. (2004), cap. 8.2, 8.3, 8.4, 8.5.

Aunque en nuestro ejemplo hemos estado trabajando con variables cuantitativas continuas, en la práctica es frecuente que se usen diversos tipos de variables como variables explicativas:

  • Variables cuantitativas discretas (valores enteros): el número de habitaciones de un inmueble (para modelar el precio).

  • Variables categóricas ordinales: percepción del nivel de dificultad en una prueba (alto, medio y bajo).

  • Variables categóricas nominales: el género de una persona.

Las variables categóricas (también llamadas factores) es necesario incluirlas en el modelo como variables dummy. Una variable dummy es una variable que toma únicamente los valores 0 y 1. En este sentido, las variables categóricas se re-codifican en \(k-1\) variables dummy, donde \(k\) es el número de categorías en el dominio de la variable categórica. El valor de la variable categórica que es excluido es conocido como el valor base o de referencia.

¿Qué interpretación tendrían entonces los coeficientes de regresión calculados para estas variables?

En adición a esto, es posible incluir como variables explicativas transformaciones de las variables explicativas originales:

  • Potencias

  • Logaritmos

  • Interacciones: se le llama interacción al producto de dos variables explicativas (i.e., \(X_{i1}X_{i2}\)) y se usan para medir el efecto de la acción simultánea de dos variables.

VARIABLES CATEGÓRICAS (CUALITATIVAS)

Con frecuencia, las variables recabadas durante un estudio suelen incluir información cualtitativa, registrada mediante variables categóricas. ¿Cómo podemos incluir estas variables en nuestros modelos?

Considera que no es raro encontrar variables categóricas codificadas mediante valores numéricos. Es importante no caer en el error de utilizar estos valores de la misma manera en la que utilizaríamos una variable cuantitativa en nuestro modelo. Recordemos que las variables categóricas no hacen ningún supuesto sobre el significado de la “distancia” entre las clases por lo que efecto de los valores numéricos en el modelo no hace ningún sentido.

Veamos primero el caso en el que contamos con una variable categórica de dos niveles. Resulta relativamente natural codificar esta variable como una variable binaria que tome los valores 0 y 1 en lugar de las etiquetas de las categorías originales de la variable. Llamamos a esto una variable binaria, indicadora o dummy.

Con esta codificación de la variable categórica podemos entonces ajustar el modelo de regresión lineal tal como lo hemos estudiado hasta ahora. Sin embargo, ¿cómo debemos interpretar al coeficiente de la regresión asociado a esta variable? Para interpretarlo consideremos los dos valores que puede tomar la variable. Si sustituimos sucesivamente los valores 0 y 1 de la variable dummy en el modelo de regresión podremos ver que la diferencia entre los “modelos” obtenidos es simplemente una traslación del hiperplano verticalmente.

Lo anterior puede ser interpretado, entonces, como el efecto diferencial que ocasiona sobre la variable respuesta la categoría de la variable categórica a la que se asignó el valor 1 respecto del efecto que ocasiona la categoría a la que se asignó el valor 0. Por este motivo, generalmente, a la categoría con el valor 0 se le conoce como la categoría o nivel base o de referencia.

Nota que en la función lm R automáticamente convierte los valores de variables categóricas en variables dummies, tomando como valor de referencia el primer valor encontrado. Podemos controlar a nuestro gusto mediante la función relevel.

Ejemplo
En un estudio de innovación en la industria de seguros, se desea relacionar la velocidad de adopción de innovación (variable respuesta) al tipo y tamaño de la compañía (variables explicativas). La respuesta se mide como el número de meses que tomó la adopción de la innovación en la empresa, el tamaño de la empresa por el total de activos, en millones de dólares, de la compañía y el tipo de la compañía mediante una variable categórica de dos niveles: M, mutualista, y S, sociedad anónima.
datos <- read.table(file = './datos/CH08EX02.txt', sep = '|', header = TRUE)
kable(datos, format = 'simple')
FIRM MONTHS SIZE TYPE
1 17 151 M
2 26 92 M
3 21 175 M
4 30 31 M
5 22 104 M
6 0 277 M
7 12 210 M
8 19 120 M
9 4 290 M
10 16 238 M
11 28 164 S
12 15 272 S
13 11 295 S
14 38 68 S
15 31 85 S
16 21 224 S
17 20 166 S
18 13 305 S
19 30 124 S
20 14 246 S

Ajusta un modelo de regresión lineal múltiple codificando a variable categórica como una variable dummy en la que el nivel de referencia sean las compañías mutualistas.

  1. ¿Cómo se interpreta el coeficiente de la variable explicativa relativa al tipo de compañía?
R
modelo <- lm(data = datos, formula = MONTHS ~ SIZE + TYPE)
summary(modelo)
## 
## Call:
## lm(formula = MONTHS ~ SIZE + TYPE, data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.6915 -1.7036 -0.4385  1.9210  6.3406 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 33.874069   1.813858  18.675 9.15e-13 ***
## SIZE        -0.101742   0.008891 -11.443 2.07e-09 ***
## TYPES        8.055469   1.459106   5.521 3.74e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.221 on 17 degrees of freedom
## Multiple R-squared:  0.8951, Adjusted R-squared:  0.8827 
## F-statistic:  72.5 on 2 and 17 DF,  p-value: 4.765e-09

El coeficiente \(\beta_2\) se interpreta entonces como un incremento de 8.3 meses adicionales en adopción de la innovación para las compañías que son por arriba sociedades anónimas por encima del tiempo tomado por las compañías mutualistas.

Si consideráramos el valor de referencia el tipo de compañía “S”:

datos$TYPE <- relevel(factor(datos$TYPE, labels = c('M', 'S')), ref = 2)

modelo.2 <- lm(data = datos, formula = MONTHS ~ SIZE + TYPE)
summary(modelo.2)
## 
## Call:
## lm(formula = MONTHS ~ SIZE + TYPE, data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.6915 -1.7036 -0.4385  1.9210  6.3406 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 41.929538   2.010101  20.859 1.50e-13 ***
## SIZE        -0.101742   0.008891 -11.443 2.07e-09 ***
## TYPEM       -8.055469   1.459106  -5.521 3.74e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.221 on 17 degrees of freedom
## Multiple R-squared:  0.8951, Adjusted R-squared:  0.8827 
## F-statistic:  72.5 on 2 and 17 DF,  p-value: 4.765e-09
  1. Calcula un intervalo de confianza al 95% para el coeficiente \(\beta_2\).
R
confint(object = modelo, parm = 'TYPES')
##          2.5 %   97.5 %
## TYPES 4.977025 11.13391

Utilizando este modelo con solamente dos niveles en la variable categórica notemos que se podría argumentar que es posible entonces ajustar dos modelos, uno para los datos pertenecientes a una de las categorías y otro para la otra, asumiendo que se obtiene (en cada caso) un modelo más simple. No obstante, consideremos el valor del MSE: para el modelo que sí considera la variable explicativa categórica estaremos dividiendo entre un denominador significativamente mayor (dada la reducción en el número observaciones). Un argumento similar puede hacerse respecto de la estimación de \(\beta_1\) y \(\beta_0\). El modelo que considera la variable categórica gana, entonces, precisión respecto de los modelos individuales.

Agreguemos ahora más niveles (categorías) a la variable categórica, ¿cómo procedemos en este caso? De manera similar, haremos uso de las variables indicadoras solamente que, si en el caso de la variable con dos clases usamos una variable indicadora, en este caso necesitaremos hacer uso de más variables indicadoras ya que tendríamos que indicar cuando ocurren los otros niveles. En forma similar también al caso anterior, estableceremos un valor de referencia, por lo que se establecerán tantas variables indicadoras como niveles (menos uno) tengamos en la variable categórica, de otra manera, introduciríamos una dependencia lineal en las columnas de nuestros datos.

En general, una variable categórica con \(c\) niveles será representada mediante \(c-1\) variables indicadoras para los valores de cada nivel de la variable. El nivel que no es representado por una variable indicadora se conoce como el nivel de referencia.

Nota que, en el caso de la variable categórica binaria, la diferencia de elección en el nivel de referencia implicaba únicamente un cambio de signo en el coeficiente de la regresión. Este no es el caso cuando tenemos presentes más niveles en la variable categórica.

¿Puedes explicar por qué?

Un uso alternativo de las variables categóricas puede darse cuando existen dudas sobre la linealidad de la relación entre una variable explicativa cuantitativa y la variable respuesta. En ocasiones, sobre todo cuando la cantidad de datos permite “sacrificar” algunos grados de libertad, discretizar la variable explicativa cuantitativa en rangos de valores (convirtiéndola en categórica) puede resolver este tipo de problemas y evitar, así, el uso de modelos más complejos.

En la práctica, es posible encontrar en algunas disciplinas modelos en los que todas las variables son categóricas / cualitativas. Estos modelos son frecuentemente conocidos como modelos de análisis de varianza.

INTERACCIONES

Cuando en un modelo se incluye una variable o término que representa al producto de dos variables, a dicho término se le conoce como una interacción o una interacción bilinear. Por ejemplo, en el modelo \(E[Y] = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \beta_3 X1X2\) el término \(X_1X_2\) es una interacción entre las variables \(X_1\) y \(X_2\).

Una consecuencia muy importante de la inclusión de interacciones en el modelo lineal es que alteran la interpretación de los coeficientes de regresión ya que, si consideramos el modelo anterior, el cambio en la variable respuesta asociado a un cambio de una unidad en la variable explicativa 1 ya no corresponde a \(\beta_1\) sino a \(\beta_1 + \beta_3 X_2\).

Notemos, adicionalmente, que los efectos de las variables pueden verse reforzados por el término de interacción (cuando el coeficiente de la interacción tiene el mismo signo que el de la variable) o bien puede contrarrestar el efecto de la variable (cuando los coeficientes tienen signos contrarios).

Como es de esperarse, al agregar variables de interacción al modelo es altamente probable que estemos introduciendo un problema de multicolinealidad (ver el tema correspondiente en la sección de Diagnóstico). Para resolver este problema, una posibilidad es trabajar con variables centradas.

INTERACCIONES ENTRE VARIABLES CUANTITATIVAS Y VARIABLES CATEGÓRICAS

Observa que, cuando la interacción se da entre una variable cuantitativa y una categórica, la interpretación de la interacción puede ser significativamente diferente. Esto se debe a que, cuando la variable categórica adopta el valor 0, los coeficientes de la regresión representan los niveles de referencia para la categoría de referencia.

Sin embargo, considera que, cuando la variable indicadora es igual a 1, los coeficientes de la regresión son modificados significativamente, alterándose tanto la ordenada al origen como la pendiente de la recta.

Ejemplo (cont.)
Continuando con el ejemplo de las aseguradoras.
  1. El investigador está interesado en conocer la interacción entre el tamaño y el tipo de empresa. Ajusta el modelo con interacciones utilizando como nivel de referencia a las aseguradoras mutualistas.
R
modelo <- lm(data = datos, formula = MONTHS ~ SIZE + TYPE + SIZE * TYPE)
summary(modelo)
## 
## Call:
## lm(formula = MONTHS ~ SIZE + TYPE + SIZE * TYPE, data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -5.7144 -1.7064 -0.4557  1.9311  6.3259 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 41.9696196  2.7194341  15.433 4.98e-11 ***
## SIZE        -0.1019478  0.0128711  -7.921 6.31e-07 ***
## TYPEM       -8.1312501  3.6540517  -2.225   0.0408 *  
## SIZE:TYPEM   0.0004171  0.0183312   0.023   0.9821    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.32 on 16 degrees of freedom
## Multiple R-squared:  0.8951, Adjusted R-squared:  0.8754 
## F-statistic: 45.49 on 3 and 16 DF,  p-value: 4.675e-08
  1. Realiza una prueba de hipótesis para determinar si la interacción es estadísticamente significativa a un nivel de prueba igual a 0.05. Interpreta tus resultados.
R
Para contrastar la hipótesis señalada (\(\beta_3 = 0\) vs. \(\beta_3 \neq 0\)) podemos ver que el valor-p de la estadística \(t\) del coeficiente de interacción es igual a 0.9821. Es decir, que la estadística \(t\) se encuentra fuera de la región de rechazo. Por lo tanto, no es posible rechazar la hipótesis de que \(\beta_3 = 0\) por lo que se puede eliminar la interacción en el modelo.

En la práctica, los modelos con mezcla de variables cualitativas y cuantitativas (en los que usualmente las variables principales son las cualitativas) son con frecuencia llamados modelos de análisis de covarianza.

EL MODELO DE REGRESIÓN LINEAL MÚLTIPLE ESTANDARIZADO (OPCIONAL)

Lecturas recomendadas
  • Kutner et al. (2004), cap. 7.5.

Cuando ajustamos un modelo de regresión lineal múltiple se presenta un problema que no se presenta cuando tenemos solamente una variable explicativa: las unidades de medición de las variables explicativas son, en primer lugar, diferentes y, en segundo lugar, las escalas son arbitrarias y regularmente escogidas a conveniencia del estudio.

Esto es un problema, en primer lugar, porque la interpretación de la magnitud de los coeficientes de las variables dependerá de las unidades de medición, pero también porque esto (al igual de la casi colinealidad de la matriz \(X'X\)) puede generar problemas significativos de redondeo en los cálculos, particularmente para altas dimensionalidades.

Desde luego, podemos pensar en varias maneras de resolver estos problemas. Soluciones muy simples, por ejemplo, podrían implicar utilizar unidades de medición que resulten en datos de “dimensiones” menos divergentes, o bien, podemos utilizar algoritmos de descomposición de matrices en los cálculos. Otra manera de resolver este problema es mediante el uso del modelo de regresión lineal múltiple estandarizado.

El modelo de regresión lineal múltiple estandarizado utiliza una transformación de los datos conocida como la transformación de correlación. Para ello, se parte de las variables (respuesta y explicativas) estandarizadas:

\[ \begin{aligned} Y^* = \frac{Y - \bar{Y}}{\frac{s_Y}{\sqrt{n-1}}}\\ X_k^* = \frac{X_k - \bar{X}_k}{\frac{s_{X_k}}{\sqrt{n-1}}}\\ \end{aligned} \]

Una vez estandarizadas las variables, estimamos el modelo de regresión:

\[ Y^* = \beta_1^* X_1^* + \beta_2^* X_2^* + \dots \beta_{m-1}^* X_{m-1}^* + \epsilon^* \]

Observa que este nuevo modelo pasa por el origen. Adicionalmente, es posible demostrar que

\[ \beta_0 = \bar{Y} - \beta_1\bar{X}_1 - \dots - \beta_{m-1} \bar{X}_{m-1}\\ \beta_k = \left(\frac{s_Y}{s_{X_k}}\right) \beta_k^* \]

Si ahora calculamos \(r_{X^*X^*} = Cor(X^*)\) y \(r_{Y^*X^*} = Cor(Y^*,X^*)\), entonces podemos ver que \(r_{X^* X^*} = {X^*}'{X^*}\):

  • En la diagonal tenemos:

\[ \sum {X_{ii}^*}^2 = \sum \left( \frac{X_{ii} - \bar{X}_i}{\sqrt{n-1} s_{X_i}} \right)^2 = \sum \left( \frac{\frac{X_{ii} - \bar{X}_i}{\sqrt{n-1}}}{s_{X_i}} \right)^2 = \frac{\sum \left( \frac{X_{ii} - \bar{X}_i}{\sqrt{n-1}}\right)^2}{s_{X_i}^2} = 1 \]

  • En el elemento \(i,j\) tenemos:

\[ \begin{aligned} \sum_{k=1}^n X_{ki}^* X_{kj}^* &= \sum_{k=1}^n \left( \frac{X_{ki} - \bar{X}_i}{\sqrt{n-1} s_{X_i}} \right) \left( \frac{X_{kj} - \bar{X}_j}{\sqrt{n-1} s_{X_j}} \right)\\ &= \frac{1}{n-1} \sum_{k=1}^n \frac{(X_{ki} - \bar{X}_i)(X_{kj} - \bar{X}_j)}{s_{X_i}s_{X_j}}\\ &= r_{X_i X_j}. \end{aligned} \]

Siguiendo un desarrollo similar se puede ver que \({X^*}'Y^* = r_{{X^*}Y^*}\). Entonces, si ajustamos un modelo de regresión lineal a las variables transformadas, obtenemos que:

\[ \hat{\beta}^* = r_{X^*X^*}^{-1} \times r_{{X^*}Y^*}. \]

A \(\hat{\beta}^*\) se le conoce como el vector de coeficientes de regresión estandarizados.

En R la función lm no incluye un parámetro que permita ajustar el modelo estandarizado, sin embargo, es posible estandarizar las variables de manera relativamente sencilla utilizando la función scale y alimentar a la función lm las nuevas variables estandarizadas.

Ejemplo

Observa que la estandarización de las variables tiene el problema de que, si bien se trata de una transformación lineal, no es una transformación estable, es decir, los valores que usamos para estandarizar las variables cambian siempre ante la presencia de nuevas observaciones. Por lo tanto, los resultados obtenidos utilizando datos estandarizados no son necesariamente comparables en el tiempo.

Si bien la estandarización nos permite comparar el impacto de las variables explicativas en la variable respuesta sin tener que preocuparnos por la diferencia de magnitudes en las unidades de medición, es importante recordar que los estimadores de los coeficientes de regresión no son independientes y, en particular cuando existe correlación significativa entre las variables explicativas, esto puede opacar nuevamente la interpretación, debido a la interacción entre las variables.

Otro aspecto que puede impactar en las magnitudes de los coeficientes estandarizados es la separación entre las observaciones de cada una de las variables explicativas.

ANÁLISIS DE LOS SUPUESTOS DEL MODELO (DIAGNÓSTICO)

Lecturas sugeridas:

  • Kutner et al. (2004), cap. 3, 6.8.

Desde el inicio del curso hemos establecido algunos supuestos básicos para el ajuste un modelo de regresión lineal. Desde luego, si el fenómeno objeto de nuestro estudio no cumple con alguno de estos supuestos (si los datos no muestran evidencia) el modelo no funcionará apropiadamente. Algunas de estas deficiencias pueden en ocasiones detectarse de manera anticipada (mediante un detallado Análisis Exploratorio de Datos, por ejemplo). Sin embargo con frecuencia (incluso, quizás, obligatoriamente) se llevan a cabo ciertos diagnósticos después de haber ajustado el modelo, con el objetivo de detectar posibles desviaciones respecto de los supuestos.

¿Qué es lo que buscamos diagnosticar, entonces? Desviaciones de nuestros datos respecto de nuestros supuestos:

  • Variables explicativas linealmente independientes;

  • Varianzas constantes;

  • Independencia de los errores;

  • Normalidad;

  • Linealidad.

Podemos adelantarnos desde este momento un poco y preguntar, ¿qué podemos hacer si detectamos algún problema que sugiera que el modelo de regresión lineal no es del todo apropiado? En términos generales, nuestras opciones se reducirán a dos grandes estrategias:

  • Realizar alguna transformación sobre los datos que hagan que el modelo de regresión lineal se ajuste mejor a los nuevos datos resultantes (transformados).

  • Realizar alguna modificación al modelo, que por lo general resultará en un modelo más complejo.

MULTICOLINEALIDAD

Lecturas recomendadas
  • Kutner et al. (2004), caps. 7.6, 10.5.
  • Mendenhall and Sincich (1996), cap. 6.5.

En muchas situaciones de la vida real las variables explicativas suelen estar correlacionadas entre sí. A esto se le conoce como multicolinealidad. Cuando esto sucede, se presentan efectos nocivos sobre los estimadores de la regresión. Para ello, consideremos el caso con dos variables explicativas. En este caso, es posible obtener la siguiente expresión para el estimador \(\hat\beta_1\):

\[ \hat\beta_1 = \frac{\frac{\sum(X_{i1} - \bar{X_1})(Y_i - \bar{Y})}{\sum (X_{i1} - \bar{X_1})^2} - \sqrt{\frac{\sum (Y_i - \bar{Y})^2}{\sum (X_{i1} - \bar{X})^2}} r_{Y2} r_{12}}{1 - r^2_{12}} \]

donde:

\[ r_{Y2} = \frac{\sum(X_{i2} - \bar{X_2})(Y_i - \bar{Y})}{\sqrt{\sum(Y_i - \bar{Y})^2 \sum(X_{i2} - \bar{X_2})^2}}\\ r_{12} = \frac{\sum(X_{i2} - \bar{X_2})(X_{i1} - \bar{X_1})}{\sqrt{\sum(X_{i1} - \bar{X_1})^2 \sum(X_{i2} - \bar{X_2})^2}}\\ \]

Tarea

Observa entonces, ¿qué sucede cuando \(r_{12} = 0\)?

¿Qué significa entonces que \(r_{12} = 1\)

En general, podemos afirmar que, cuando dos variables explicativas no se encuentran correlacionadas, la contribución marginal de una de ellas en la reducción de la suma del cuadrado de los errores cuando la otra variable se encuentra en el modelo es exactamente la misma que cuando está sola.

Cuando existe una significativa multicolinealidad sigue siendo perfectamente posible ajustar un modelo lineal del tipo que hemos estado estudiando. Sin embargo, se presentan principalmente dos problemas en la estimación del modelo de regresión lineal:

  1. Se incrementa la posibilidad de errores de redondeo en el cálculo de los estimadores del modelo de regresión.

  2. Los resultados pueden ser engañosos (por ejemplo, se pueden alterar los signos de los coeficientes de regresión), pues se incrementa la variabilidad de los estimadores de los coeficientes bajo diferentes muestras (son inestables).

  3. La interpretación tradicional de los coeficientes de regresión como tasas de cambio en la variable respuesta ante cambios de una unidad en la variable explicativa cuando las demás variables se mantienen fijas ya no se cumple completamente (por la correlación en las variables).

Los problemas observados en los estimadores de los coeficientes pueden ser todavía más significativos si estamos interesados en realizar inferencia simultánea de dos o más coeficientes de la regresión.

Sin embargo, es importante señalar que los intervalos de confianza para \(E(Y)\) y sus intervalos predictivos suelen no verse afectados por la multicolinealidad por lo que, si el objetivo del modelo es únicamente el de realizar pronósticos sobre los datos, puede no ser necesario realizar acciones correctivas.

Algunos síntomas, entonces, de la presencia de multicolinealidad son:

  1. Cambios significativos en los estimadores de los coeficientes de regresión al agregar o quitar variables del modelo.

  2. Cambios en la suma de cuadrados adicional (ANOVA) asociados a una variable explicativa dependiendo de si otras variables ya fueron consideradas en el modelo.

  3. Errores estándar de los estimadores de regresión elevados.

  4. Estimadores de regresión individualmente poco significativos pero relación lineal significativa.

FACTORES DE INFLACIÓN DE VARIANZAS

Resulta tentador utilizar la matriz de correlación entre las variables explicativas para detectar problemas de multicolinealidad. Sin embargo, recordemos que esta matriz calcula la correlación lineal por pares de variables. Desde luego, podría existir alguna relación de correlación no lineal, pero con mayor frecuencia (quizás) el problema que surge es el de correlación entre más de dos variables, que puede presentarse aún cuando la correlación por pares no sea elevada.

Sabemos entonces que \(\sigma^2\{\hat\beta\} = \sigma^2 (X'X)^{-1}\). Consideremos el modelo estandarizado: \(Y^* = X^* \beta^* + \epsilon^*\) donde:

\[ Y^* = \frac{1}{\sqrt{n-1}} \frac{Y - \bar{Y}}{S_Y}\\ X_i^* = \frac{1}{\sqrt{n-1}} \frac{X_i - \bar{X}_i}{S_{X_i}} \]

Entonces:

\[ \beta_k = \frac{S_Y}{S_{X_k}} \beta_k^*\\ \beta_0 = \bar{Y} - \beta_1 \bar{X}_1 - \dots - \beta_{m-1} \bar{X}_{m-1} \]

Considerando estas variables transformadas, entonces, resulta que \({X^*}'{X^*}\) es la matriz de correlaciones de las variables \(X\) (excluyendo el vector de 1s correspondiente al intercepto). Entonces

\[ \sigma^2\{\hat\beta^*\} = (\sigma^*)^2({X^*}'{X^*})^{-1} \]

y, por lo tanto:

\[ \sigma_k^2\{\hat\beta_k^*\} = (\sigma^*)^2({X^*}'{X^*})_{kk}^{-1}. \]

Es decir, la varianza de los estimadores de los coeficientes de regresión estandarizados es proporcional al k-ésimo elemento de la diagonal de la matriz inversa de la matriz de correlaciones de las variables de regresión.

A los valores de \(({X^*}'{X^*})_{kk}^{-1}\) se les conoce como factores de inflación de varianza (VIF, por sus siglas en inglés) y es posible demostrar también que

\[ VIF_k = (1-R^2_k)^{-1} \]

donde \(R_k^2\) es la \(R^2\) de la regresión de la k-ésima variable explicativa en las variables explicativas restantes. Por lo tanto, cuando una variable no está correlacionada a las demás, \(VIF_k = 1\).

Como criterio general, se considera que valores de VIF mayores a 10 son evidencia de multicolinealidad en los datos.

Ejemplo
Veamos los datos de marketing e intentemos diagnosticar multicolinealidad. Primero, exploraremos el comportamiento de los coeficientes de la regresión de manera marginal:

Como se puede ver, parece haber cierta inestabilidad de los coeficientes estimados. Veamos la correlación entre las variables:

cor(marketing[, c('youtube','facebook','newspaper')])
##              youtube   facebook  newspaper
## youtube   1.00000000 0.05480866 0.05664787
## facebook  0.05480866 1.00000000 0.35410375
## newspaper 0.05664787 0.35410375 1.00000000

Calculamos ahora la inversa de la matriz de correlaciones de X:

solve(as.matrix(cor(marketing[, c('youtube','facebook','newspaper')])))
##               youtube    facebook   newspaper
## youtube    1.00461078 -0.03991452 -0.04277518
## facebook  -0.03991452  1.14495192 -0.40317070
## newspaper -0.04277518 -0.40317070  1.14518738

A pesar de que se aprecia inestabilidad en los coeficientes de correlación, no parece haber una correlación particularmente fuerte (y menos entre las dos variables más relevantes).

Si calculamos los factores de inflación de varianza:

modelo <- lm(data = marketing, formula = sales ~ youtube + facebook + newspaper)

car::vif(mod = modelo)
##   youtube  facebook newspaper 
##  1.004611  1.144952  1.145187

podemos verificar que estos valores no son particularmente elevados.


Ejemplo
Veamos otro ejemplo que sí presente problemas de multicolinealidad. Utilizaremos los datos para modelar la relación entre consumo e ingresos, contenidos en el paquete multiColl, el conjunto de datos se llama KG:
library(multiColl)
data(KG)

Hmisc::describe(KG)
## KG 
## 
##  4  Variables      14  Observations
## --------------------------------------------------------------------------------
## consumption 
##        n  missing distinct     Info     Mean  pMedian      Gmd      .05 
##       14        0       14        1    87.12    86.75    21.84    63.52 
##      .10      .25      .50      .75      .90      .95 
##    64.23    68.45    91.00   102.48   108.78   109.78 
##                                                                             
## Value       62.8  63.9  65.0  67.5  71.3  76.6  86.3  95.7  98.3 100.3 103.2
## Frequency      1     1     1     1     1     1     1     1     1     1     1
## Proportion 0.071 0.071 0.071 0.071 0.071 0.071 0.071 0.071 0.071 0.071 0.071
##                             
## Value      108.5 108.9 111.4
## Frequency      1     1     1
## Proportion 0.071 0.071 0.071
## 
## For the frequency table, variable is rounded to the nearest 0
## --------------------------------------------------------------------------------
## wage.income 
##        n  missing distinct     Info     Mean  pMedian      Gmd      .05 
##       14        0       14        1    68.38    67.72    21.97    44.02 
##      .10      .25      .50      .75      .90      .95 
##    44.98    48.62    76.32    82.18    89.72    92.30 
##                                                                             
## Value      43.41 44.35 46.44 47.82 51.02 58.71 75.91 76.73 77.62 78.01 83.57
## Frequency      1     1     1     1     1     1     1     1     1     1     1
## Proportion 0.071 0.071 0.071 0.071 0.071 0.071 0.071 0.071 0.071 0.071 0.071
##                             
## Value      87.69 90.59 95.47
## Frequency      1     1     1
## Proportion 0.071 0.071 0.071
## 
## For the frequency table, variable is rounded to the nearest 0
## --------------------------------------------------------------------------------
## non.farm.income 
##        n  missing distinct     Info     Mean  pMedian      Gmd      .05 
##       14        0       14        1    27.28    27.34    8.328    17.10 
##      .10      .25      .50      .75      .90      .95 
##    17.57    20.27    28.19    32.07    35.48    36.30 
##                                                                             
## Value      17.09 17.10 18.65 19.28 23.24 27.91 28.11 28.26 30.29 31.39 32.30
## Frequency      1     1     1     1     1     1     1     1     1     1     1
## Proportion 0.071 0.071 0.071 0.071 0.071 0.071 0.071 0.071 0.071 0.071 0.071
##                             
## Value      35.17 35.61 37.58
## Frequency      1     1     1
## Proportion 0.071 0.071 0.071
## 
## For the frequency table, variable is rounded to the nearest 0
## --------------------------------------------------------------------------------
## farm.income 
##        n  missing distinct     Info     Mean  pMedian      Gmd      .05 
##       14        0       14        1    6.961     6.92    2.455    4.226 
##      .10      .25      .50      .75      .90      .95 
##    4.412    5.030    7.300    8.715    9.625    9.791 
##                                                                             
## Value       3.96  4.37  4.51  4.88  5.48  6.37  7.21  7.39  7.42  7.98  8.96
## Frequency      1     1     1     1     1     1     1     1     1     1     1
## Proportion 0.071 0.071 0.071 0.071 0.071 0.071 0.071 0.071 0.071 0.071 0.071
##                             
## Value       9.31  9.76  9.85
## Frequency      1     1     1
## Proportion 0.071 0.071 0.071
## 
## For the frequency table, variable is rounded to the nearest 0
## --------------------------------------------------------------------------------
summary(lm(formula = consumption  ~ wage.income, data = KG))
## 
## Call:
## lm(formula = consumption ~ wage.income, data = KG)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -18.7769  -1.0529  -0.0888   3.3370   7.6544 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 23.53207    6.77607   3.473  0.00461 ** 
## wage.income  0.92992    0.09576   9.711 4.91e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6.52 on 12 degrees of freedom
## Multiple R-squared:  0.8871, Adjusted R-squared:  0.8777 
## F-statistic:  94.3 on 1 and 12 DF,  p-value: 4.912e-07
summary(lm(formula = consumption  ~ non.farm.income, data = KG))
## 
## Call:
## lm(formula = consumption ~ non.farm.income, data = KG)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -12.5765  -3.3421   0.8603   4.0270   9.6213 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      19.2164     6.9048   2.783   0.0166 *  
## non.farm.income   2.4888     0.2455  10.138 3.09e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6.274 on 12 degrees of freedom
## Multiple R-squared:  0.8954, Adjusted R-squared:  0.8867 
## F-statistic: 102.8 on 1 and 12 DF,  p-value: 3.088e-07
summary(lm(formula = consumption  ~ farm.income, data = KG))
## 
## Call:
## lm(formula = consumption ~ farm.income, data = KG)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -14.659  -6.722  -4.317  10.388  21.100 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)   38.945     12.024   3.239   0.0071 **
## farm.income    6.921      1.660   4.168   0.0013 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 12.4 on 12 degrees of freedom
## Multiple R-squared:  0.5915, Adjusted R-squared:  0.5574 
## F-statistic: 17.37 on 1 and 12 DF,  p-value: 0.001304
summary(lm(formula = consumption  ~ wage.income + non.farm.income, data = KG))
## 
## Call:
## lm(formula = consumption ~ wage.income + non.farm.income, data = KG)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -13.492  -2.064   1.097   3.205   6.992 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)  
## (Intercept)      19.2895     6.4049   3.012   0.0118 *
## wage.income       0.4414     0.2571   1.717   0.1140  
## non.farm.income   1.3799     0.6849   2.015   0.0690 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 5.82 on 11 degrees of freedom
## Multiple R-squared:  0.9175, Adjusted R-squared:  0.9026 
## F-statistic:  61.2 on 2 and 11 DF,  p-value: 1.095e-06
summary(lm(formula = consumption  ~ wage.income + farm.income, data = KG))
## 
## Call:
## lm(formula = consumption ~ wage.income + farm.income, data = KG)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -18.8176  -0.9428  -0.0052   3.1675   7.7874 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  23.4053     7.2056   3.248 0.007760 ** 
## wage.income   0.9171     0.1708   5.370 0.000227 ***
## farm.income   0.1443     1.5566   0.093 0.927806    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6.807 on 11 degrees of freedom
## Multiple R-squared:  0.8872, Adjusted R-squared:  0.8667 
## F-statistic: 43.26 on 2 and 11 DF,  p-value: 6.133e-06
summary(lm(formula = consumption  ~ non.farm.income + farm.income, data = KG))
## 
## Call:
## lm(formula = consumption ~ non.farm.income + farm.income, data = KG)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -11.493  -2.380   1.743   2.912   6.756 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      17.6896     6.9427   2.548   0.0271 *  
## non.farm.income   2.1851     0.3585   6.095  7.8e-05 ***
## farm.income       1.4098     1.2268   1.149   0.2748    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6.192 on 11 degrees of freedom
## Multiple R-squared:  0.9067, Adjusted R-squared:  0.8897 
## F-statistic: 53.42 on 2 and 11 DF,  p-value: 2.165e-06
summary(lm(formula = consumption  ~ wage.income + non.farm.income + farm.income, data = KG))
## 
## Call:
## lm(formula = consumption ~ wage.income + non.farm.income + farm.income, 
##     data = KG)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -13.494  -1.847   1.116   2.541   6.460 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)  
## (Intercept)      18.7021     6.8454   2.732   0.0211 *
## wage.income       0.3803     0.3121   1.218   0.2511  
## non.farm.income   1.4186     0.7204   1.969   0.0772 .
## farm.income       0.5331     1.3998   0.381   0.7113  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6.06 on 10 degrees of freedom
## Multiple R-squared:  0.9187, Adjusted R-squared:  0.8943 
## F-statistic: 37.68 on 3 and 10 DF,  p-value: 9.271e-06
cor(KG)
##                 consumption wage.income non.farm.income farm.income
## consumption       1.0000000   0.9418677       0.9462820   0.7690671
## wage.income       0.9418677   1.0000000       0.9431118   0.8106989
## non.farm.income   0.9462820   0.9431118       1.0000000   0.7371272
## farm.income       0.7690671   0.8106989       0.7371272   1.0000000
VIF(X = cbind(cte = 1, KG[, -1]))
##     wage.income non.farm.income     farm.income 
##       12.296544        9.230073        2.976638
car::vif(mod = lm(formula = consumption  ~ wage.income + non.farm.income + farm.income, data = KG))
##     wage.income non.farm.income     farm.income 
##       12.296544        9.230073        2.976638

¿Qué sucede con

  • los estimadores puntuales de los coeficientes?

  • los errores estándar de los coeficientes?

  • el estimador de la desviación estándar de los errores?

  • la \(R^2\)?


MÉTODOS DE CORRECCIÓN DE MULTICOLINEALIDAD

Una vez que hemos detectado un problema de multicolinealidad en los datos podemos:

  • Eliminar algunas de las variables correlacionadas del modelo (¿qué inconvenientes crees que esto genera?);
  • Transformación de variables (en ocasiones la multicolinearidad es ocasionada por una mala especificación de variables en el modelo);
  • Incluir otras variables (aunque esto no siempre es factible);
  • Aumentar el tamaño de muestra;
  • Recurrir al modelo de regresión lineal estandarizado (ver secciones anteriores);
  • Utilizar Análisis de Componentes Principales (ver Jolliffe (2002), cap. 8.1);
  • Utilizar métodos más sofisticados, como el método de regresión de aristas.

SESGO DE VARIABLE OMITIDA (OPCIONAL)

Aunque puede ser tentador eliminar alguna de las variables identificadas como linealmente dependientes (y es una solución que en la práctica es recurrente) es necesario considerar lo siguiente. Supongamos que se ha ajustado el modelo \(\hat{Y} = \hat\beta_0 + \hat\beta_1 X_1\) siendo que el modelo correcto es \(E(Y)=\alpha_0 + \alpha_1 X_1 + \alpha_2 X_2\). Es decir, en la especificación del modelo faltó incluir la variable \(X_2\). ¿Bajo qué condiciones \(E(\hat\beta_1) = \alpha_1\)?

Es posible ver que el estimador será insesgado únicamente si la variable omitida es ortogonal a las variables incluidas en el modelo.

Tarea. [Sugerencia: plantea dos modelos para Y, uno con \(X_2\) y otro sin (diferente coeficiente y diferente error); encuentra las condiciones bajo las cuales el estimador del segundo modelo es insesgado.]

Por lo tanto, podemos ver que cuando detectamos multicolinealidad en las variables explicativas, si quitamos una de las variables (asumiendo que es una variable que pertenece al modelo correcto) estamos creando un sesgo en los estimadores de los coeficientes de la regresión.

Entonces, si tomamos este tipo de medidas, estamos intercambiando un problema por otro. Al final, con frecuencia todo se reducirá a una decisión cuyo criterio deberá estar fundamentado en el objetivo que se persegue con el modelo: ¿nos interesa conocer con mayor precisión el rango de valores posibles para los coeficientes? O bien, ¿es más importante contar con un modelo parsimonioso? ¿nos interesa la predicción / pronóstico puntual del modelo?

REGRESIÓN DE ARISTAS (RIDGE) O REGULARIZACIÓN DE TIKHONOV (OPCIONAL)

Como ya se comentó, ante la presencia de multicolinealidad, los estimadores de los coeficientes de regresión presentan errores estándar inflados, por lo que se consideran inestables (pudiéndose presentar, incluso, estimadores de signo contrario al del coeficiente real). Una alternativa al modelo de regresión estándar para dar solución a este problema es el modelo de regresión por aristas (ridge regression, en inglés), o regularización de Tikhonov.

En el modelo de regresión por aristas se propone una modificación al modelo de regresión lineal de manera que los estimadores de los coeficientes de regresión sean estimadores sesgados pero con menor varianza que los estimadores del modelo de regresión original. Se busca, desde luego, que el sesgo sea el menor posible que permita también la menor varianza posible.

La idea detrás de la propuesta de la regresión por aristas parte de la premisa de que una manera de determinar la “bondad” de un estimador de \(\beta\) es su correspondiente error estándar promedio (MSE):

\[ \begin{aligned} MSE(\hat{\beta}) &= E[(\hat{\beta} - \beta)^2]\\ &= Var(\hat{\beta}) + E^2[(\hat{\beta} - \beta)]. \end{aligned} \]

A la cantidad \(\hat{\beta} - \beta\) se le conoce como el sesgo del coeficiente de regresión. Desde luego, como se recordará, los estimadores de máxima verosimilitud de mínimos cuadrados se buscó que fueran estimadores insesgados por lo que \(E[\hat{\beta}] = \beta\) y, por lo tanto: \(MSE(\hat{\beta}) = Var(\hat{\beta})\).

Para la regresión por aristas, no obstante, se buscará estimar parámetros \(\beta_r\) tales que:

\[(r_{XX} + cI) \hat{\beta}_r = r_{YX},\]

donde

  • \(r_{XX}\) es la matriz de correlaciones entre las variables explicativas;

  • \(r_{YX}\) es el vector de coeficientes de correlación entre la variable dependiente y las variables explicativas;

  • \(I\) es una matriz identidad de tamaño \(k\), y

  • \(c\) es una constante de sesgo.

Por lo tanto, despejando \(\hat{\beta}_r\) obtenemos:

\[\hat{\beta}_r = (r_{XX} + cI)^{-1}r_{YX}.\]

Como se puede deducir de la ecuación anterior, cuando \(c > 0\) la varianza de \(\hat{\beta}_r\) será menor que la varianza de \(\hat{\beta}\), aunque tendrá un sesgo. El problema central a resolver ahora, entonces, reside en la elección del parámetro \(c\).

No se conocen las propiedades distribucionales exactas de estos estimadores por lo que la elección del parámetro \(c\) se reduce, frecuentemente, a elecciones basadas en criterios prácticos (heurísticas). Sin embargo, se sabe que:

  • Existe siempre un valor de \(c\) para el cual \(\hat{\beta}_r\) tiene menor MSE que \(\hat{\beta}\).

  • Los valores de \(\hat{\beta}_r\) convergen rápidamente hacia una asíntota horizontal para valores de \(c\) mayores que, pero cercanos a, cero.

  • Conforme se incrementa el valor de \(c\), el valor de los factores de inflación de varianza de los estimadores de los coeficientes decrecen rápidamente.

Por lo tanto, con frecuencia se recurre a una referencia visual para la elección del parámetro \(c\) (conocida como la traza de los coeficientes en función de \(c\)), buscando identificar el valor de \(c\) más pequeño para el cual se observan valores de los estimadores estables.

Ejemplo
data(GenCont)

reglin <- lm(formula = Phenotypes ~ ., data = as.data.frame(GenCont))

summary(reglin)
## 
## Call:
## lm(formula = Phenotypes ~ ., data = as.data.frame(GenCont))
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.2612 -0.6729  0.0243  0.6682  2.3392 
## 
## Coefficients: (1 not defined because of singularities)
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.97258    0.11631   8.362 6.51e-16 ***
## SNP1         0.35468    0.30497   1.163    0.245    
## SNP2         0.19159    0.60079   0.319    0.750    
## SNP3              NA         NA      NA       NA    
## SNP4         0.28496    0.46292   0.616    0.538    
## SNP5         1.72750    0.30362   5.690 2.20e-08 ***
## SNP6        -0.50793    0.51379  -0.989    0.323    
## SNP7        -0.46772    1.02390  -0.457    0.648    
## SNP8        -0.15980    0.11236  -1.422    0.156    
## SNP9         0.41477    1.02258   0.406    0.685    
## SNP10        0.61043    0.65749   0.928    0.354    
## SNP11        0.08350    0.08847   0.944    0.346    
## SNP12       -0.86977    1.02455  -0.849    0.396    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.018 on 488 degrees of freedom
## Multiple R-squared:  0.5435, Adjusted R-squared:  0.5332 
## F-statistic: 52.81 on 11 and 488 DF,  p-value: < 2.2e-16
c <- seq(from = 0.01, to = 3, by = 0.01)

temp <- data.frame(variable = c(NULL), beta_r = c(NULL), c = c(NULL))

for (i in c){
  
  ridge <- 
    linearRidge(
      formula = Phenotypes ~ ., data = as.data.frame(GenCont), lambda = i
      )
  
  temp <- 
    rbind(
      temp
      , data.frame(variable = row.names(ridge$coef), beta_r = ridge$coef, c = i)
      )
  
}

ggplot(data = temp) +
  aes(x = c, y = beta_r, group = variable) +
  geom_line() +
  theme_classic()

summary(ridge)
## 
## Call:
## linearRidge(formula = Phenotypes ~ ., data = as.data.frame(GenCont), 
##     lambda = i)
## 
## 
## Coefficients:
##              Estimate Scaled estimate Std. Error (scaled) t value (scaled)
## (Intercept)  1.565696              NA                  NA               NA
## SNP1         0.229745        3.351693            0.229761           14.588
## SNP2        -0.092395       -1.050742            0.194588            5.400
## SNP3        -0.092395       -1.050742            0.194588            5.400
## SNP4        -0.008024       -0.017851            0.308433            0.058
## SNP5         0.439253        5.228805            0.268512           19.473
## SNP6        -0.099129       -1.142355            0.198672            5.750
## SNP7         0.113003        0.112890            0.308789            0.366
## SNP8        -0.087854       -0.911411            0.295401            3.085
## SNP9        -0.019870       -0.019850            0.308940            0.064
## SNP10        0.050032        0.086398            0.308398            0.280
## SNP11       -0.087415       -1.354515            0.273695            4.949
## SNP12       -0.280681       -0.280400            0.308841            0.908
##             Pr(>|t|)    
## (Intercept)       NA    
## SNP1         < 2e-16 ***
## SNP2        6.67e-08 ***
## SNP3        6.67e-08 ***
## SNP4         0.95385    
## SNP5         < 2e-16 ***
## SNP6        8.93e-09 ***
## SNP7         0.71467    
## SNP8         0.00203 ** 
## SNP9         0.94877    
## SNP10        0.77936    
## SNP11       7.46e-07 ***
## SNP12        0.36393    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Ridge parameter: 3
## 
## Degrees of freedom: model 2.561 , variance 0.8391 , residual 4.284
ridge <- 
    linearRidge(
      formula = Phenotypes ~ ., data = as.data.frame(GenCont)
      )
  
summary(ridge)
## 
## Call:
## linearRidge(formula = Phenotypes ~ ., data = as.data.frame(GenCont))
## 
## 
## Coefficients:
##              Estimate Scaled estimate Std. Error (scaled) t value (scaled)
## (Intercept)  1.533386              NA                  NA               NA
## SNP1         0.277296        4.045409            0.266120           15.201
## SNP2        -0.110458       -1.256154            0.216332            5.807
## SNP3        -0.110458       -1.256154            0.216332            5.807
## SNP4         0.005230        0.011635            0.371693            0.031
## SNP5         0.531173        6.323006            0.315368           20.050
## SNP6        -0.119164       -1.373227            0.223047            6.157
## SNP7         0.113844        0.113730            0.372181            0.306
## SNP8        -0.099149       -1.028581            0.355807            2.891
## SNP9        -0.008321       -0.008312            0.372386            0.022
## SNP10        0.058562        0.101128            0.371567            0.272
## SNP11       -0.096526       -1.495699            0.329250            4.543
## SNP12       -0.334279       -0.333945            0.372248            0.897
##             Pr(>|t|)    
## (Intercept)       NA    
## SNP1         < 2e-16 ***
## SNP2        6.38e-09 ***
## SNP3        6.38e-09 ***
## SNP4         0.97503    
## SNP5         < 2e-16 ***
## SNP6        7.43e-10 ***
## SNP7         0.75993    
## SNP8         0.00384 ** 
## SNP9         0.98219    
## SNP10        0.78549    
## SNP11       5.55e-06 ***
## SNP12        0.36966    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Ridge parameter: 2.206848, chosen automatically, computed using 1 PCs
## 
## Degrees of freedom: model 3.121 , variance 1.205 , residual 5.036
ggplot(data = temp) +
  aes(x = c, y = beta_r, group = variable) +
  geom_line() +
  geom_vline(xintercept = ridge$lambda, colour = 'red', linetype = 'dashed') +
  theme_classic()

predict(ridge, newdata = as.data.frame(GenCont)[1, 2:13])
##        1 
## 1.374077

ANÁLISIS DE RESIDUALES

Lecturas recomendadas
  • Kutner et al. (2004), cap. 3.

  • Weisberg (2005), cap. 8.


Realizar un diagnóstico directamente sobre los valores observados de la variable respuesta normalmente no es muy útil ya que, si el modelo es incorrecto, se ve afectada por los valores observados en la variable explicativa. Sin embargo, si el modelo es correcto, los valores de los errores de regresión

\[ \hat{\epsilon}_i = Y_i - \hat{Y}_i \]

son estimaciones de la variable aleatoria \(\epsilon_i\). Recordemos que los \(\epsilon_i\) son variables aleatorias:

  • Con media 0;

  • Varianza \(\sigma^2\) constante;

  • Independientes;

  • Normales.

Recordemos también que, por construcción

\[ \sum\limits_{i=1}^n \hat{\epsilon}_i = 0 \]

por lo que analizar la media de los errores estimados de regresión no es de mucha ayuda. Sin embargo, podemos sustituir este punto por algún diagnóstico de los errores que nos ayude a determinar si los datos siguen, efectivamente un patrón lineal.

En términos generales, entonces, se busca graficar los residuales (tradicionalmente en el eje vertical) contra alguna de las variables explicativas o contra los valores de la estimación de la media de la variable respuesta (y gorro). Si el modelo lineal es el correcto, entonces esperamos no observar tendencias o patrones en los gráficos ni observaciones atípicas.

ANÁLISIS GRÁFICO DE RESIDUALES

Típicamente se realizan los siguientes gráficos sobre los residuales:

  • Residuales vs. variable explicativa; [linealidad, varianza constante]

  • Residuales cuadrados vs. variable explicativa; [linealidad, varianza constante]

  • Residuales vs. valores ajustados; [linealidad, varianza constante]

  • Secuencia de residuales; [linealidad, varianza constante, independencia]

  • Box plot; [normalidad, valores atípicos]

  • Q-Q plot. normalidad

Desde luego, en todos estos gráficos buscamos detectar algún patrón que indique algún posible distanciamiento de los supuestos del modelo. Este tipo de gráficos son particularmente útiles para identificar violaciones al supuestos de homocedasticidad.

Una gráfica que puede ser útil (pero muchas veces puede ser solamente un buen deseo) es la gráfica de los residuales contra variables explicativas no incluidas en el modelo. Sin embargo, en la práctica, rara vez contamos con variables explicativas adicionales, pero esto puede ser el caso cuando descartamos variables durante una fase exploratoria, por ejemplo. Este tipo de gráficos nos pueden ayudar a explorar la relación de estas variables con los residuales y verificar si parece haber una relación explicativa descartada relevante.

Ejemplo (cont.)

¿Qué rasgos observas de las siguientes gráficas?

modelo <- lm(data = marketing, formula = sales ~ youtube + facebook + newspaper)

summary(modelo)
## 
## Call:
## lm(formula = sales ~ youtube + facebook + newspaper, data = marketing)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.5932  -1.0690   0.2902   1.4272   3.3951 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  3.526667   0.374290   9.422   <2e-16 ***
## youtube      0.045765   0.001395  32.809   <2e-16 ***
## facebook     0.188530   0.008611  21.893   <2e-16 ***
## newspaper   -0.001037   0.005871  -0.177     0.86    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.023 on 196 degrees of freedom
## Multiple R-squared:  0.8972, Adjusted R-squared:  0.8956 
## F-statistic: 570.3 on 3 and 196 DF,  p-value: < 2.2e-16
ggplot(data = marketing) +
  aes(x = youtube, y = modelo$residuals) +
  geom_point() +
  geom_hline(yintercept = 0) +
  theme_classic() +
  labs(title = 'Residuales Vs. Variable explicativa', subtitle = 'Youtube')

ggplot(data = marketing) +
  aes(x = facebook, y = modelo$residuals) +
  geom_point() +
  geom_hline(yintercept = 0) +
  theme_classic() +
  labs(title = 'Residuales Vs. Variable explicativa', subtitle = 'facebook')

ggplot(data = marketing) +
  aes(x = newspaper, y = modelo$residuals) +
  geom_point() +
  geom_hline(yintercept = 0) +
  theme_classic() +
  labs(title = 'Residuales Vs. Variable explicativa', subtitle = 'facebook')

ggplot(data = marketing) +
  aes(x = modelo$fitted.values, y = modelo$residuals) +
  geom_point() +
  geom_hline(yintercept = 0) +
  theme_classic() +
  labs(title = 'Y est. Vs. Residuales')

Una versión especial de estos gráficos es conocida como el gráfico de residuales parciales, y una versión de estos gráficos conocida como CCPR plot es considerada particularmente útil para diagnosticar problemas de linealidad:

ggplot(data = marketing) +
  aes(y = modelo$coefficients[2]*youtube + modelo$residuals, x = youtube) +
  geom_point() +
  geom_line(mapping = aes(y = modelo$coefficients[2]*youtube), colour = 'red') +
  theme_classic() +
  labs(title = 'CCPR plot', subtitle = 'Youtube')

ggplot(data = marketing) +
  aes(y = modelo$coefficients[3]*facebook + modelo$residuals, x = facebook) +
  geom_point() +
  geom_line(mapping = aes(y = modelo$coefficients[3]*facebook), colour = 'red') +
  theme_classic() +
  labs(title = 'CCPR plot', subtitle = 'Facebook')

ggplot(data = marketing) +
  aes(y = modelo$coefficients[4]*newspaper + modelo$residuals, x = newspaper) +
  geom_point() +
  geom_line(mapping = aes(y = modelo$coefficients[4]*newspaper), colour = 'red') +
  theme_classic() +
  labs(title = 'CCPR plot', subtitle = 'Newspaper')


Para el gráfico de los residuales en secuencia es importante considerar, en primer lugar, que los estimadores de los errores de regresión no son independientes (ya que dependen de los mismos estadísticos mínimos). Sin embargo, si el modelo propuesto es el correcto, no debería haber un patrón que sugiera una dependencia uno a uno. En segundo lugar, es importante señalar que, aunque la secuencia más obvia que viene a la mente es la secuencia temporal (es decir, el orden en el que se recogieron las observaciones), bien podría ser el caso que la variable que indique la secuencia que determina la dependencia sea otra.

¿Qué situaciones se te ocurre que pueden ocasionar dependencia entre los errores del modelo?

ggplot(data = marketing) +
  geom_qq(
    mapping = aes(sample = modelo$residuals)
    ) +
  geom_qq_line(
    mapping = aes(sample = modelo$residuals)
    ) +
  theme_classic()

Para las gráficas de cuantiles, debemos recordar que no podemos estandarizar los errores estimados ya que no conocemos el valor de su desviación estándar. Para estandarizarlos, una primera aproximación es utilizar como estimador de la varianza el valor de MSE:

\[ \hat\epsilon_{i}^{*} = \frac{\hat\epsilon_i}{\sqrt{MSE}}. \]

A estos residuales se les conoce como los residuales semi-studentizados. Sin embargo, debemos recordar que la varianza de \(\hat\epsilon_{i}\) varía para valor de \(i\) por lo que tenemos que usar el estimador de la varianza de los errores. Sin embargo, los errores estandarizados de esta manera ya no siguen una distribución normal sino una distribución \(t\). Por lo tanto, debemos tener la precaución de comparar contra los valores de una distribución \(t\) con \(n-m\) grados de libertad si deseamos comparar valores de los errores studentizados:

\[ \hat\epsilon_{i}^{stu} = \frac{\hat\epsilon_i}{s_{i}\sqrt{1 - h_{ii}}} \]

residuales.stu <- rstudent(model = modelo)

ggplot(data = marketing) +
  geom_qq(mapping = aes(sample = residuales.stu), distribution = qt, dparams = list(df = 196)) +
  geom_qq_line(mapping = aes(sample = residuales.stu), distribution = qt, dparams = list(df = 196)) +
  theme_classic()

ggplot(data = marketing) +
  geom_density(mapping = aes(x = residuales.stu)) +
  theme_classic()

VARIANZAS NO CONSTANTES (HETEROSCEDASTICIDAD)

Lecturas recomendadas
  • Kutner et al. (2004), Cap. 3.6.

El problema de heteroscedasticidad se refiere a la violación del supuesto de varianzas constantes. Es decir, es el problema que se presenta cuando la matriz de varianzas y covarianzas de los errores no es de la forma \(\sigma^2I\). Se puede presentar, entonces, el caso de que los elementos en la diagonal de esta matriz sean diferentes del valor constante (desconocido) \(\sigma^2\) o bien, incluso, que los elementos en posiciones diferentes a la diagonal sean diferentes de cero.

En términos coloquiales, esto se presenta cuando algunas observaciones son menos “confiables” que otras.

La presencia de varianzas no constantes impacta fundamentalmente en la eficiencia de los estimadores y la estimación de la varianza de los estimadores. Dependiendo del objetivo del análisis (y de la cantidad de datos disponibles, porque estamos afectando la eficiencia) esto no necesariamente es algo grave.

Antes de pasar a estudiar la manera en la que podemos resolver este problema para el modelo de regresión lineal es válido preguntarnos: ¿cómo podemos detectar la heteroscedasticidad?

Ya hemos visto cómo se ve la heteroscedasticidad gráficamente (nuestro ejemplo parece tener este problema).

Imagen tomada de: link

Una advertencia adicional que resulta relevante: con frecuencia el problema de heteroscedasticidad es un problema que no se presenta en forma aislada sino que acompañado de otras violaciones a supuestos, y con mucha frecuencia de violaciones al supuesto de normalidad.

ggplot(data = marketing) +
  geom_point(mapping = aes(x = youtube, y = modelo$residuals**2)) +
  theme_classic()

ggplot(data = marketing) +
  geom_point(mapping = aes(x = facebook, y = modelo$residuals**2)) +
  theme_classic()

ggplot(data = marketing) +
  geom_point(mapping = aes(x = newspaper, y = modelo$residuals**2)) +
  theme_classic()

ggplot(data = marketing) +
  geom_point(mapping = aes(x = sales, y = modelo$residuals**2)) +
  theme_classic()

ESTADÍSTICA DE BROWN-FORSYTHE

Supongamos que se divide a la muestra de observaciones en dos grupos. La estadística de prueba de Brown-Forsythe se define como:

\[ t_{BF}^* = \frac{\bar{d}_1 - \bar{d}_2}{s\sqrt{\frac{1}{n_1}+\frac{1}{n_2}}} \]

donde:

  • \(\tilde{\hat\epsilon}_k\) es la mediana de los residuales observados para el grupo \(k\);

  • \(d_{ik} = |\hat\epsilon_{ik} - \tilde{\hat\epsilon}_k|\);

  • \(\bar{d}_k\) es la media muestral de \(d_{ik}\);

  • \(s^2 = \frac{\sum (d_{i1}-\bar{d}_1)^2 + \sum (d_{i2}-\bar{d}_2)^2}{n-2}\);

  • \(n_k\) es el tamaño del subgrupo de observaciones \(k\).

Se sabe que, si los errores tienen varianza constante (y \(n_1\) y \(n_2\) no son demasiado pequeños), \(t_{BF}^*\) sigue aproximadamente una distribución \(t\) con \(n-2\) grados de libertad. La idea subyacente en la prueba es, entonces, que si dividimos en dos grupos a las observaciones, deberíamos observar evidencia de la misma varianza en en los residuales observados para ambos subgrupos.

En regresión simple, como siempre, es relativamente intuitivo, por ejemplo, escoger los subgrupos de manera que uno incluya a las observaciones correspondientes a valores grandes de la variable explicativa y el otro a los valores pequeños. En el caso de regresión múltiple la elección puede no ser tan obvia, pero el criterio puede derivarse del análisis de los residuales.

Ejemplo
Aplicaremos la prueba de Brown-Forsythe a los datos de nuestro ejemplo. Recordemos que el modelo completo es Sales = Youtube + Facebook + Newspaper:
modelo <- lm(data = marketing, formula = sales ~ youtube + facebook + newspaper)

summary(modelo)
## 
## Call:
## lm(formula = sales ~ youtube + facebook + newspaper, data = marketing)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.5932  -1.0690   0.2902   1.4272   3.3951 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  3.526667   0.374290   9.422   <2e-16 ***
## youtube      0.045765   0.001395  32.809   <2e-16 ***
## facebook     0.188530   0.008611  21.893   <2e-16 ***
## newspaper   -0.001037   0.005871  -0.177     0.86    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.023 on 196 degrees of freedom
## Multiple R-squared:  0.8972, Adjusted R-squared:  0.8956 
## F-statistic: 570.3 on 3 and 196 DF,  p-value: < 2.2e-16

Si graficamos los residuales obtenemos:

ggplot(data = marketing) +
  aes(x = youtube, y = modelo$residuals) +
  geom_point() +
  theme_classic()

ggplot(data = marketing) +
  aes(x = facebook, y = modelo$residuals) +
  geom_point() +
  theme_classic()

ggplot(data = marketing) +
  aes(x = newspaper, y = modelo$residuals) +
  geom_point() +
  theme_classic()

ggplot(data = marketing) +
  aes(x = modelo$fitted.values, y = modelo$residuals) +
  geom_vline(xintercept = median(modelo$fitted.values)) +
  geom_point() +
  theme_classic()

Podemos observar que tanto para el gasto en Youtube como el gasto en Facebook se aprecia un patrón interesante en la variabilidad de los datos. Utilizaremos entonces la variable respuesta (estimada) para partir los datos y lo haremos partiendo en dos grupos iguales el dominio de la variable respuesta (estimada):

marketing$residuals <- modelo$residuals
grupo.1 <- marketing[which(modelo$fitted.values <= median(modelo$fitted.values)),]
grupo.2 <- marketing[which(modelo$fitted.values > median(modelo$fitted.values)),]
mediana.epsilon.gorro.1 <- median(grupo.1$residuals)
mediana.epsilon.gorro.2 <- median(grupo.2$residuals)
grupo.1$d <- abs(grupo.1$residuals-mediana.epsilon.gorro.1)
grupo.2$d <- abs(grupo.2$residuals-mediana.epsilon.gorro.2)
d.media.1 <- mean(grupo.1$d)
d.media.2 <- mean(grupo.2$d)

SSD <- 
  (sum((grupo.1$d - d.media.1)^2) + sum((grupo.2$d - d.media.2)^2)) / 
  (nrow(marketing) - 2)

t.star.bf <- 
  abs(d.media.1 - d.media.2)/sqrt(SSD*(1/nrow(grupo.1) + 1/nrow(grupo.2)))

t.star.bf.p.value <- 
  pt(q = t.star.bf, df = nrow(marketing)-2, lower.tail = FALSE)
ggplot(data = marketing) + 
  aes(sample = residuals) +
  geom_qq() +
  theme_classic()

ggplot(data = grupo.1) +
  aes(x = residuals) +
  geom_density() +
  geom_density(data = grupo.2, mapping = aes(x = residuals), colour = 'red') +
  theme_classic()

Obtenemos entonces que el valor p para la estadística \(t_{BF}^* = 1.9914513\) es igual a \(0.023903\) por lo que encontramos evidencia de heteroscedasticidad en los residuales.


PRUEBA DE BREUSCH-PAGAN

La prueba de Breusch-Pagan (1979) (también conocida como prueba de Cook-Weisberg por haber sido desarrollada también por estos investigadores en forma independiente) asume que los errores se distribuyen normales con \(Var(\epsilon_i) = \sigma^2_i\) tales que \(\sigma^2_i = h(Z, \gamma)\) (con frecuencia, aunque no necesariamente, \(Z = X\)).

Entonces, el procedimiento que se sigue es:

  1. Estimar los \(\hat\epsilon_i\) del modelo de RLO.

  2. Ajustar el modelo de RLO a la relación entre \(\hat{\epsilon}^2_i\) y \(Z, \gamma\) (por ejemplo, \(\hat\epsilon^2 = Z \gamma + \eta\), o \(\ln \hat\epsilon = Z \gamma + \eta\)).

  3. Bajo la hipótesis nula de homocedasticidad, la estadística \(\frac{n^2}{2}\frac{SSR^*}{SSE^2}\) (la \(SSR^*\) de la segunda regresión) se distribuye \(\chi^2_{m-1}\).

Ejemplo
Si aplicamos ahora la prueba de BP a los datos de maketing:
modelo <- lm(data = marketing, formula = sales ~ youtube + facebook + newspaper)
residuales <- modelo$residuals

ggplot(data = marketing) +
  geom_point(mapping = aes(x = sales, y = modelo$residuals**2)) +
  theme_classic()

ggplot(data = marketing) +
  geom_point(mapping = aes(x = youtube, y = modelo$residuals**2)) +
  theme_classic()

ggplot(data = marketing) +
  geom_point(mapping = aes(x = facebook, y = modelo$residuals**2)) +
  theme_classic()

ggplot(data = marketing) +
  geom_point(mapping = aes(x = newspaper, y = modelo$residuals**2)) +
  theme_classic()

datos.bp <- 
  data.frame(
    residuales.sq = residuales**2
    , youtube = marketing$youtube
    , facebook = marketing$facebook
    , newspaper = marketing$newspaper
    )
modelo.bp <- 
  lm(data = datos.bp, formula = residuales.sq ~ youtube + facebook + newspaper)
est.bp <- 
  ((nrow(marketing)**2)/2)*
  sum((modelo.bp$fitted.values - mean(datos.bp$residuales.sq))^2)/
  (sum(modelo$residuals**2))**2
est.bp
## [1] 13.68396
qchisq(p = 0.975, df = 3)
## [1] 9.348404

¿A qué conclusión llegamos, entonces?


PRUEBA DE GLEJSER

La prueba de Glejser es una prueba que se sugiere utilizar cuando se observa un patrón de “corbata de moño” en los residuales de la regresión. En esta prueba lo que se propone (de manera similar a la prueba BP) es modelar los errores como:

\[|\hat\epsilon| = f(X, \gamma) + \eta\]

Para \(f(\cdot)\) se puede escoger, nuevamente, a la función identidad, o bien a transformaciones de los datos (usualmente la raíz o el recíproco). Si se ajustan varios modelos, se escoge el modelo con mejor ajuste.

Nuevamente, bajo la hipótesis nula de homocedasticidad, \(nR^2 \sim \chi^2_{m-1}\).

Ejemplo
Aplicamos ahora la prueba de Glejser a nuestros datos.
modelo <- lm(data = marketing, formula = sales ~ youtube + facebook + newspaper)
residuales <- modelo$residuals




datos.glejser <- 
  data.frame(
    residuales.abs = abs(residuales)
    , youtube = marketing$youtube
    , facebook = marketing$facebook
    , newspaper = marketing$newspaper
    )

ggplot(data = marketing) +
  geom_point(mapping = aes(x = sales, y = datos.glejser$residuales.abs)) +
  theme_classic()

ggplot(data = marketing) +
  geom_point(mapping = aes(x = youtube, y = datos.glejser$residuales.abs)) +
  theme_classic()

ggplot(data = marketing) +
  geom_point(mapping = aes(x = facebook, y = datos.glejser$residuales.abs)) +
  theme_classic()

ggplot(data = marketing) +
  geom_point(mapping = aes(x = newspaper, y = datos.glejser$residuales.abs)) +
  theme_classic()

modelo.glejser <- 
  lm(
    data = datos.glejser
    , formula = residuales.abs ~ youtube + facebook + newspaper
    )
summary(modelo.glejser)
## 
## Call:
## lm(formula = residuales.abs ~ youtube + facebook + newspaper, 
##     data = datos.glejser)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.7835 -1.0150 -0.1550  0.6329  8.8438 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.920e+00  2.446e-01   7.851 2.64e-13 ***
## youtube     -1.819e-03  9.115e-04  -1.996   0.0473 *  
## facebook    -3.577e-03  5.627e-03  -0.636   0.5257    
## newspaper    8.789e-05  3.836e-03   0.023   0.9817    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.322 on 196 degrees of freedom
## Multiple R-squared:  0.02291,    Adjusted R-squared:  0.007959 
## F-statistic: 1.532 on 3 and 196 DF,  p-value: 0.2074
est.glejser <- nrow(marketing)*summary(modelo.glejser)$r.squared
datos.glejser.2 <- 
  data.frame(
    residuales.abs = abs(residuales)
    , youtube = marketing$youtube**0.5
    , facebook = marketing$facebook
    , newspaper = marketing$newspaper
    )
modelo.glejser.2 <- 
  lm(
    data = datos.glejser.2
    , formula = residuales.abs ~ youtube + facebook + newspaper
    )
summary(modelo.glejser.2)
## 
## Call:
## lm(formula = residuales.abs ~ youtube + facebook + newspaper, 
##     data = datos.glejser.2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.0522 -0.9856 -0.1536  0.6334  8.3384 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  2.4941108  0.3105011   8.033 8.72e-14 ***
## youtube     -0.0718883  0.0202654  -3.547 0.000487 ***
## facebook    -0.0037068  0.0055063  -0.673 0.501619    
## newspaper    0.0002651  0.0037558   0.071 0.943793    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.294 on 196 degrees of freedom
## Multiple R-squared:  0.0632, Adjusted R-squared:  0.04886 
## F-statistic: 4.408 on 3 and 196 DF,  p-value: 0.005022
est.glejser.2 <- nrow(marketing)*summary(modelo.glejser.2)$r.squared
datos.glejser.3 <- 
  data.frame(
    residuales.abs = abs(residuales)
    , youtube = marketing$youtube**(-1)
    , facebook = marketing$facebook
    , newspaper = marketing$newspaper
    )
modelo.glejser.3 <- 
  lm(
    data = datos.glejser.3
    , formula = residuales.abs ~ youtube + facebook + newspaper
    )
summary(modelo.glejser.3)
## 
## Call:
## lm(formula = residuales.abs ~ youtube + facebook + newspaper, 
##     data = datos.glejser.3)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.6719 -0.9294 -0.1223  0.6710  4.2784 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  1.463397   0.161554   9.058   <2e-16 ***
## youtube      8.769855   0.903032   9.712   <2e-16 ***
## facebook    -0.009150   0.004697  -1.948   0.0528 .  
## newspaper    0.003213   0.003201   1.004   0.3168    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.097 on 196 degrees of freedom
## Multiple R-squared:  0.3269, Adjusted R-squared:  0.3166 
## F-statistic: 31.74 on 3 and 196 DF,  p-value: < 2.2e-16
est.glejser.3 <- nrow(marketing)*summary(modelo.glejser.3)$r.squared
est.glejser
## [1] 4.582837
est.glejser.2
## [1] 12.64047
est.glejser.3
## [1] 65.38693
qchisq(p = 0.975, df = 3)
## [1] 9.348404

¿A qué conclusión llegamos ahora?


MÍNIMOS CUADRADOS GENERALIZADOS

Una vez que hemos identificado un problema de varianzas no constantes, ¿cómo podemos solucionarlo?

Hay tres grandes tipos de soluciones:

  • Mínimos cuadrados generalizados (en particular, mínimos cuadrados ponderados)

  • Aplicar transformaciones que estabilizan la varianza

  • Plantear otro modelo (p.e., utilizando MLG)

MÍNIMOS CUADRADOS PONDERADOS (WLS)

Supongamos entonces que se considera el modelo \(Y = X\beta + \epsilon\) pero que, ahora \(\epsilon \sim N(0,V\sigma^2)\).

Es posible demostrar que es posible encontrar una matriz \(P\) simétrica y no singular tal que \(P'P = V\). Sea entonces \(f = P^{-1}\epsilon\). Entonces,

\[ \begin{aligned} Var(f) &= Var(P^{-1}\epsilon)\\ &= E[P^{-1}\epsilon\epsilon'P^{-1}] - E^2(P^{-1}\epsilon)\\ &= E(P^{-1}\epsilon\epsilon'P^{-1})\\ &= P^{-1}E(\epsilon\epsilon')P^{-1}\\ &= \sigma^2P^{-1}VP^{-1}\\ &= \sigma^2P^{-1}P'PP^{-1}\\ &= \sigma^2I. \end{aligned} \]

Entonces el modelo \(Z = P^{-1}Y = P^{-1}X\beta + P^{-1}\epsilon\) satisface los supuestos básicos del modelo de regresión lineal planteados al inicio de este curso. Si, entonces, aplicamos el método de mínimos cuadrados, obtendremos el estimador de mínimos cuadrados:

\[ \hat\beta = (X'V^{-1}X)^{-1}X'V^{-1}Y \]

Tarea


Es importante subrayar que, aún cuando nos encontremos ante la presencia de posible heteroscedasticidad, los estimadores de los coeficientes de regresión obtenidos mediante mínimos cuadrados serán estimadores insesgados. Sin embargo, estos estimadores ya no serán de mínima varianza. Para obtener los estimadores de mínima varianza es necesario utilizar mínimos cuadrados ponderados.

Con frecuencia (casi siempre), sin embargo, no es posible contar con información sobre la matriz \(V\) por lo que es común primero ajustar un modelo de regresión lineal (estándar) y posteriormente, con base en la observación de los residuales, intentar establecer algún criterio sobre la estructura de la matriz de varianzas y covarianzas.

El problema de plantear una estructura para la matriz de varianzas y covarianzas para errores correlacionados es un poco más complejo (fuera del alcance del curso) por lo que nos centraremos en el caso no correlacionado. En particular, asumiremos que \(Var(\epsilon_i) = \sigma_i^2\). Podemos pensar entonces en una matriz de pesos, diagonal, \(n \times n\), \(W\) tal que \(w_{ii} = \frac{1}{\sigma_{i}^2}\).

Si, entonces, utilizamos el modelo \(Z = W^{1/2}Y = W^{1/2}X\beta + W^{1/2}\epsilon\) los supuestos del modelo de regresión lineal aplicados a este modelo transformado aplican en su totalidad.

Se puede demostrar, entonces, que el estimador de mínimos cuadrados para \(\beta\)

\[ \hat\beta = (X'WX)^{-1}X'WY \]

es el estimador insesgado de mínima varianza de entre los estimadores insesgados lineales.

Lo difícil sigue siendo, entonces, determinar los valores específicos de \(W\). ¿Cómo podemos hacer esto? Lo primero es identificar a qué valor está relacionado la variabilidad en la varianza, ¿está relacionada a alguna de las variables explicativas? ¿Está relacionada al nivel de la variable respuesta (o de su estimación)?

Una vez que se ha identificado la variable a la que se relaciona la variabilidad en la varianza (y la forma de esta relación), podemos seguir el siguiente procedimiento:

  1. Ajusta el modelo de regresión mediante MCO.

  2. Calcula los residuales al cuadrado \(\hat\epsilon_i^2\) que servirán como estimadores de \(\sigma_i^2\).

  3. Dado que los residuales presentan generalmente mucha variabilidad, para la determinación de los pesos es más recomendable, generalmente, utilizar estimadores de los residuales al cuadrado (o del valor absoluto de los residuales) mediante el ajuste de otro modelo que los describa (motivo por el cuál es muy importante la exploración previa).

  4. Construye la matriz \(W\) con los valores ajustados por el modelo del paso 3.

Como es posible imaginar, toda inferencia sobre los parámetros de la regresión elaborada a partir de estos estimadores es, ahora, solamente aproximada y será mejor en la medida en la que los tamaños de muestra sean más grandes.

Ejemplo ;

modelo <- lm(data = marketing, formula = sales ~ youtube + facebook + newspaper)
summary(modelo)
## 
## Call:
## lm(formula = sales ~ youtube + facebook + newspaper, data = marketing)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.5932  -1.0690   0.2902   1.4272   3.3951 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  3.526667   0.374290   9.422   <2e-16 ***
## youtube      0.045765   0.001395  32.809   <2e-16 ***
## facebook     0.188530   0.008611  21.893   <2e-16 ***
## newspaper   -0.001037   0.005871  -0.177     0.86    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.023 on 196 degrees of freedom
## Multiple R-squared:  0.8972, Adjusted R-squared:  0.8956 
## F-statistic: 570.3 on 3 and 196 DF,  p-value: < 2.2e-16
w <- 1/modelo$residuals**2

modelo.2 <- 
  lm(data = marketing, formula = sales ~ youtube + facebook + newspaper, weights = w)
summary(modelo.2)
## 
## Call:
## lm(formula = sales ~ youtube + facebook + newspaper, data = marketing, 
##     weights = w)
## 
## Weighted Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.3163 -1.0008  0.9610  0.9952  1.0278 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  3.519e+00  2.247e-02 156.591  < 2e-16 ***
## youtube      4.588e-02  7.078e-05 648.147  < 2e-16 ***
## facebook     1.886e-01  7.728e-04 244.102  < 2e-16 ***
## newspaper   -1.221e-03  3.441e-04  -3.547 0.000487 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.003 on 196 degrees of freedom
## Multiple R-squared:  0.9996, Adjusted R-squared:  0.9996 
## F-statistic: 1.688e+05 on 3 and 196 DF,  p-value: < 2.2e-16

NORMALIDAD

Los problemas de heteroesquedasticidad con frecuencia pueden estar asociados o presentarse en conjunto con problemas de no-normalidad en los errores de la regresión.

Es relevante observar también que pequeñas desviaciones respecto del supuesto de normalidad no suelen ser graves y el análisis que hagamos bajo el modelo en presencia de estas desviaciones ser razonablemente acertado. Esto es todavía más acertado si nuestro análisis se centra en los valores medios y el número de observaciones es razonablemente grande. Adicionalmente, las aparentes desviaciones del supuesto de normalidad pueden ser, en realidad consecuencia de desviaciones respecto de otros de los supuestos por lo que suele ser una buena estrategia preocuparse primero por las otras desviaciones.

Si la distribución de Y no es exactamente normal pero no se aleja mucho de la normalidad, las distribuciones muestrales de los estimadores serán aproximadamente normales y el uso de la distribución \(t\) dará intervalos de confianza bastante aproximados. Aún cuando los datos se alejen significativamente de la normalidad, los estimadores serán asintóticamente normales por lo que, con muestras suficientemente grandes la confianza de los intervalos para los estimadores todavía son válidas. Para muestras grandes, por supuesto, el valor de la distribución \(t\) es sustituido por el valor de la distribución normal estándar, \(z\) (Kutner et al. 2004).

PRUEBA GRÁFICA

Una manera típica de explorar si los datos observados en una muestra corresponden a una determinada distribución muestral es construir un gráfico de cuantiles (Q-Q plot). En estos gráficos, se compara a los datos de la muestra ordenados contra los cuantiles correspondientes de la función de distribución de comparación (puede ser tanto teórica como empírica). Aunque (como siempre) la comparación más común es contra la distribución normal, esto no tiene que ser así.

La gráfica que se muestra a continuación (tomada de Kutner et al. (2004)) representa tres posibles situaciones para estos gráficos.

En nuestro caso, desde luego, nos interesa explorar cómo se comparan los residuales con una distribución normal.

PRUEBA DE CORRELACIÓN DE CUANTILES

Una prueba relacionada a esta prueba gráfica es la prueba de correlación de cuantiles.

La idea de esta prueba consiste en valorar el grado de relación que se observa entre los valores de los residuales y los valores equivalentes provenientes de una distribución teórica normal.

Para ello, es necesario recordar que suponemos que los residuales provienen de una distribución normal con media 0 y desviación \(\sigma\). No contamos, desde luego, con el valor para \(\sigma\) por lo que usaremos como su estimador a \(\sqrt{MSE}\).

Ahora, para determinar cuál sería el valor equivalente al del residual suponiendo que proviene de una distribución normal recurriremos al hecho de que una aproximación para la k-ésima observación de una muestra aleatoria de tamaño \(n\) proveniente de una distribución normal estándar se puede obtener como:

\[ z\left( \frac{k - 0.375}{n + 0.25} \right) \]

donde \(z(\cdot)\) es el cuantil correspondiente de la normal estándar, por lo que el valor aproximado del k-ésimo residual lo podemos aproximar mediante la normal usando:

\[ \sqrt{MSE} \times z\left( \frac{k - 0.375}{n + 0.25} \right). \]

Una vez calculados los valores aproximados de los residuales utilizando la distribución normal, podemos calcular la correlación de estos valores aproximados con los valores reales de los residuales. Desde luego, valores elevados de correlación señalarían respaldo a la hipótesis de normalidad.

Los valores de referencia para la correlación calculada de esta forma bajo la hipótesis nula de normalidad para diferentes niveles de significancia tienen que ser consultados en tablas (ver, por ejemplo, el anexo B6 de Kutner et al. (2004)).

Ejemplo
Realicemos la prueba de normalidad para el ejemplo de marketing. Consideremos un nivel de significancia del 10%.

Primero es necesario obtener los residuales de la regresión:

modelo <- lm(data = marketing, formula = sales ~ youtube + facebook + newspaper)
residuales <- modelo$residuals

Y necesitamos, también, el estimador de la varianza de los errores de la regresión:

sigma.2 <- sum(residuales**2)/(nrow(marketing)-2)

Los estimadores de los cuantiles teóricos bajo normalidad serán, según lo señalado en los apuntes:

cuantiles.t <- sqrt(sigma.2)*qnorm(p = (1:nrow(marketing) - 0.375)/(nrow(marketing)+0.25))

Podemos ahora calcular la correlación entre estos cuantiles teóricos y los valores de los residuales:

# Ordenamos los residuales:
#
residuales.ord <- residuales[order(residuales)]

# Calculamos el coeficiente de correlación:
#
cor(x = residuales.ord, y = cuantiles.t)
## [1] 0.9562376

Si ahora consultamos el valor de referencia de la correlación para un tamaño de muestra de 200 y un nivel de significancia de 10% podemos ver que el valor crítico corresponde a un valor mayor a 0.989 (para tamaños de muestra mayores, el valor de referencia sería aún mayor). Dado que la correlación obtenida es menor al valor de referencia, rechazamos la hipórtesis de normalidad.


PRUEBA DE KOLMOGOROV-SMIRNOV

La prueba de KS está basada en la idea (similar al QQ plot) de comparar los cuantiles de dos muestras de datos para verificar si existe evidencia de que provienen de la misma distribución (en nuestro caso, queremos entonces comparar contra una distribución normal).

La estadística de prueba propuesta por KS es:

\[ D = \sup\limits_x |F_n(x) - F(x)| \]

donde

\[ F_n(x) = \frac{\text{número de observaciones menores o iguales a x}}{n} \]

y \(F(x)\) es el valor de la función de distribución de comparación (teórica o empírica) evaluada en \(x\). Bajo la hipótesis nula de igualdad de distribuciones, \(D\) converge a 0.

El problema de la prueba de KS para los residuales de regresión es que está formulada para el caso en el que se conocen los parámetros de la distribución teórica de comparación. Dado que se están haciendo estimaciones de estos parámetros, la prueba estrictamente hablando no aplica.

En 1967, Hubert W, Lilliefors propuso una modificación a la prueba KS para solventar este problema (usando, nuevamente, simulación de Monte Carlo).

PRUEBA DE SHAPIRO-WILK

Esta prueba estadística diseñada para comparar la hipótesis de normalidad en los datos está basada en la estadística de prueba y se ha demostrado es significativamente más eficaz que otras pruebas:

\[ W = \frac{(\sum (a_ix_{(i)}))^2}{\sum (x_i - \bar{x})^2} \]

donde las \(a_i\) son constantes que han sido previamente calculadas / tabuladas, relacionadas con la covarianza entre los cuantiles.

La hipótesis nula de la prueba es que los datos se distribuyen normales. Los valores-p son obtenidos mediante simulación de Monte-Carlo.

Ejemplo (cont.)
Para el ejemplo de ventas, ¿podemos considerar que los errores provienen de una distribución normal? Veamos primero el gráfico de cuantiles.
ggplot(data = marketing) +
  aes(x = modelo$residuals/(summary(modelo)$sigma)) +
  geom_density() +
  geom_density(mapping = aes(x = rnorm(n = nrow(marketing))), colour = 'blue') +
  geom_density(mapping = aes(x = rt(n = nrow(marketing), df = nrow(marketing) - 2)), colour = 'red') +
  theme_classic() +
  labs(x = 'Teórica', y = 'Residuales')

ggplot(data = marketing) +
  aes(sample = modelo$residuals/(summary(modelo)$sigma)) +
  geom_qq() + 
  geom_qq_line() +
  theme_classic() +
  labs(x = 'Teórica', y = 'Residuales')

Si ahora realizamos las pruebas de normalidad:

ks.test(
  x = modelo$residuals
  , y = 'pnorm'
  , mean = mean(modelo$residuals)
  , sd = sd(modelo$residuals)
  )
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  modelo$residuals
## D = 0.13197, p-value = 0.001887
## alternative hypothesis: two-sided
nortest::lillie.test(x = modelo$residuals)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo$residuals
## D = 0.13197, p-value = 4.887e-09
shapiro.test(x = modelo$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo$residuals
## W = 0.91767, p-value = 3.939e-09

Como se puede observar, todas las pruebas parecen rechazar la hipótesis de normalidad en los residuales.


PRUEBA DE JARQUE-BERA

Finalmente, consideraremos la prueba de Jarque-Bera por dos motivos: 1) que es una prueba diferente en el sentido de que busca diferencias entre la asimetría y curtosis de los datos contra los esperados de una distribución normal y 2) porque es una prueba que fue desarrollada por un mexicano.

La prueba se basa en un la estadística de prueba:

\[ JB = \frac{n}{6} \left( S^2 + \frac{1}{4} (K-3)^2\right)\\ S = \frac{\frac{1}{n}\sum (x_i - \bar{x})^3}{(\frac{1}{n}\sum (x_i - \bar{x})^2)^{3/2}}\\ K = \frac{\frac{1}{n}\sum (x_i - \bar{x})^4}{(\frac{1}{n}\sum (x_i - \bar{x})^2)^{2}}. \]

Bajo la hipótesis nula de normalidad, la estadística de prueba sigue una distribución asintótica \(\chi^2_2\).

Ejemplo
Si aplicamos la prueba de Jarque-Bera a los datos de marketing, tenemos ahora que:
tseries::jarque.bera.test(x = modelo$residuals)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
## 
##  Jarque Bera Test
## 
## data:  modelo$residuals
## X-squared = 151.24, df = 2, p-value < 2.2e-16

Por lo tanto, la prueba de JB también rechaza la hipótesis nula de normalidad en los residuales.


SOLUCIONES A LOS PROBLEMAS DE NORMALIDAD

Lecturas sugeridas
  • Kutner et al. (2004), cap. 3.9.

  1. Transformaciones: para resolver problemas de normalidad, aplicar transformaciones a los valores de la variable respuesta puede resolver en gran medida el problema. Algunas de las transformaciones más comunes: \(Y' = \sqrt{Y}; Y' = \ln Y; Y' = \frac{1}{Y}\). Es importante señalar que, en algunos casos, una transformación simultánea de las variables respuesta y explicativas puede ser necesaria. Adicionalmente, en ocasiones puede ser necesario considerar la inclusión de una constante \(k\) en la transformación, por ejemplo, cuando la variable \(Y\) adopta valores negativos que indeterminen la transformación raíz o logaritmo (en cuyo caso, la transformación apropiada sería \(Y' = \ln{(Y + k)}\), por ejemplo). Estas transformaciones pueden ser generalizadas mediante el procedimiento de estimación de la transformación de Box-Cox.

  2. Ampliaciones al modelo: es posible añadir variables al modelo lineal para intentar dar solución a algunas desviaciones del modelo. Por ejemplo, para resolver la evidencia de no-linealidad respecto de algunas variables explicativas, es posible incluir transformaciones apropiadas de estas variables (e.g., \(X_i^2\)) o bien interacciones entre dos (o más) variables explicativas (e.g., \(X_i X_j\)).

  3. Modelos lineales generalizados.

LINEALIDAD

Lecturas recomendadas
  • Kutner et al. (2004), cap. 3.10.

  • Weisberg (2005), cap. 8.2.

  • Box and Tidwell (1962)

  • (box1964?)


El último supuesto que vamos a analizar es el supuesto de linealidad. Es importante recordar que cuando hablamos, en regresión, de un modelo lineal, generalmente nos referimos a que sea lineal en los coeficientes de la regresión.

En lo que hemos estado estudiando ya hemos, de alguna manera, diagnosticado este supuesto.

¿Cómo lo hemos hecho?

Ahora bien, nuestro modelo puede ser aproximadamente lineal y por eso producir coeficientes de regresión significativos, o explicar una proporción relevante de la variabilidad observada en la variable respuesta, y al mismo tiempo presentar indicios de no-linealidad.

¿De qué otra manera podemos entonces diagnosticar problemas con el supuesto de linealidad? Generalmente se recurre a métodos gráficos y, específicamente, al análisis gráfico de los residuales de regresión.

Si deseamos realizar una prueba estadística podemos usar la prueba Rainbow. La idea fundamental de la prueba Rainbow consiste en ajustar dos modelos lineales: uno con los datos completos y otro con una muestra de un subintervalo de los datos en el que se piense que el supuesto de linealidad se cumple (¿cuál sería el subíntervalo apropiado en el contexto de un modelo de regresión múltiple?). Podemos entonces comparar el ajuste de ambos modelos y si el ajuste es similar, podemos afirmar que el modelo lineal se mantiene; en otro caso, rechazamos la hipótesis de linealidad.

Siguiendo una idea similar al contraste de modelos anidados, resulta que el cociente:

\[ F^* = \frac{\frac{SSE_C}{n}}{\frac{SSE_R}{n_R - m - 1}} \sim F_{n, n_R - m - 1}. \]

Con esto, podemos hacer ya una prueba de linealidad de nuestro modelo.

Ejemplo
En este caso centraremos nuestra atención en los residuales contra los valores ajustados de la variable respuesta:
ggplot(data = marketing) +
  aes(x = modelo$fitted.values, y = modelo$residuals) +
  geom_point() +
  geom_hline(yintercept = 0) +
  theme_classic() +
  labs(title = 'Y est. Vs. Residuales')

ggplot(data = marketing) +
  aes(x = youtube, y = sales) +
  geom_point() +
  theme_classic() +
  labs(title = 'Ventas Vs. Youtube')

Veamos qué arroja como resultado la prueba rainbow:

lmtest::raintest(
  formula = sales ~ youtube + facebook + newspaper
  , data = marketing
  , order.by = ~ youtube
  , fraction = 0.25
  )
## 
##  Rainbow test
## 
## data:  sales ~ youtube + facebook + newspaper
## Rain = 15.842, df1 = 150, df2 = 46, p-value < 2.2e-16
modelo.reducido <- lm(formula = sales ~ youtube + facebook + newspaper, data = marketing[marketing$youtube > 100 & marketing$youtube < 300,])
summary(modelo.reducido)
## 
## Call:
## lm(formula = sales ~ youtube + facebook + newspaper, data = marketing[marketing$youtube > 
##     100 & marketing$youtube < 300, ])
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.68240 -0.50227 -0.00478  0.59348  2.00161 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  5.577221   0.356186  15.658   <2e-16 ***
## youtube      0.033476   0.001547  21.643   <2e-16 ***
## facebook     0.230289   0.005314  43.340   <2e-16 ***
## newspaper   -0.007700   0.003862  -1.994   0.0486 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9595 on 113 degrees of freedom
## Multiple R-squared:  0.9617, Adjusted R-squared:  0.9607 
## F-statistic: 946.1 on 3 and 113 DF,  p-value: < 2.2e-16
modelo <- lm(formula = sales ~ youtube + facebook + newspaper, data = marketing)
summary(modelo)
## 
## Call:
## lm(formula = sales ~ youtube + facebook + newspaper, data = marketing)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.5932  -1.0690   0.2902   1.4272   3.3951 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  3.526667   0.374290   9.422   <2e-16 ***
## youtube      0.045765   0.001395  32.809   <2e-16 ***
## facebook     0.188530   0.008611  21.893   <2e-16 ***
## newspaper   -0.001037   0.005871  -0.177     0.86    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.023 on 196 degrees of freedom
## Multiple R-squared:  0.8972, Adjusted R-squared:  0.8956 
## F-statistic: 570.3 on 3 and 196 DF,  p-value: < 2.2e-16
marketing$youtube.sq <- marketing$youtube**0.5
marketing$facebook.sq <- marketing$facebook**0.5 

modelo.2 <- lm(data = marketing, formula = sales ~ youtube + youtube.sq + facebook + facebook.sq + youtube*facebook + newspaper)

summary(modelo.2)
## 
## Call:
## lm(formula = sales ~ youtube + youtube.sq + facebook + facebook.sq + 
##     youtube * facebook + newspaper, data = marketing)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -3.08908 -0.24878  0.02416  0.25113  1.20015 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.9972772  0.2760363   7.236 1.07e-11 ***
## youtube          -0.0310046  0.0017283 -17.940  < 2e-16 ***
## youtube.sq        1.1858173  0.0381692  31.067  < 2e-16 ***
## facebook          0.0482199  0.0103347   4.666 5.74e-06 ***
## facebook.sq      -0.0572867  0.0852845  -0.672    0.503    
## newspaper         0.0019097  0.0013566   1.408    0.161    
## youtube:facebook  0.0008663  0.0000182  47.613  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4655 on 193 degrees of freedom
## Multiple R-squared:  0.9946, Adjusted R-squared:  0.9945 
## F-statistic:  5967 on 6 and 193 DF,  p-value: < 2.2e-16
ggplot(data = marketing) +
  aes(x = modelo.2$fitted.values, y = modelo.2$residuals) +
  geom_point() +
  geom_hline(yintercept = 0) +
  theme_classic() +
  labs(title = 'Y est. Vs. Residuales')

ggplot(data = marketing) +
  aes(x = youtube, y = modelo.2$residuals) +
  geom_point() +
  geom_hline(yintercept = 0) +
  theme_classic() +
  labs(title = 'Residuales Vs. Variable explicativa', subtitle = 'Youtube')

ggplot(data = marketing) +
  aes(x = facebook, y = modelo.2$residuals) +
  geom_point() +
  geom_hline(yintercept = 0) +
  theme_classic() +
  labs(title = 'Residuales Vs. Variable explicativa', subtitle = 'facebook')

SOLUCIONES

  • Interacciones: incluir interacciones entre las variables explicativas puede capturar no-linealidades en el modelo. Las interacciones en el modelo son representadas mediante la multiplicación de combinaciones de las variables explicativas, por ejemplo:

\[ y_i = \beta_0 + \beta_1 x_{i1} + \beta_2 x_{i2} + \beta_3 x_{i1}x_{i2} + \epsilon_i \]

Ver también la sección relativa a modelos de regresión polinomiales (opcional).

  • Transformaciones: algunas transformaciones pueden ayudar a resolver el problema de no linealidad. La idea de fondo es que el modelo correcto es, en realidad, no lineal y aplicando una transformación podemos obtener una relación lineal. El ejemplo más popular es quizás la transformación logarítmica. En este caso se asume que el modelo es un modelo es un modelo multiplicativo del tipo:

\[ \begin{aligned} y_i &= \beta_0 e^{\beta_1 x_{1i} + \beta_2 x_{2i} + \dots + \beta_m x_{mi}} \epsilon_i \\ \log(y_i) &= \log(\beta_0) + \beta_1 x_{1i} + \beta_2 x_{2i} + \dots + \beta_m x_{mi} + \log(\epsilon_i) \\ y'_i &= \beta'_0 + \beta_1 x_{1i} + \beta_2 x_{2i} + \dots + \beta_m x_{mi} + \epsilon'_i. \end{aligned} \]

Es ahora al modelo transformado al que asociamos los supuestos del modelo lineal. Es importante considerar, sin embargo, que cuando no existe evidencia de violaciones a otros supuestos del modelo (varianzas constantes, normalidad de los errores) lo más recomendable es explorar el uso de transformaciones únicamente para las variables explicativas, no para la variable respuesta.

También es posible (en ocasiones, equivalente) plantear transformaciones a las variables explicativas. Ahora, determinar las transformaciones apropiadas puede, solamente en algunos casos, ser obvio a partir del análisis gráfico de los datos. Sin embargo, usualmente será complicado. Una manera de estimar la transformación apropiada a realizar es utilizando el método de Box-Tidwell (Box and Tidwell 1962).

Tarea: lee y explica el método de Box-Tidwell.

Ejem. (cont.)
Aplica el método de Box-Tidwell para determinar la mejor transformación de los datos de marketing.

[PENDIENTE DE DESARROLLAR. UTILIZAR FUNCIÓN boxTidwell del paquete car.]


  • Modelos no lineales (fuera del alcance de este curso): si después de explorar otras soluciones no encontramos todavía un modelo con un buen ajuste, es hora quizá de explorar soluciones no lineales a nuestro modelo.

    • Regresión por partes (piecewise regression)

    • Regresión Lasso (general)

    • Métodos no paramétricos

    • LOESS: consiste en ajustar regresiones lineales locales sucesivamente; require establecer como parámetro adicional el tamaño de las vecindades para aplicar las regresiones lineales locales, dos juegos de ponderadores, y el número de iteraciones para las regresiones.

    • LOWESS

Ejemplo (cont.)

¿Qué pasa si, en nuestro modelo, consideramos las interacciones?

modelo <- 
  lm(data = marketing, formula = sales ~ youtube + facebook + newspaper + youtube*facebook + youtube*newspaper + facebook*newspaper)

summary(modelo)
## 
## Call:
## lm(formula = sales ~ youtube + facebook + newspaper + youtube * 
##     facebook + youtube * newspaper + facebook * newspaper, data = marketing)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -7.1087 -0.4745  0.2248  0.7172  1.8320 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         7.752e+00  3.811e-01  20.342   <2e-16 ***
## youtube             2.033e-02  1.609e-03  12.633   <2e-16 ***
## facebook            2.293e-02  1.141e-02   2.009   0.0460 *  
## newspaper           1.703e-02  1.007e-02   1.691   0.0924 .  
## youtube:facebook    9.494e-04  4.764e-05  19.930   <2e-16 ***
## youtube:newspaper  -6.643e-05  2.983e-05  -2.227   0.0271 *  
## facebook:newspaper -9.133e-05  1.969e-04  -0.464   0.6433    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.126 on 193 degrees of freedom
## Multiple R-squared:  0.9686, Adjusted R-squared:  0.9677 
## F-statistic: 993.3 on 6 and 193 DF,  p-value: < 2.2e-16
ggplot(data = marketing) +
  aes(x = sales, y = modelo$residuals) +
  geom_point() +
  theme_classic()

ggplot(data = marketing) +
  aes(x = youtube, y = modelo$residuals) +
  geom_point() +
  theme_classic()

ggplot(data = marketing) +
  aes(x = facebook, y = modelo$residuals) +
  geom_point() +
  theme_classic()

ggplot(data = marketing) +
  aes(x = newspaper, y = modelo$residuals) +
  geom_point() +
  theme_classic()

modelo <- 
  lm(data = marketing, formula = sales ~ youtube + facebook + newspaper + youtube*facebook + youtube*newspaper)

summary(modelo)
## 
## Call:
## lm(formula = sales ~ youtube + facebook + newspaper + youtube * 
##     facebook + youtube * newspaper, data = marketing)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -7.0823 -0.4581  0.2324  0.6889  1.7807 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        7.849e+00  3.182e-01  24.668   <2e-16 ***
## youtube            2.035e-02  1.605e-03  12.675   <2e-16 ***
## facebook           2.018e-02  9.734e-03   2.073   0.0395 *  
## newspaper          1.342e-02  6.377e-03   2.105   0.0366 *  
## youtube:facebook   9.468e-04  4.720e-05  20.059   <2e-16 ***
## youtube:newspaper -6.433e-05  2.942e-05  -2.187   0.0300 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.124 on 194 degrees of freedom
## Multiple R-squared:  0.9686, Adjusted R-squared:  0.9678 
## F-statistic:  1197 on 5 and 194 DF,  p-value: < 2.2e-16
ggplot(data = marketing) +
  aes(x = sales, y = modelo$residuals) +
  geom_point() +
  theme_classic()

ggplot(data = marketing) +
  aes(x = youtube, y = modelo$residuals) +
  geom_point() +
  theme_classic()

ggplot(data = marketing) +
  aes(x = facebook, y = modelo$residuals) +
  geom_point() +
  theme_classic()

ggplot(data = marketing) +
  aes(x = newspaper, y = modelo$residuals) +
  geom_point() +
  theme_classic()

pairs(data.frame(t = 1:200, modelo$residuals, marketing$sales, marketing$youtube, marketing$facebook))

cor(data.frame(t = 1:200, modelo$residuals, marketing$sales, marketing$youtube, marketing$facebook))
##                               t modelo.residuals marketing.sales
## t                   1.000000000    -9.132758e-03       0.7779280
## modelo.residuals   -0.009132758     1.000000e+00       0.1772113
## marketing.sales     0.777927988     1.772113e-01       1.0000000
## marketing.youtube   0.998058670     1.749245e-17       0.7822244
## marketing.facebook  0.051929500    -2.980404e-16       0.5762226
##                    marketing.youtube marketing.facebook
## t                       9.980587e-01       5.192950e-02
## modelo.residuals        1.749245e-17      -2.980404e-16
## marketing.sales         7.822244e-01       5.762226e-01
## marketing.youtube       1.000000e+00       5.480866e-02
## marketing.facebook      5.480866e-02       1.000000e+00

ANÁLISIS DE LA VARIABLE EXPLICATIVA (OPCIONAL)

Es importante recordar que para el análisis de regresión lineal la variable explicativa no es una variable aleatoria por lo que las inferencias que hagamos sobre los parámetros de la regresión debemos interpretarlos como inferencias realizadas sobre una muestra dados los valores observados en la variable explicativa. Por lo tanto, es importante analizar los valores observados de esta variable para detectar valores atípicos o indebidamente influyentes.

Adicionalmente, sobre todo cuando se trata de experimentos controlados, típicamente el investigador tiene cierto control sobre los niveles que observará de la variable explicativa. El análisis de la variable explicativa nos permitirá, entonces, tomar decisiones sobre su uso.

Una advertencia importante: la selección de valores de la variable explicativa aplica únicamente en ciertos casos / circunstancias. En términos generales, lo recomendable será siempre recolectar y usar la mayor cantidad de observaciones posible y distribuidas de manera que cubran el dominio de la variable de la mejor manera posible.

Es posible, sin embargo, que bajo ciertas circunstancias, nos convenga seleccionar observaciones. Esto dependerá en mayor medida del objetivo de nuestro estudio, que podemos englobar en cuatro grandes objetivos: estimar \(\beta_0\), estimar \(\beta_1\), estimar \(E(Y_i|X_i)\) o estimar \(Y^*\). La guía para escoger los valores de \(X\) en cada uno de estos casos nos la proporciona la expresión de la varianza de cada estimador:

[Agregar aquí las expresiones para las varianzas de los estimadores]

Como podemos ver, entonces, si el objetivo es minimizar la varianza de los estimadores, podemos escoger los valores de \(X\) siguiendo los siguientes criterios (en todos los casos, recoger la mayor cantidad de observaciones posible):

  • \(\beta_0\): escoger los valores de \(X\) de manera que \(\bar{X} = 0\). En caso de que esto no sea posible, escogerlos en el extremo del dominio de \(X\) y de manera que se encuentren uniformemente distribuidos en cada extremo.

  • \(\beta_1\): escoger los valores de \(X\) en el extremo del dominio de \(X\) y de manera que se encuentren uniformemente distribuidos en cada extremo.

  • \(E(Y_i|X_i)\) y \(Y^*|X_i\): escoger los valores de \(X\) de manera que \(\bar{X} = X_i\).

No obstante lo anterior, es importante observar que para ello estamos asumiendo que el modelo lineal es apropiado para describir nuestros datos. Si este no es el caso y se desean explorar algunas otras formas de modelos, será necesario modificar los criterios anteriores.

DETECCIÓN DE VALORES ATÍPICOS (OPCIONAL)

Para la detección de valores atípicos podemos emplear algunas herramientas visuales como:

  • Diagrama de puntos: representa a los valores observados como un conteo mediante puntos sobre valores en la recta real. Cuando el rango de los valores es muy amplio (o muy granular) se suelen elaborar intervalos, en lugar de los valores individuales.

  • Gráfico secuencial: cuando los datos son acopiados utilizando algún criterio secuencial (casi siempre espacio-temporal) una buena práctica es visualizar a la variable independiente en el orden de la secuencia de acopio. Si la variable demuestra algún comportamiento regular (algún patrón) es muy probable que tengamos que realizar modificaciones al planteamiento del modelo.

  • Diagrama de caja y brazos: cuando el número de observaciones es elevado (y, sobre todo, cuando es muy granular) es posible que sea conveniente realizar un gráfico de caja y brazos. Este gráfico busca describir la distribución de los datos en una sola imagen incluyendo los siguientes elementos: las observaciones potencialmente atípicas (aquellas que se encuentran a 1.5 veces de los límites del rango intercuartil), el primer cuartil, el segundo cuartil y el tercer cuartil.

Ejemplo (cont.)
ggplot(data = marketing) +
  aes(x = youtube) +
  geom_dotplot() +
  theme_classic()
## Bin width defaults to 1/30 of the range of the data. Pick better value with
## `binwidth`.

ggplot(data = marketing) +
  aes(x = 1:nrow(marketing), y = youtube) +
  geom_line() +
  theme_classic()

ggplot(data = marketing) +
  aes(x = youtube) +
  geom_boxplot() +
  theme_classic()


La identificación de valores atípicos es muy importante. El método de mínimos cuadrados no es un método robusto por lo que con frecuencia en la práctica los valores atípicos son eliminados del análisis. Sin embargo, la práctica no es quizá la mejor consejera en este caso. Los valores atípicos, en estricto sentido, deben ser analizados a detalle y, con base en los resultados del análisis, tomar una decisión sobre qué hacer con ellos.

¿Qué significa que una técnica sea robusta?

Hoy en día los valores atípicos son, para muchos, las observaciones de interés. Esto da lugar a una rama de estudio conocida como “Análisis de Anomalías”. No es un problema para nada trivial.

¿Qué motivos se te ocurren que pueden dar lugar a una observación atípica? ¿En qué casos la eliminarías?

En el caso de que se confirme la presencia de observaciones atípicas, si estas observaciones no son descartadas como errores, entonces muy probablemente sea necesario recurrir a técnicas de estimación robusta, las cuales se encuentran fuera del alcance de este curso.

MODELOS POLINOMIALES (OPCIONAL)

Lecturas recomendadas:

  • Kutner et al. (2004), Cap. 8.

Una alternativa cuando detectamos una posible relación no lineal entre la variable respuesta y las variables explicativas es considerar utilizar un modelo polinomial. A manera de advertencia, recordemos el ejemplo puesto al inicio de este material en el que sobre-ajustamos un polinomio a un conjunto de datos para lograr un ajuste perfecto. Como este ejemplo nos señala, en modelos polinomiales debemos tener cuidado ya que las extrapolaciones de sus resultados pueden ser engañosas.

El modelo polinomial de orden \(n\) corresponderá a un polinomio de orden \(n\) en las variables explicativas, incluyendo (posiblemente) todas las interacciones entre dichas variables. Así, por ejemplo, un modelo polinomial de segundo orden con tres variables explicativas adoptará la forma

\[ Y_i = \beta_0 + \beta_1 X_{1i} + \beta_{11} X_{1i}^2 + \beta_2 X_{2i} + \beta_{22} X_{2i}^2 + \beta_{12} X_{1i}X_{2i} + \beta_3 X_{3i} + \beta_{33} X_{3i}^2 + \beta_{13} X_{1i}X_{3i} + \beta_{23} X_{2i}X_{3i} + \epsilon_i. \]

Es importante señalar que estos modelos normalmente se ajustan no sobre las variables explicativas originales sino sobre las variables explicativas centradas, por la multicolinealidad introducida al modelo por los valores de orden mayor a 1. Así, \(X_j = X_j^* - \bar{X}_j^*\), donde \(X_j^*\) es el vector de observaciones de la j-ésima variable explicativa original y \(\bar{X}_j^*\) es su media.

Dado que los modelos polinomiales pueden ser vistos como un caso específico del modelo de regresión lineal general, todos los resultados obtenidos anteriormente siguen siendo aplicables. Únicamente es necesario considerar, al momento de la interpretación de los coeficientes, que (en su caso) el modelo fue ajustado usando variables centradas.

Para resolver el problema de multicolinealidad introducido al usar modelos polinomiales se ha propuesto el uso de polinomios ortogonales.

INTRODUCCIÓN A MODELOS LINEALES GENERALIZADOS

Lecturas sugeridas
  • Kutner et al. (2004), cap. 14.14.

  • McCullagh and Nelder (1989), cap. 1.


Material adicional

 

 

 

Los modelos lineales generalizados (GLM, por sus siglas en inglés) buscan, como su nombre lo indica, generalizar las ideas expuestas en las secciones anteriores (regresión lineal simple y regresión lineal múltiple) para hacerlos aplicables en situaciones en los que los modelos anteriores (dados sus supuestos) no serían aplicables propiamente.

Ejemplos de datos que típicamente no se ajustan bien al modelo lineal que hemos estudiado hasta ahora son: conteos, proporciones (probabilidades), datos que se sabe siguen algún patrón de variabilidad, datos relativos a sobrevivencia, etc.

Para plantear un GLM comenzaremos, igual que en las secciones anteriores, por los supuestos de los modelos.

  • Observaciones independientes (o, como mínimo, no correlacionadas). Nota, entonces, que seguimos intentando modelar datos de corte transversal.

  • Una única fuente de error aleatorio.

  • La relación entre la media y la varianza del error aleatorio es conocida.

  • Las variables explicativas siguen (de alguna manera) combinándose linealmente.

  • El criterio de bondad de ajuste (la restricción a optimizar) será el criterio de máxima verosimilitud.

Uno de los principales precursores / desarrolladores de la teoría que sustenta a los MLG fue R.A. Fisher. Algunos otros son: Bliss (modelo probit, 1935), Dyke y Patterson (modelo logit, 1952), Nelder (modelos polinomiales inversos, 1966), Aitkin y Clayton (modelos de supervivencia, 1980)

El término “Módelos Lineales Generalizados” fue acuñado en 1972 por Nelder y Wedderburn.

PLANTEAMIENTO DEL GLM

Un GLM tiene tres partes o componentes:

  • El aleatorio: asume que las observaciones de la variable respuesta son observaciones independientes obtenidas de una distribución perteneciente a la familia exponencial (condicional en los valores de las variables explicativas).

  • El sistemático: \(\eta = X\beta\), especifica al vector predictor lineal y se encuentra determinada por el vector (desconocido) de parámetros \(\beta\) y la matriz de observaciones de las variables explicativas, \(X\).

  • La liga: una función monótona y diferenciable, \(g(\cdot)\), que determina la manera en la que se relacionan los componentes aleatorios y sistemático (coloquialmente, diríamos que es la función que transforma la relación lineal descrita por el componente sistemático en una relación no lineal, es la función que convierte a la recta en una curva).

Ejemplos :

  • El modelo de regresión lineal clásico:
    • Aleatorio: \(Y \sim N(\mu,\sigma^2)\).
    • Liga: \(g(\mu) = \mu = X\beta\) (identidad).
  • Modelo exponencial:
    • Aleatorio: \(Y \sim Exp(\lambda)\).
    • Liga: \(g(\mu) = -\mu^{-1} = X\beta\) (inversa negativa).
  • Modelo de regresión logística (para variables Bernoulli):
    • Aleatorio: \(Y \sim Bernoulli(p)\).
    • Liga: \(g(\mu) = \ln\left(\frac{\mu}{1 - \mu}\right) = X\beta\) (logit).

 

 

 

LA FAMILIA EXPONENCIAL

En su versión más simple, la familia exponencial de distribuciones sigue la forma:

\[ f_{Y}(y|\theta, \phi) = e^{\frac{y\theta - b(\theta)}{a(\phi)} + c(y,\phi)} \]

o bien,

\[ f_{Y}(y|\theta) = a(y) b(\theta) e^{d(\theta) \cdot c(y)} \]

A \(\theta\) se le conoce como el parámetro canónico, mientras que \(\phi\) es un parámetro de escala.

Ejemplo
Para la distribución normal con dos parámetros desconocidos \(\mu\) y \(\sigma^2\) si seguimos la expresión de la familia exponencial de arriba, tenemos que:
  • \(a(y) = \frac{1}{\sqrt{2\pi}}\);
  • \(b(\mu, \sigma^2) = \frac{1}{\sigma}e^{-\frac{\mu^2}{2\sigma^2}}\);
  • \(c(y) = (y, y^2)'\);
  • \(d(\mu, \sigma^2) = \left(\frac{\mu}{\sigma^2}, -\frac{1}{2\sigma^2}\right)\).

por lo que:

\[ \begin{aligned} f_Y(y | \mu, \sigma^2) &= \frac{1}{\sqrt{2\pi}} \frac{1}{\sigma}e^{-\frac{\mu^2}{2\sigma^2}} e^{\left(\frac{\mu}{\sigma^2}, -\frac{1}{2\sigma^2}\right) \cdot (y, y^2)'}\\ &= \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{\mu^2}{2\sigma^2}} e^{\left(\frac{\mu y}{\sigma^2} -\frac{y^2}{2\sigma^2}\right)}\\ &= \frac{1}{\sigma\sqrt{2\pi}} e^{\left(\frac{\mu y}{\sigma^2} -\frac{y^2}{2\sigma^2}-\frac{\mu^2}{2\sigma^2}\right)}\\ &= \frac{1}{\sigma\sqrt{2\pi}} e^{-\left(\frac{-2\mu y + y^2 + \mu^2}{2\sigma^2}\right)}\\ &= \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{(y-\mu)^2}{2\sigma^2}}. \end{aligned} \]


Otras distribuciones en la familia exponencial: Bernoulli, binomial, Poisson, exponencial, Pareto, Weibull, \(\chi^2\), …

LA FUNCIÓN LIGA

Se conoce como función liga a la función que conecta o enlaza a la función que corresponde al predictor lineal, \(\eta = X\beta\), con \(E[Y] = \mu\).

Ejemplo
En el modelo de regresión lineal, entonces, el componente aleatorio está descrito por la función de distribución normal. La función liga es la función identidad:

\[ \eta = X\beta = \mu. \]


Otras funciones liga relevantes son:

  • Logarítmica: \(\eta = \ln \mu\)
  • Logit: \(\eta = \ln \frac{\mu}{1 - \mu}\)
  • Inversa negativa: \(\eta = -\mu^{-1}\)

La elección de la combinación entre la distribución de la familia exponencial a emplear y la liga a emplear depende, desde luego, de nuestros datos y nuestros objetivos de modelado. Sin embargo, existen casos ya muy estudiados por los que, probablemente, queramos empezar nuestro análisis.

Para algunas combinaciones de distribución y liga resulta que, si \(g(\mu)\) es la función liga, entonces \(eta = g(\mu) = \theta\). En este caso, a \(g\) se le conoce como la liga canónica.

Ejemplo
La liga canónica para el modelo con componente aleatorio binomial (\(N\) conocido) es la liga logit:

\[ \begin{aligned} \eta = X\beta &= \ln \frac{p}{1-p}\\ p(\eta) &= \frac{e^{\eta}}{1+e^{\eta}}\\ &= p\\ \end{aligned} \]

Observa, entonces, que en el caso de la distribución binomial, para la cual \(E[Y] = Np\), la liga identidad, \(\eta = X\beta = p\) no sería una buena elección ya que, si bien cumple con el propósito de que \(g^{-1}(\eta) = p\), \(X\beta\) no necesariamente es un valor acotado entre 0 y 1.


El uso de ligas canónicas tiene como clara ventaja que simplifica el tratamiento del modelo de regresión y de que, por otra parte, cuando se usan ligas canónicas la estadística \(X'Y\) es suficiente. Sin embargo, obviamente, el uso de determinadas ligas (como las canónicas) con determinadas distribuciones impone restricciones a nuestro modelo, restricciones que no necesariamente son respaldadas por los datos.

ESTIMACIÓN

Como ya se mencionó, para la estimación de los parámetros de un GLM se usa como técnica general el método de máxima verosimilitud. De esta manera, el procedimiento a seguir consiste en determinar la función de verosimilitud asociada al componente aleatorio seleccionado, sustituir el parámetro \(\theta\) por el valor correspondiente derivado de la liga seleccionada, y maximizar para los valores de \(\beta_j\).

Un problema que se va a presentar con frecuencia es que no siempre es posible encontrar una solución cerrada (analítica) a este problema de estimación por lo que será necesario recurrir a soluciones numéricas (comúnmente iterativas) como el método de Newton-Raphson o el método de Fisher.

Ejemplo
Considera un componente aleatorio que sigue una distribución Binomial y una función liga de la forma \(\eta = X \beta = \log \left(\frac{p}{1-p}\right)\). Entonces, en primer lugar, notemos que:

\[ p(\eta) = \frac{e^\eta}{1+e^{\eta}}. \]

La función verosimilitud en este caso corresponde con:

\[ L(p|\underline{Y}_n) = \prod\limits_{i = 1}^n {m_i \choose y_i} {p_i}^{y_i}(1-p_i)^{m_i-y_i} \]

por lo que la log-verosimilitud toma la forma

\[ \begin{aligned} l(p|\underline{Y}_n) &= \sum\limits_{i = 1}^n \left[\log{m_i \choose y_i} + {y_i}\log{p_i} + ({m_i-y_i})\log (1-p_i)\right]\\ &= \sum\limits_{i = 1}^n \left\{\log{m_i \choose y_i} + {y_i}[\log{p_i} - \log (1-p_i)] + {m_i}\log (1-p_i)\right\}. \end{aligned} \]

Ahora, podemos sustituir \(\eta_i\):

\[ \begin{aligned} l(p|\underline{Y}_n) &= \sum\limits_{i = 1}^n \left\{\log{m_i \choose y_i} + {y_i}[\log{p_i} - \log (1-p_i)] + {m_i}\log (1-p_i)\right\}\\ &= \sum\limits_{i = 1}^n \left\{\log{m_i \choose y_i} + {y_i}\left[\log{\frac{e^\eta_i}{1+e^{\eta_i}}} - \log \left(1-\frac{e^\eta_i}{1+e^{\eta_i}}\right)\right] + {m_i}\log \left(1-\frac{e^\eta_i}{1+e^{\eta_i}}\right)\right\}\\ &= \sum\limits_{i = 1}^n \left\{\log{m_i \choose y_i} + {y_i}\left[\log{\frac{e^\eta_i}{1+e^{\eta_i}}} - \log \left(\frac{1}{1+e^{\eta_i}}\right)\right] + {m_i}\log \left(\frac{1}{1+e^{\eta_i}}\right)\right\}\\ &= \sum\limits_{i = 1}^n \left\{\log{m_i \choose y_i} + {y_i}\eta_i - {m_i} \log \left(1+e^{\eta_i}\right)\right\}\\ \end{aligned} \]

por lo que ahora necesitaríamos igual a cero y resolver la ecuación. Sin embargo, esta ecuación no tiene una solución en forma cerrada.


Recuerda que una propiedad de los EMV es que su distribución es asintóticamente normal. Por lo tanto, dependiendo de la familia distribucional escogida para modelar nuestros datos la prueba de significancia puede corresponder a una prueba normal o a una prueba \(t\) dependiendo de si es necesario estimar o no el parámetro de dispersión.

Para ver el contexto en el que usaríamos este tipo de modelos y la manera en la que estimaríamos los coeficientes de la regresión veamos el siguiente ejemplo.

Ejemplo
Supongamos que se desea construir un modelo para la relación que existe entre el ancho y el peso (variables explicativas) de una población de cangrejos y su sexo (variable respuesta: macho = 1; hembra = 0). Se cuenta con los datos siguientes:
crabs <- read.csv("http://www.cknudson.com/data/crabs.csv")

kable(crabs)
color spine width satell weight y
medium bad 28.3 8 3050 1
dark bad 22.5 0 1550 0
light good 26.0 9 2300 1
dark bad 24.8 0 2100 0
dark bad 26.0 4 2600 1
medium bad 23.8 0 2100 0
light good 26.5 0 2350 0
dark middle 24.7 0 1900 0
medium good 23.7 0 1950 0
dark bad 25.6 0 2150 0
dark bad 24.3 0 2150 0
medium bad 25.8 0 2650 0
medium bad 28.2 11 3050 1
darker middle 21.0 0 1850 0
medium good 26.0 14 2300 1
light good 27.1 8 2950 1
medium bad 25.2 1 2000 1
medium bad 29.0 1 3000 1
darker bad 24.7 0 2200 0
medium bad 27.4 5 2700 1
medium middle 23.2 4 1950 1
light middle 25.0 3 2300 1
medium good 22.5 1 1600 1
dark bad 26.7 2 2600 1
darker bad 25.8 3 2000 1
darker bad 26.2 0 1300 0
medium bad 28.7 3 3150 1
medium good 26.8 5 2700 1
darker bad 27.5 0 2600 0
medium bad 24.9 0 2100 0
light good 29.3 4 3200 1
light bad 25.8 0 2600 0
medium middle 25.7 0 2000 0
medium good 25.7 8 2000 1
medium good 26.7 5 2700 1
darker bad 23.7 0 1850 0
medium bad 26.8 0 2650 0
medium bad 27.5 6 3150 1
darker bad 23.4 0 1900 0
medium bad 27.9 6 2800 1
dark bad 27.5 3 3100 1
light good 26.1 5 2800 1
light good 27.7 6 2500 1
medium good 30.0 5 3300 1
dark good 28.5 9 3250 1
dark bad 28.9 4 2800 1
medium bad 28.2 6 2600 1
medium bad 25.0 4 2100 1
medium bad 28.5 3 3000 1
medium good 30.3 3 3600 1
darker bad 24.7 5 2100 1
medium bad 27.7 5 2900 1
light good 27.4 6 2700 1
medium bad 22.9 4 1600 1
medium good 25.7 5 2000 1
medium bad 28.3 15 3000 1
medium bad 27.2 3 2700 1
dark bad 26.2 3 2300 1
medium good 27.8 0 2750 0
darker bad 25.5 0 2250 0
dark bad 27.1 0 2550 0
dark bad 24.5 5 2050 1
dark good 27.0 3 2450 1
medium bad 26.0 5 2150 1
medium bad 28.0 1 2800 1
medium bad 30.0 8 3050 1
medium bad 29.0 10 3200 1
medium bad 26.2 0 2400 0
medium good 26.5 0 1300 0
medium bad 26.2 3 2400 1
dark bad 25.6 7 2800 1
dark bad 23.0 1 1650 1
dark bad 23.0 0 1800 0
medium bad 25.4 6 2250 1
dark bad 24.2 0 1900 0
medium middle 22.9 0 1600 0
dark middle 26.0 3 2200 1
medium bad 25.4 4 2250 1
dark bad 25.7 0 1200 0
medium bad 25.1 5 2100 1
dark middle 24.5 0 2250 0
darker bad 27.5 0 2900 0
dark bad 23.1 0 1650 0
dark good 25.9 4 2550 1
medium bad 25.8 0 2300 0
darker bad 27.0 3 2250 1
medium bad 28.5 0 3050 0
darker good 25.5 0 2750 0
darker bad 23.5 0 1900 0
medium middle 24.0 0 1700 0
medium good 29.7 5 3850 1
medium good 26.8 0 2550 0
darker bad 26.7 0 2450 0
medium good 28.7 0 3200 0
dark bad 23.1 0 1550 0
medium good 29.0 1 2800 1
dark bad 25.5 0 2250 0
dark bad 26.5 1 1967 1
dark bad 24.5 1 2200 1
dark bad 28.5 1 3000 1
medium bad 28.2 1 2867 1
medium bad 24.5 1 1600 1
medium bad 27.5 1 2550 1
medium middle 24.7 4 2550 1
medium good 25.2 1 2000 1
dark bad 27.3 1 2900 1
medium bad 26.3 1 2400 1
medium bad 29.0 1 3100 1
medium bad 25.3 2 1900 1
medium bad 26.5 4 2300 1
medium bad 27.8 3 3250 1
medium bad 27.0 6 2500 1
dark bad 25.7 0 2100 0
medium bad 25.0 2 2100 1
medium bad 31.9 2 3325 1
darker bad 23.7 0 1800 0
darker bad 29.3 12 3225 1
dark bad 22.0 0 1400 0
medium bad 25.0 5 2400 1
dark bad 27.0 6 2500 1
dark bad 23.8 6 1800 1
light good 30.2 2 3275 1
dark bad 26.2 0 2225 0
medium bad 24.2 2 1650 1
medium bad 27.4 3 2900 1
medium middle 25.4 0 2300 0
dark bad 28.4 3 3200 1
darker bad 22.5 4 1475 1
medium bad 26.2 2 2025 1
medium good 24.9 6 2300 1
light middle 24.5 6 1950 1
medium bad 25.1 0 1800 0
medium good 28.0 4 2900 1
darker bad 25.8 10 2250 1
medium bad 27.9 7 3050 1
medium bad 24.9 0 2200 0
medium good 28.4 5 3100 1
dark bad 27.2 5 2400 1
medium middle 25.0 6 2250 1
medium bad 27.5 6 2625 1
medium good 33.5 7 5200 1
medium bad 30.5 3 3325 1
dark bad 29.0 3 2925 1
medium good 24.3 0 2000 0
medium bad 25.8 0 2400 0
darker bad 25.0 8 2100 1
medium good 31.7 4 3725 1
medium bad 29.5 4 3025 1
dark bad 24.0 10 1900 1
medium bad 30.0 9 3000 1
medium bad 27.6 4 2850 1
medium bad 26.2 0 2300 0
medium good 23.1 0 2000 0
medium good 22.9 0 1600 0
darker bad 24.5 0 1900 0
medium bad 24.7 4 1950 1
medium bad 28.3 0 3200 0
medium bad 23.9 2 1850 1
dark bad 23.8 0 1800 0
dark middle 29.8 4 3500 1
medium bad 26.5 4 2350 1
medium bad 26.0 3 2275 1
medium bad 28.2 8 3050 1
darker bad 25.7 0 2150 0
medium bad 26.5 7 2750 1
medium bad 25.8 0 2200 0
dark bad 24.1 0 1800 0
dark bad 26.2 2 2175 1
dark bad 26.1 3 2750 1
dark bad 29.0 4 3275 1
light good 28.0 0 2625 0
darker bad 27.0 0 2625 0
medium middle 24.5 0 2000 0

Claramente, este es un conjunto de datos a los que ajustarle un modelo de regresión múltiple lineal normal no sería buena idea (¿cuál es la distribución de la variable respuesta dado un nivel de las variables explicativas?) por lo que se decide utilizar un MLG.

El modelo seleccionado en este caso es el modelo Binomial, con función liga logística:

\[ \begin{aligned} Y|X &\sim Binomial(p)\\ \mu &= p\\ \eta &= \beta_0 + \beta_1 \times width + \beta_2 \times weight\\ g(\mu) &= \ln \left( \frac{\mu}{1 - \mu} \right) \end{aligned} \]

modelo <-
  glm(
    formula = y ~ width + weight
    , data = crabs
    , family = binomial(link = 'logit')
    )

summary(object = modelo)
## 
## Call:
## glm(formula = y ~ width + weight, family = binomial(link = "logit"), 
##     data = crabs)
## 
## Coefficients:
##               Estimate Std. Error z value Pr(>|z|)   
## (Intercept) -9.3547261  3.5280465  -2.652  0.00801 **
## width        0.3067892  0.1819473   1.686  0.09177 . 
## weight       0.0008338  0.0006716   1.241  0.21445   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 225.76  on 172  degrees of freedom
## Residual deviance: 192.89  on 170  degrees of freedom
## AIC: 198.89
## 
## Number of Fisher Scoring iterations: 4

CRITERIO DE BONDAD DE AJUSTE: DEVIANZA

Necesitamos ahora establecer un criterio mediante el cual evaluaremos qué tan bien se ajusta nuestro modelo a los datos. Para ello, utilizaremos como referencia dos casos extremos. Primero, consideremos el modelo que tiene únicamente un parámetro (e.g., \(\beta_0\)). Este primero modelo explica toda la variabilidad en la variable respuesta mediante el componente aleatorio del modelo. Llamaremos a este modelo el modelo nulo.

En el otro extremo tenemos a un modelo que tiene tantos parámetros como observaciones. Este modelo, el modelo saturado, explica toda la variabilidad en la variable respuesta exclusivamente mediante el componente sistemático del modelo.

Ninguno de estos modelos es generalmente considerado bueno en la práctica, pero nos brindan una referencia de, digamos, el mejor y el peor ajuste posibles.

La manera en la que compararemos a los modelos será mediante el logaritmo del cociente de verosimilitudes, también conocido como la devianza del modelo:

\[ \begin{aligned} D &= -2[\mathcal{l}(\hat\beta) - \mathcal{l}_s]\phi\\ &= -\frac{2\phi}{a(\phi)} \sum\limits_{i=1}^n [y_i \hat\theta_i - b(\hat\theta_i) - y_ig(y_i) + b(g(y_i))] \\ &= -\frac{2\phi}{a(\phi)} \sum\limits_{i=1}^n [y_i (\hat\theta_i - g(y_i)) - (b(\hat\theta_i) - b(g(y_i)))] \end{aligned} \]

donde:

  • \(g\) es la liga canónica, que transforma a \(E(Y) = \mu\) en \(\theta\);

  • \(\mathcal{l}(\hat\beta)\) es la verosimilitud del modelo ajustado;

  • \(\mathcal{l}_s\) es la verosimilitud del modelo saturado;

  • \(\phi\) es un parámetro de escala.

Observemos que \(\mathcal{l}_s\) se obtiene de sustituir directamente \(\mu_i\) por \(Y_i\) en la verosimilitud. También observemos que \(D\) es siempre mayor o igual a cero, ya que el modelo saturado siempre será más verosímil (dada una determinada muestra) ya que representa a la muestra en sí. La devianza será cero, por lo tanto, únicamente si el modelo ajusta perfectamente a los datos.

Ejemplo
Consideremos el modelo con componente aleatorio normal y función liga la identidad (en otras palabras, el modelo de regresión lineal ordinario). Entonces

\[ \mathcal{l}(\mu, \sigma^2|\underline{Y}_n) = -\frac{n}{2}\ln{(2\pi)} - \frac{n}{2}\ln{\sigma^2} - \frac{1}{2\sigma^2}\sum\limits_{i=1}^n{-(y_i - \mu_i)^2} \]

entonces

\[ \mathcal{l}(\hat\mu, \sigma^2|\underline{Y}_n) = -\frac{n}{2}\ln{(2\pi)} - \frac{n}{2}\ln{\sigma^2} - \frac{1}{2\sigma^2}\sum\limits_{i=1}^n{(y_i - \hat\mu_i)^2} \]

donde \(\hat\mu = \hat\eta\). Y

\[ \mathcal{l}(\underline{Y}_n, \sigma^2|\underline{Y}_n) = -\frac{n}{2}\ln{(2\pi)} - \frac{n}{2}\ln{\sigma^2} \]

por lo que, como \(\phi = \sigma^2\)

\[ D = -2[\mathcal{l}(\hat\beta) - \mathcal{l}_s]\phi = \sum\limits_{i=1}^n{(y_i - \hat\eta_i)^2} \]

¿A qué te recuerda esta expresión?


Ejemplo
Volvamos al ejemplo de la regresión Bernoulli de los cangrejos:
crabs <- read.csv("http://www.cknudson.com/data/crabs.csv")

modelo <-
  glm(
    formula = y ~ width + weight + color + spine
    , data = crabs
    , family = binomial(link = 'logit')
    )

summary(object = modelo)
## 
## Call:
## glm(formula = y ~ width + weight + color + spine, family = binomial(link = "logit"), 
##     data = crabs)
## 
## Coefficients:
##               Estimate Std. Error z value Pr(>|z|)  
## (Intercept) -8.1535908  3.8051860  -2.143   0.0321 *
## width        0.2631279  0.1952986   1.347   0.1779  
## weight       0.0008258  0.0007038   1.173   0.2407  
## colordarker -1.1198016  0.5932901  -1.887   0.0591 .
## colorlight   0.4888642  0.8531183   0.573   0.5666  
## colormedium  0.3859619  0.4321216   0.893   0.3718  
## spinegood   -0.4002868  0.5027043  -0.796   0.4259  
## spinemiddle -0.4962677  0.6291609  -0.789   0.4302  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 225.76  on 172  degrees of freedom
## Residual deviance: 185.20  on 165  degrees of freedom
## AIC: 201.2
## 
## Number of Fisher Scoring iterations: 4

Ya sabemos entonces, cuál es la devianza de nuestro modelo ajustado, ¿cómo la interpretamos / comparamos? Decíamos que tenemos dos valores de referencia: la verosimilitud del modelo saturado y la verosimilitud del modelo nulo. Tenemos entonces como punto de comparación la devianza del modelo nulo. Por lo que podemos juzgar qué tanto logra nuestro modelo reducir la devianza en comparación con el modelo nulo.

Para hacer más intuitiva esta comparación, recordemos que el modelo nulo es aquél en el que \(\hat\eta = \hat{\beta}_0\) por lo que \(D_0 = SST\), por lo que podemos definir

\[ R^2 = \frac{D_0 - D}{D_0} = 1 - \frac{SSE}{SST} \]

Ejemplo
En el ejemplo de los cangrejos, entonces, la \(R^2 = 1 - 192.89/225.76 = 14.56\%\).

Observa, sin embargo, que no podemos interpretar igual la \(R^2\) que en el caso específico del modelo lineal ordinario. En términos generales, ahora significará qué tan cerca se encuentra nuestro modelo del ajuste perfecto (en nuestro ejemplo, no muy cerca). Tampoco podemos asociar la \(R^2\), en términos generales, al coeficiente de correlación entre las variables explicativas y la variable respuesta.

RESIDUALES

Del ejemplo anterior, veamos gráficamente a los residuales:

ggplot(data = data.frame(Residuales = modelo$residuals)) +
  aes(x = Residuales) +
  geom_density() +
  theme_classic()

Podemos intuir que la “forma” de los residuales en los GLM depende del modelo que se haya utilizado. Por ello, se han desarrollado alternativas a la definición estándar de los residuales que permitan dar un tratamiento “general” a los residuales independientemente del modelo utilizado.

Residuales de Pearson
Se obtienen mediante \(\epsilon_p = \frac{Y - \mu}{\sqrt{V(\mu)}}\).
Residuales de Anscombe
\(\epsilon_A = \frac{A(Y) - A(\mu)}{\sqrt{Var(A(Y))}}\) donde

\[ \begin{aligned} A(\cdot) &= \int \frac{d\mu}{V^{\frac{1}{3}}(\mu)}\\ Var(A(Y)) &\approx A'(\mu)\sqrt{V(\mu)} \end{aligned} \]

Residuales de devianza
Si consideramos la devianza \(D\) y pensamos que cada observación contribuye con \(d_i\) a la devianza, entonces \(\sum d_i = D\). Definimos entonces a los residuos como

\[ r_{iD} = signo(y_i - \mu_i) \sqrt{d_i}. \]

Podemos fácilmente ver que \(\sum r_{iD}^2 = D\).

Ejemplo (cont.)
Observemos primero que el summary del modelo no arroja información sobre los residuales, como en el caso de la función lm. Sin embargo, podemos “forzar” a la función para que los arroje:
print(summary(modelo), show.residuals = TRUE)
## 
## Call:
## glm(formula = y ~ width + weight + color + spine, family = binomial(link = "logit"), 
##     data = crabs)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -2.1977  -0.9424   0.4849   0.8491   2.1198  
## 
## Coefficients:
##               Estimate Std. Error z value Pr(>|z|)  
## (Intercept) -8.1535908  3.8051860  -2.143   0.0321 *
## width        0.2631279  0.1952986   1.347   0.1779  
## weight       0.0008258  0.0007038   1.173   0.2407  
## colordarker -1.1198016  0.5932901  -1.887   0.0591 .
## colorlight   0.4888642  0.8531183   0.573   0.5666  
## colormedium  0.3859619  0.4321216   0.893   0.3718  
## spinegood   -0.4002868  0.5027043  -0.796   0.4259  
## spinemiddle -0.4962677  0.6291609  -0.789   0.4302  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 225.76  on 172  degrees of freedom
## Residual deviance: 185.20  on 165  degrees of freedom
## AIC: 201.2
## 
## Number of Fisher Scoring iterations: 4

La opción por default en R son los residuales de devianza. Sin embargo, podemos obtener los otros tipos de residuales mediante la función residuals.glm:

residuales <- 
  data.frame(
    Working = residuals.glm(modelo, 'working')
    , Pearson = residuals.glm(modelo, 'pearson')
    , Devianza = residuals.glm(modelo, 'deviance')
    )

ggplot(data = residuales) + 
  aes(x = Working) + 
  geom_density() +
  theme_classic()

ggplot(data = residuales) + 
  aes(sample = Working) + 
  geom_qq() +
  geom_qq_line() +
  theme_classic()

ggplot(data = residuales) + 
  aes(x = Pearson) + 
  geom_density() +
  theme_classic()

ggplot(data = residuales) + 
  aes(sample = Pearson) + 
  geom_qq() +
  geom_qq_line() +
  theme_classic()

ggplot(data = residuales) + 
  aes(x = Devianza) + 
  geom_density() +
  theme_classic()

ggplot(data = residuales) + 
  aes(sample = Devianza) + 
  geom_qq() +
  geom_qq_line() +
  theme_classic()

La función no nos permite calcular valores para los residuales de Anscombe, sin embargo, es posible demostrar que los residuales de Anscombe son, por lo general, numéricamente muy similares a los residuales de devianza.


REGRESIÓN POISSON

Lecturas sugeridas
  • McCullagh and Nelder (1989), cap. 6.

Consideremos el caso ahora en el que la variable respuesta toma valores en los enteros positivos. Típicamente, esta situación se presentará cuando la variable respuesta representa conteos.

En casos como este, una de las distribuciones (componente aleatorio) que se considera de manera natural es la distribución Poisson:

\[ Y \sim Poisson(\lambda). \]

En este caso, la liga canónica es la liga logarítmica:

\[ \begin{aligned} \eta = X\beta = \log \mu\\ \mu = e^{X\beta}. \end{aligned} \]

La expresión de la devianza para este modelo será \(D = 2 \sum \{y_i \log (y_i/\hat\mu_i)\}\) (siempre que el modelo incluya el término constante).

Una de las desventajas de usar un modelo Poisson es que, si recordamos las propiedades de la distribución \(Var[Y] = \lambda\). Esto, desde luego, forma parte de los elementos a verificar durante el diagnóstico de la regresión. Cuando la varianza de la variable respuesta es menor a la media, se dice que el modelo presenta sub-dispersión; si es mayor, sobre-dispersión. La sub-dispersión puede representar un problema en el proceso de estimación mientras que la sobre-dispersión puede ser un síntoma de que:

  • El modelo no debería ser un modelo Poisson.

  • Hay conglomerados de datos.

  • Hay sobre-ajuste del modelo (demasiadas variables).

  • Demasiados ceros (ver comentario más abajo).

  • Observaciones correspondientes a mediciones no comparables (p.e., distintos momentos en el tiempo).

Para diagnosticar sobre-dispersión, aunque hay pruebas más formales, una manera simple de diagnosticarla es mediante el cociente \(\frac{\sum r_P^2}{gl_r}\). El criterio del diagnóstico es que si el cociente es mayor a 1, esto se considera como evidencia de la presencia de sobre, dispersión.

Finalmente, es importante mencionar que un problema también bastante común en el uso de la regresión Poisson es que con frecuencia se desea ajustar un modelo Poisson a datos que presentan el valor 0 con mucha mayor frecuencia de lo que sería esperado para la distribución. La solución puede encontrarse en lo que se conoce como modelos “zero-inflated”.

Ejemplo
Dentro de los datos de cangrejos, podemos observar que tenemos la variable relativa al número de “satélites” asociados a cada hembra. Podemos entonces intentar ajustar un modelo Poisson que nos permita ahora pronosticar no si la hembra es atractiva o no, sino el número de satélites que atrae.

Veamos, primero, qué pasaría si intentáramos ajustar un modelo ordinario:

modelo <- lm(formula = satell ~ width + weight + color + spine, data = crabs)

summary(modelo)
## 
## Call:
## lm(formula = satell ~ width + weight + color + spine, data = crabs)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.5531 -2.1035 -0.6611  1.4527 11.1435 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)  
## (Intercept) -2.3485475  4.5765798  -0.513   0.6085  
## width        0.0230501  0.2392077   0.096   0.9234  
## weight       0.0017544  0.0008579   2.045   0.0424 *
## colordarker  0.0239640  0.7769906   0.031   0.9754  
## colorlight   1.3325025  1.0673232   1.248   0.2136  
## colormedium  0.6354110  0.5607749   1.133   0.2588  
## spinegood   -0.0646673  0.6250446  -0.103   0.9177  
## spinemiddle -0.5172792  0.8531357  -0.606   0.5451  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.962 on 165 degrees of freedom
## Multiple R-squared:  0.1511, Adjusted R-squared:  0.1151 
## F-statistic: 4.195 on 7 and 165 DF,  p-value: 0.000279

Ahora, el modelo Poisson con liga logarítmica:

modelo <- glm(formula = satell ~ width + weight + color + spine, data = crabs, family = poisson(link = 'log'))

print(summary(modelo), show.residuals = TRUE)
## 
## Call:
## glm(formula = satell ~ width + weight + color + spine, family = poisson(link = "log"), 
##     data = crabs)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -3.0290  -1.8630  -0.5988   0.9331   4.9446  
## 
## Coefficients:
##               Estimate Std. Error z value Pr(>|z|)   
## (Intercept) -0.7882228  0.9449844  -0.834  0.40422   
## width        0.0167487  0.0489197   0.342  0.73207   
## weight       0.0004965  0.0001663   2.986  0.00283 **
## colordarker -0.0171550  0.1809371  -0.095  0.92446   
## colorlight   0.5137051  0.1953624   2.629  0.00855 **
## colormedium  0.2488539  0.1195558   2.081  0.03739 * 
## spinegood   -0.0872826  0.1199287  -0.728  0.46674   
## spinemiddle -0.2376544  0.1980176  -1.200  0.23007   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for poisson family taken to be 1)
## 
##     Null deviance: 632.79  on 172  degrees of freedom
## Residual deviance: 549.59  on 165  degrees of freedom
## AIC: 920.88
## 
## Number of Fisher Scoring iterations: 6

La \(R^2\):

1 - modelo$deviance/modelo$null.deviance
## [1] 0.1314905

Evaluamos la sobre-dispersión:

residuales.pearson <- residuals.glm(modelo, type = 'pearson')

sum(residuales.pearson^2) / modelo$df.residual
## [1] 3.235251

Por lo tanto, parece haber evidencia de sobre-dispersión.

Veamos la gráfica de los residuales contra la normal:

ggplot(data = data.frame(Residuales = residuales.pearson)) +
  aes(sample = Residuales) +
  geom_qq() +
  geom_qq_line() +
  theme_classic()

Notemos lo siguiente:

ggplot(data = crabs) +
  aes(x = satell, y = after_stat(..count..)/sum(after_stat(..count..))) +
  geom_bar() +
  theme_classic() +
  labs(y = 'frecuencia')

¿Cómo se ve una Poisson con \(\lambda = 2.9190751\)?

datos.poisson <- data.frame(sim = rpois(n = 1000, lambda = mean(crabs$satell)))

ggplot(data = datos.poisson) +
  aes(x = sim, y = after_stat(..count..)/sum(after_stat(..count..))) +
  geom_bar() +
  theme_classic() +
  labs(y = 'frecuencia')

Pareciéramos estar ante un caso de una Poisson inflada en ceros o bien ante una binomial negativa, ambas también distribuciones de la familia exponencial.


ALGUNOS EJEMPLOS POPULARES DE GLM

Normal
A estas alturas …
  • Componente aleatorio: \(N(\mu, \sigma^2)\)

  • \(\mu = \mu\)

  • Rango de la variable respuesta: \((-\infty,\infty)\)

  • Parámetro de dispersión: \(\sigma^2\) (constante, desconocida)

  • Parámetro canónico: \(\mu(\theta) = \theta\)

  • Liga canónica: \(\eta = \mu\) (identidad)

  • \(V(\mu) = 1\)

  • Ejemplos: ¿necesarios?


Binomial
Típicamente se plantea para las proporciones binomiales, esto es, \(Y = X/n\)
  • Componente aleatorio: \(Bin(n, p)\)

  • Rango de la variable respuesta: \((0,1)\) (¿discreta?)

  • \(\mu = p\)

  • Parámetro de dispersión: \(1\)

  • Parámetro canónico: \(\mu(\theta) = \frac{e^{\theta}}{1+e^{\theta}}\)

  • Liga canónica: \(\eta = \ln \frac{\mu}{1-\mu}\) (logística, logit)

  • \(V(\mu) = \frac{\mu(1-\mu)}{n}\)

  • Ejemplos: Zulfa, Walker, and Yore (2024)


Poisson
  • Componente aleatorio: \(Poisson(\lambda)\)

  • Rango de la variable respuesta: \((0,m)\) (discreta)

  • \(\mu = \lambda\)

  • Parámetro de dispersión: \(1\)

  • Parámetro canónico: \(\mu(\theta) = \e^{\theta}\)

  • Liga canónica: \(\eta = \ln \mu\) (logarítmica)

  • \(V(\mu) = \mu\)

  • Ejemplos: Acheampong, Benford, and Volkan (2018), Hassan and Bibhas (n.d.)


Gamma
  • Componente aleatorio: \(Gamma(\mu,v)\) (aquí, \(v\) es un parámetro de tasa o precisión tal que \(Var(Y) = \mu^2/v\))

  • Rango de la variable respuesta: \((0,\infty)\) (continua)

  • \(\mu = \mu\)

  • Parámetro de dispersión: \(\frac{1}{v}\)

  • Parámetro canónico: \(\mu(\theta) = -\frac{1}{\theta}\)

  • Liga canónica: \(\eta = \frac{1}{\mu}\) (recíproca)

  • \(V(\mu) = \mu^2\)

  • Ejemplos: Fearing, Acimovic, and Graves (2010)


Gaussiana Inversa
Usada, por ejemplo, para modelar tiempos (continuos) de ocurrencia entre eventos (en psicología y en finanzas, por ejemplo).
  • Componente aleatorio: \(IG(\mu,\sigma^2)\)

  • Rango de la variable respuesta: \((0,\infty)\) (continua)

  • \(\mu = \mu\)

  • Parámetro de dispersión: \(\sigma^2\)

  • Parámetro canónico: \(\mu(\theta) = (-2\theta)^{-\frac{1}{2}}\)

  • Liga canónica: \(\eta = \frac{1}{\mu^2}\)

  • \(V(\mu) = \mu^3\)

  • Ejemplos: Branda (2012)


COMENTARIOS FINALES

En este curso nos enfocamos en la teoría y aplicación de una técnica de modelado estadístico: el modelo de regresión lineal.

Algunas recomendaciones finales:

  • Siempre tener en mente el objetivo de nuestro análisis, ¿es descriptivo o es inferencial?
  • Si es inferencial, ¿qué tipo de inferencia deseo realizar?¿Qué tan exacto/preciso debo ser en mis inferencias?
  • Cuidado con los supuestos: siempre revisarlos, pero sobre todo no olvidar el principal supuesto: linealidad. Todavía tener mayor cautela cuando estamos tratando de realizar inferencia fuera del rango observado para las variables explicativas.
  • ¿Qué es mejor? ¿Un modelo estadístico o un método algorítmico?
  • Establecer criterios de calidad (y establecerlos antes de ajustar el modelo).
  • Reservar datos para contraste, cuando se pueda.

Algunos temas que yo recomiendo como seguimiento (complemento) a este curso:

  • Análisis de series de tiempo
  • Regresión bayesiana
  • Regresión logística multinomial
  • Segmentación
  • Construcción de índices sintéticos (e.g., ACP)

Modelar es una manera de resolver problemas. El proceso de modelado es posible describirlo mediante siete tareas iterativas (Clements 1989):

nodos_graf <- 
  create_node_df(
    n = 7
    , type = 'empty'
    , shape = 'plaintext'
    , style = 'bold'
    , label = 
      c(
        '1. Especificar el \nproblema'
        , '2. Plantear el \nmodelo'
        , '3. Formular el \nproblema \nmatemático'
        , '4. Resolver el \nproblema \nmatemático'
        , '5. Interpretar la \nsolución'
        , '6. Contrastar con \nla realidad'
        , '7. Escribir un \nreporte'
        )
    , fixedsize = FALSE
    )
aristas_graf <- create_edge_df(from = c(1,2,3,4,5,6,6), to = c(2,3,4,5,6,1,7))
grafica <- create_graph(nodes_df = nodos_graf, edges_df = aristas_graf)
render_graph(graph = grafica)

Es importante también enfatizar algo que hemos mencionado repetidamente a lo largo de este curso, ahora en palabras de Clements (1989): “[…] a menudo no hay un único, mejor o más apropiado modelo para la solución a un problema sino un rango de posibles modelos, algunos de los cuales pueden resultar útiles para algunos propósitos y otros para otros propósitos”.

Recuerda: todos los modelos están equivocados, todos nacen equivocados. Pero bien construidos son útiles. Solamente que, para que sean útiles, su construcción debe atender a un objetivo claro.

En este sentido, una de las mejores cosas a las que podemos dedicar nuestro tiempo (sobre todo quienes consideren un rol de tipo “consultor”) es a estudiar diversos temas, herramientas, casos, etc. Modelar es en gran medida un arte, pero es un arte que se perfecciona, como todas, con la práctica y con el estudio. Quien cuente con una caja de herramientas más extensa obtendrá mejores resultados, pero es necesario saber utilizar las herramientas correctamente.

Model thinking

En última instancia, este curso busca darles un primer conjunto de herramientas para plantear, ajustar y diagnosticar modelos. Nuestra obligación como profesionales es hacerlo con el mayor rigor posible. Sin embargo, una habilidad que será cada vez más relevante es la de plantear las preguntas correctamente.

“So once you know what the question actually is, you’ll know what the answer means.” The Hitchhiker’s Guide to the Galaxy. Douglas Adams.

ANEXO: ANTECEDENTES DE PROBABILIDAD Y ESTADÍSTICA

PROBABILIDAD

ALGUNAS PROPIEDADES ÚTILES

  • \(Var(aX + bY) = a^2Var(X) + b^2Var(Y) + 2abCov(X,Y)\)

  • \(Cov(aX + bY, cV + dW) = acCov(X,V) + adCov(X,W) + bcCov(Y,V) + bdCov(Y,W)\).

  • Sea \(X\) un vector con \(E(X) = \underline{\theta}\) y \(Cov(X) = \Sigma\), y \(A\) una matriz simétrica. Entonces, \(E(X'AX) = tr(A\Sigma) + \underline{\theta}'A\underline{\theta}\).

Demostración
Primero veamos que:

\[ E\left[(X - \theta)'A(X - \theta)\right] = E\left[\sum\limits_i\sum\limits_j a_{ij} (X_i - \theta_i)(X_j - \theta_j)\right]\\ = \sum\limits_i\sum\limits_j E\left[a_{ij} (X_i - \theta_i)(X_j - \theta_j)\right]\\ = \sum\limits_i\sum\limits_j a_{ij} E\left[(X_i - \theta_i)(X_j - \theta_j)\right]\\ = tr(A \Sigma). \]

Entonces, ahora podemos ver que:

\[ E\left[(X - \theta)'A(X - \theta)\right] = E[X'AX - \theta'AX - X'A\theta + \theta'A\theta]\\ = E(X'AX) - \theta'AE(X) - E(X')A\theta + \theta'A\theta\\ tr(A\Sigma) + \theta'A \theta + \theta'A\theta - \theta'A\theta = E(X'AX)\\ tr(A\Sigma) + \theta'A \theta = E(X'AX)\\ \]

  • Si \(X\) es un vector aleatorio y \(A\) una matriz constante y \(Y = AX\), entonces \(Var(AX) = A Var(X) A'\).

\[ \begin{aligned} Var(Y) &= E[(Y - E(Y))(Y - E(Y))']\\ &= E[(AX - E(AX))(AX - E(AX))']\\ &= E[A(X - E(X))(X - E(X))'A']\\ &= A E[(X - E(X))(X - E(X))']A'\\ &= A Var(X) A'. \end{aligned} \]

  • \(U' A_1 U\) y \(U' A_2 U\) (\(A_1\) y \(A_2\) simétricas) son independientes si y solo si \(A_1 A_2 = 0\).

TEOREMA CENTRAL DEL LÍMITE

El enunciado del TCL de Lindeberg y Lévy es el siguiente:

Sea \(X_1, \dots, X_n\) una muestra aleatoria de tamaño \(n\) de una distribución con media \(\mu\) y varianza \(\sigma^2 \ (0 < \sigma^2 < \infty)\), entonces para cualquier valor fijo de \(x\)

\[ \lim\limits_{n \rightarrow \infty} P\left[ \frac{\bar{X} - \mu}{\frac{\sigma}{\sqrt{n}}} \right] = \Phi(x) \]

donde \(\Phi (x)\) es la función de distribución Normal estándar.

FUNCIONES DE UNA VARIABLE ALEATORIA

Sea \(X\) una v.a. con distribución de probabilidad \(F(x)\) y función de densidad (en el caso continuo) \(f(x)\). Si la v.a. \(Y\) es una función de \(X\), \(r(X)\), con función de distribución \(G(y)\), entonces:

\[ \begin{aligned} G(y) &= P[Y \leq y]\\ &= P[r(X) \leq y]\\ &= \int\limits_{x:r(x) \leq y} f(x)dx\\ \end{aligned} \]

y, por lo tanto, la función de densidad de \(Y\) será igual a:

\[ g(y) = \frac{dG(y)}{dy}. \]

De esto resulta que, si \(r\) es invertible, entonces:

\[ \begin{aligned} g(y) &= \frac{d}{dy}\int\limits_{x:r(x) \leq y} f(x)dx\\ &= f(r^{-1}(y)) \frac{d}{dy}r^{-1}(y). \end{aligned} \]

Si \(X\) es una variable aleatoria multivariada y \(Y = t(X)\) es una transformación de \(X\) tal que, a su vez, \(X = s(Y)\), entonces:

\[ g(y) = \left\{ \begin{array}{}f(s(Y))|J| & Y \in T\\0 & \text{E.O.C.}\end{array} \right. \]

Donde \(|J|\) es el determinante de la matriz jacobiana \(J\) de \(s\):

\[ J = \left[\begin{array}{} \frac{\partial s_1}{\partial y_1} & \dots & \frac{\partial s_1}{\partial y_n}\\ \vdots & \vdots & \vdots\\ \frac{\partial s_n}{\partial y_1} & \dots & \frac{\partial s_n}{\partial y_n}\\ \end{array}\right]. \]

Cuando la transformación \(T\) es una transformación lineal, entonces

\[ Y = AX\\ X = A^{-1}Y \]

Por lo que:

\[ \begin{aligned} g(y) &= f(A^{-1}Y) |J_{X}|\\ &= f(A^{-1}Y) \frac{1}{|A|}. \end{aligned} \]

FUNCIÓN DE DISTRIBUCIÓN NORMAL

La función de distribución normal tiene una gran importancia en el análisis estadístico. DeGroot (1988) señala tres principales razones para ello:

  • Si se cuenta con datos provenientes de una muestra aleatoria seleccionada de una distribución normal, se cuenta ya con métodos para obtener explícitamente la distribución de varias funciones (transformaciones) de estos datos.

  • Se ha observado en la práctica que las variables aleatorias estudiadas en diversos experimentos científicos frecuentemente tienen distribuciones aproximadamente normales.

  • El hecho de que, si se selecciona una muestra aleatoria suficientemente grande de una distribución, entonces, muchas funciones importantes de observaciones muestrales (e.g., la media muestral) tendrán distribuciones que son aproximadamente normales.

Definición
Se dice que una variable aleatoria \(X\) tiene una distribución normal con media \(\mu\) y varianza \(\sigma^2\) \((-\infty < \mu < \infty; \sigma^2 > 0)\) si \(X\) tiene una función de densidad igual a:

\[f(x|\mu,\sigma^2) = \frac{1}{\sigma\sqrt{2\pi}}e^{\left[- \frac{1}{2} \left( \frac{x-\mu}{\sigma}\right)^2 \right]}\]

PROPIEDADES

Propiedad 1
La función generadora de momentos es igual a \(\psi(t) = e^{\mu t + \frac{1}{2} \sigma^2 t^2} \text{ } \forall -\infty < t < \infty\).

\[\psi(t) = E[e^{tX}]\]

\[= \int_{-\infty}^{\infty} \frac{1}{\sigma\sqrt{2\pi}}e^{\left[- \frac{1}{2} \left( \frac{x-\mu}{\sigma}\right)^2 \right]} e^{tx} dx\]

\[= \int_{-\infty}^{\infty} \frac{1}{\sigma\sqrt{2\pi}} e^{\left[ tx - \frac{1}{2} \left( \frac{x-\mu}{\sigma}\right)^2 \right]} dx.\]

Desarrollando la parte entre corchetes:

\[tx - \frac{1}{2} \left( \frac{x-\mu}{\sigma}\right)^2 = -\frac{1}{2} \frac{2tx \sigma^2 - x^2 + 2x\mu - \mu^2}{\sigma^2}\]

\[= \frac{1}{2} \frac{x^2 - 2tx \sigma^2 - 2x\mu + \mu^2}{\sigma^2}\]

\[= \frac{1}{2} \frac{x^2 - 2x (t \sigma^2 + \mu) + \mu^2}{\sigma^2}\]

\[= \frac{1}{2} \frac{x^2 - 2x (t \sigma^2 + \mu) + (t \sigma^2 + \mu)^2 - (t \sigma^2 + \mu)^2 + \mu^2}{\sigma^2}\]

\[= \frac{1}{2} \frac{\left(x^2 - (t \sigma^2 + \mu)\right)^2 - (t \sigma^2 + \mu)^2 + \mu^2}{\sigma^2}\]

\[= \frac{1}{2} \frac{\left(x^2 - (t \sigma^2 + \mu)\right)^2 - (t^2 \sigma^4 + 2 \mu t \sigma^2 + \mu^2) + \mu^2}{\sigma^2}\]

\[= \frac{1}{2} \frac{\left(x^2 - (t \sigma^2 + \mu)\right)^2 - t^2 \sigma^4 - 2 \mu \sigma^2 t}{\sigma^2}\]

\[= \frac{1}{2} \frac{t^2 \sigma^4 + 2 \mu \sigma^2 t}{\sigma^2} - \frac{1}{2} \frac{\left(x^2 - (t \sigma^2 + \mu)\right)^2}{\sigma^2}\]

\[= \frac{1}{2} t^2 \sigma^2 + \frac{1}{2} \frac{2 \mu \sigma^2 t}{\sigma^2} - \frac{1}{2} \frac{\left(x^2 - (t \sigma^2 + \mu)\right)^2}{\sigma^2}\]

\[= \frac{1}{2} t^2 \sigma^2 + \mu t - \frac{1}{2} \frac{\left(x^2 - (t \sigma^2 + \mu)\right)^2}{\sigma^2}.\]

Sustituyendo nuevamente en la ecuación de la función generadora de momentos obtenemos entonces que:

\[\psi (t) = \int_{-\infty}^{\infty} \frac{1}{\sigma\sqrt{2\pi}} e^{\left[ \frac{1}{2} t^2 \sigma^2 + \mu t - \frac{1}{2} \frac{\left(x^2 - (t \sigma^2 + \mu)\right)^2}{\sigma^2} \right]} dx\]

\[= e^{\left( \frac{1}{2} t^2 \sigma^2 + \mu t \right)} \int_{-\infty}^{\infty} \frac{1}{\sigma\sqrt{2\pi}} e^{\left[ - \frac{1}{2} \frac{\left(x^2 - (t \sigma^2 + \mu)\right)^2}{\sigma^2} \right]} dx.\]

Si observamos la expresión en la integral podemos ver que se trata de una función de densidad de una variable aleatoria normal con media \(t \sigma^2 + \mu\) y varianza \(\sigma^2\). Por lo tanto, el valor de la integral es igual a 1. Por lo que:

\[\psi(t)= e^{\left( \frac{1}{2} \sigma^2 t^2 + \mu t \right)}.\]

Propiedad 2
Si \(X \sim N(\mu, \sigma^2)\) entonces para \(Y = a + bX\), \(Y \sim N(a + b\mu, b^2\sigma^2)\)
Propiedad 3
Si \(X_1, \dots, X_n\) son vv. aa. independientes y \(X_i \sim N(\mu_i, \sigma_i^2)\) entonces para \(Y = \sum\limits_{i=1}^n X_i\), \(Y \sim N(\sum\limits_{i=1}^n \mu_i, \sum\limits_{i=1}^n \sigma_i^2)\)
Propiedad 4 (Distribución de la suma del cuadrado de \(n\) vv. aa. normales)
Si \(X_1, X_2, \dots, X_n\) son \(n\) vv.aa. independientes normales estándar, entonces la suma de los cuadrados de estas variables tiene una distribución \(\chi^2\) con \(n\) grados de libertad.
Propiedad 5
Sean \(U_i, i = 1, \dots, n\) vv. aa. ii. \(N(\theta_i, \sigma^2)\) y \(A\) una matriz simétrica. Entonces, \(\frac{U'AU}{\sigma^2} \sim \chi_{df, \lambda}^2\), con \(df = tr(A)\) y \(\lambda = \frac{\theta'A \theta}{\sigma^2}\) si y solo si A es idempotente.
Propiedad 5’
Si \(Z_i \sim N(\theta_i,1)\), entonces \(\sum\limits_{i=1}^n Z_i^2 \sim \chi_{df,\lambda}^2\) con \(df = n\) y \(\lambda = \sum\limits_{i=1}^n \theta_i^2\).

Propiedad 6
Si \(Y\) es un vector de vv. aa. normales independientes \(N(\mu_i, \sigma^2)\) y \(Z = QY\), donde \(Q\) es una matriz ortogonal, es una transformación ortogonal de \(Y\), entonces \(Z\) es un vector de vv. aa. normales independientes.
Demostración
\(Y\) es un vector de vv. aa. normales independientes por lo que su función de densidad puede ser expresada como una multiplicación de funciones de densidad normales:

\[ \begin{aligned} f(Y) &= \prod\limits_{i = 1}^n f(y_i)\\ &= \prod\limits_{i = 1}^n \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(y_i - \mu_i)^2}{2\sigma^2}}\\ &= \left(\frac{1}{\sqrt{2\pi}\sigma}\right)^n \prod\limits_{i = 1}^n e^{-\frac{(y_i - \mu_i)^2}{2\sigma^2}}\\ &= \left(\frac{1}{\sqrt{2\pi}\sigma}\right)^n e^{-\sum\limits_{i = 1}^n \frac{(y_i - \mu_i)^2}{2\sigma^2}}\\ &= \left(\frac{1}{\sqrt{2\pi}\sigma}\right)^n e^{-\frac{1}{2\sigma^2}\sum\limits_{i = 1}^n (y_i - \mu_i)^2}\\ &= \left(\frac{1}{\sqrt{2\pi}\sigma}\right)^n e^{-\frac{1}{2\sigma^2}\sum\limits_{i = 1}^n (Y - \underline{\mu})'(Y - \underline{\mu})}. \end{aligned} \]

Ahora, sabemos que \(Z = QY\) y que \(Q\) es una matriz ortogonal, por lo tanto

\[ f_{Z}(z) = f_Y(Q^{-1}z)|J_Y| \]

pero \(|J_Y| = |Q^{-1}| = |Q| = 1\), entonces:

\[ \begin{aligned} f_{Z}(z) &= \left(\frac{1}{\sqrt{2\pi}\sigma}\right)^n e^{-\frac{1}{2\sigma^2}\sum\limits_{i = 1}^n (Q^{-1}Z - \underline{\mu})'(Q^{-1}Z - \underline{\mu})}. \end{aligned} \]

Sin embargo,

\[ \begin{aligned} (Q^{-1} Z - \mu)' (Q^{-1}Z - \mu) &= Z' {Q^{-1}}' Q^{-1} Z - \mu'Q^{-1}Z - Z' {Q^{-1}}' \mu + \mu' \mu\\ &= Z'Z - {\mu}'Q^{-1}Z - Z'{Q^{-1}}'{\mu} + {\mu}'{\mu}\\ &= Z'Z - {\mu}'Q'Z - Z'Q{\mu} + {\mu}'Q'Q{\mu}\\ &= (Z - {\mu})'(Z - {\mu}). \end{aligned} \]

Entonces

\[ \begin{aligned} f_{Z}(z) &= \left(\frac{1}{\sqrt{2\pi}\sigma}\right)^n e^{-\frac{1}{2\sigma^2}\sum\limits_{i = 1}^n (Z - Q\underline{\mu})'(Z - Q\underline{\mu})}. \end{aligned} \]

lo cual corresponde con la función de densidad de un vector de vv.aa. normales independientes con vector de medias igual a \(Q\underline{\mu}\) y varianza \(\sigma^2\).


DISTRIBUCIÓN t

Sean \(Y\) y \(Z\) dos vv.aa. independientes tales que \(Y \sim N(0,1)\) y \(Z \sim \chi_n^2\). Entonces, la v.a.

\[ X = \frac{Y}{\sqrt{\frac{Z}{n}}} \]

sigue una distribución \(t_{n}\) (\(t\) con \(n\) grados de libertad) y su función de densidad puede ser expresada como:

\[ f(x) = \frac{\Gamma(\frac{n+1}{2})}{\sqrt{n\pi}\Gamma(\frac{n}{2})}\left(1+\frac{x^2}{n}\right)^{-\frac{n+1}{2}} \]

donde la función

\[ \Gamma(n) = \int\limits_{0}^\infty x^{n-1}e^{-x}dx = (n-1)\Gamma(n-1) \]

y, si \(n\) es entero, entonces

\[ \Gamma(n) = (n-1)!. \]

DISTRIBUCIÓN F

Sean dos vv. aa. ii. Y y Z tales que \(Y \sim \chi_{m}^2\) y \(Z \sim \chi_{n}^2\), donde \(m\) y \(n\) son enteros positivos. Entonces se dice que \(X = \frac{Y/m}{Z/n}\) sigue una distribución F con m y n grados de libertad (\(F_{m,n}\)) y su función de densidad es

\[ f(x) = \frac{\Gamma[\frac{1}{2}(m+n)]m^{m/2}n^{n/2}}{\Gamma(\frac{1}{2}m)\Gamma(\frac{1}{2}n)} \frac{x^{(m/2 - 1)}}{(mx+n)^{(m+n)/2}}. \]

Teorema
Si una v.a. X tiene una distribución t con n grados de libertad, entonces \(X^2\) tiene una distribución \(F_{1,n}\).

TEOREMA DE COCHRAN

Sea \(U = [U_1, \dots, U_n]'\) un vector de vv.aa. normales estándar y sean \(B^{(1)}, \dots, B^{(k)}\) k matrices simétricas. Si \(Q_i = U'B^{(i)}U\) tales que \(\sum^k_{i=1} Q_i = U'U\) entonces \(Q_i \sim \chi^2_{r_i}\) donde \(r_i = rango(B^{(i)})\).

LA FAMILIA DE DISTRIBUCIONES EXPONENCIAL

[PENDIENTE]

ESTADÍSTICA

TRANSFORMACIÓN DE BOX-COX


Lecturas sugeridas

  • Box and Cox (1964)

  • Kutner et al. (2004) cap. 3.9


El procedimiento de Box-Cox se usa para determinar la mejor transformación posible dentro de las transformaciones de la familia de transformaciones potencia:

\[ Y' = \left\{ \begin{array}{} Y^{\lambda} & \lambda \neq 0\\ \ln{Y} & \lambda = 0. \end{array} \right. \]

Nótese que el parámetro \(\lambda\) es fijo pero desconocido. Por lo tanto, en el contexto del modelo de regresión lineal simple (por ejemplo), es necesario estimarlo. Para ello, se utiliza el método de máxima verosimilitud.

En R, el paquete MASS contiene la función boxcox que realiza la estimación:

modelo <- lm(formula = sales ~ youtube, data = marketing)

boxcox.result <- MASS::boxcox(object = modelo)

lambda <- boxcox.result$x[which(boxcox.result$y == max(boxcox.result$y))]

print(lambda)
## [1] 0.5050505

ANEXO: DEFINICIONES Y PROPIEDADES ÚTILES DE ÁLGEBRA LINEAL

Lecturas recomendadas
  • Kutner et al. (2004), cap. 5

  • \((A + B)' = A' + B'.\)

  • Si \(A\) es una matriz no singular, entonces \(det(A)\) es un escalar diferente de 0.

  • Si \(A\) es una matriz no singular, entonces \(det(A) = \frac{1}{det(A^{-1})}\) es un escalar diferente de 0.

  • Si A es una matriz invertible de \(n \times n\), \((A'A)^{-1} = A^{-1}(A')^{-1}\).

  • \((A')^{-1} = (A^{-1})'\).

  • Una matriz cuadrada Q se dice que es una matriz ortogonal si \(Q'Q = QQ' = I\).

  • El rango de una matriz A es la dimensión del espacio de los renglones de A. Para determinar el rango de la matriz, por lo tanto, es necesario reducir la matriz a la forma de escalera de renglones. El rango estará dado por el número de renglones diferentes de cero.

  • La traza de una matriz \(A\) se define como la suma de los elementos en la diagonal de la matriz: \(tr(A) = \sum a_{ii}\).

    • \(tr(A +B) = tr(A) + tr(B)\).

    • \(tr(cA) = c \times tr(A)\), donde \(c\) es una constante.

    • \(tr(AB) = tr(BA) = \sum\sum a_{ij}b_{ij}\).

REFERENCIAS

Acheampong, Daniel, Tanya Benford, and Ara Volkan. 2018. “MODELLING UTILITY FINANCIAL VIABILITY USING LOGISTIC REGRESSION: EVIDENCE FROM FLORIDA.” Accounting & Taxation.
Box, G. E. P., and D. R. Cox. 1964. “An Analysis of Transformations.” Journal of the Royal Statistical Society. Series B (Methodological) 26: 211–52.
Box, G. E. P., and Paul W. Tidwell. 1962. “Transformation of the Independent Variables.” Technometrics 4 (4): 531–50. https://jstor.itam.elogim.com/stable/1266288.
Boyd, Stephen, and Lieven Vandenberghe. 2004. Convex Optimization. Cambridge University Press.
Branda, Martin. 2012. “Underwriting Risk Control in Non-Life Insurance via Generalized Linear Models and Stochastic Programming.” Proceedings of 30th International Conference Mathematical Methods in Economics.
Burns, Patrick. 2011. The r Inferno. http://www.burns-stat.com.
Clements, Dick. 1989. Mathematical Modelling: A Case Study Approach. Cambridge University Press.
Cule, Erika, Steffen Moritz, and Dan Frankowski. 2022. Ridge: Ridge Regression with Automatic Selection of the Penalty Parameter. https://CRAN.R-project.org/package=ridge.
DeGroot, Morris H. 1988. Probabilidad y Estadística. 2nd ed. Addison-Wesley Iberoamericana.
Draper, N. R., and H. Smith. 1966. Applied Regression Analysis. Jhon Wiley; Sons.
Eaton, Morris L. 2007. Multivariate Statistics: A Vector Space Approach. Vol. 53. Lecture Notes - Monograph Series. Institute of Mathematical Statistics.
Fearing, Douglas, Jason Acimovic, and Stephen Graves. 2010. “How to Catch a Tiger: Understanding Putting Performance on the PGA Tour.” MIT Sloan School Working Paper 4768-10.
Ferwerda, Joras, Mark Kattenberg, Han-Hsin Chang, Brigitte Unger, Loek Groot, and Jacob A. Bikker. 2013. “Gravity Models of Trade-Based Money Laundering.” Applied Economics 45 (22): 3170–82.
Hassan, Mehedi, and Tanmoy Bibhas. n.d. “BANGLADESHI CURRENCY NOTES (BDT) RECOGNITION USING LOGISTIC REGRESSION.”
Jolliffe, I. T. 2002. Principal Component Analysis. 2nd ed. Springer Series in Statistics. New York, U.S.A.: Springer.
Kassambara, Alboukadel. 2019. Datarium: Data Bank for Statistical Analysis and Visualization. https://CRAN.R-project.org/package=datarium.
Kutner, Michale H., Christopher J. Nachtsheim, John Neter, and William Li. 2004. Applied Linear Statistical Models. McGraw-Hill Irwin.
Leon, Steven J. 1993. Álgebra Lineal Con Aplicaciones. Primera Ed. Compañia Editorial Continental, S.A. de C.V.
McCullagh, P., and J. A. Nelder. 1989. Generalized Linear Models. Monographs on Statitics and Applied Probability 37. Chapman; Hall.
Mendenhall, William, and Terry Sincich. 1996. A Second Course in Statistics: Regression Analysis. 5th ed. Prentice Hall.
Meschiari, Stefano. 2022. Latex2exp: Use LaTeX Expressions in Plots. https://CRAN.R-project.org/package=latex2exp.
R Core Team. 2020. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing. https://www.R-project.org/.
Shalizi, Cosma. 2024. “Modern Regression.” August 12, 2024. https://www.stat.cmu.edu/~cshalizi/mreg/15/.
Weisberg, Sanford. 2005. Applied Linear Regression. John Wiley & Sons.
Wickham, Hadley. 2016. Ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York. https://ggplot2.tidyverse.org.
Wickham, Hadley, and Dana Seidel. 2020. Scales: Scale Functions for Visualization. https://CRAN.R-project.org/package=scales.
Working, Hollbrook, and Harold Hotelling. 1929. “Applications of the Theory or Error to the Interpretation of Trends.” Journal of the American Statistical Association 24 (165).
Xie, Yihui. 2014. “Knitr: A Comprehensive Tool for Reproducible Research in R.” In Implementing Reproducible Computational Research, edited by Victoria Stodden, Friedrich Leisch, and Roger D. Peng. Chapman; Hall/CRC. http://www.crcpress.com/product/isbn/9781466561595.
Zhu, Hao. 2021. kableExtra: Construct Complex Table with ’Kable’ and Pipe Syntax. https://CRAN.R-project.org/package=kableExtra.
Zulfa, Khonsa, Joanna Walker, and Rebekah Yore. 2024. “Factors Affecting Households Evacuation Decision Making in Response to Disaster, Case Study from 2021 South Kalimantan Floods, Indonesia.” International Journal of Disaster Risk Reduction.

  1. El supuesto de normalidad es con frecuencia aceptable particularmente para describir fenómenos físicos. Con frecuencia, incluso si los errores (por ejemplo) individualmente no siguen una función de distribución normal, su suma tenderá a seguir una distribución normal (por el Teorema Central del Límite).↩︎

  2. Desarrollado por Henry Scheffé en los 1950’s.↩︎

  3. Breve nota de lenguaje: nota el uso de la palabra múltiple. Cuando se habla de regresión múltiple se hace referencia al uso de diversas variables explicativas. El término multivariada hace referencia al uso de diversas variables respuesta.↩︎

  4. Esta matriz estará compuesta por las variables explicativas en forma de vectores columna pero adicionada con un vector columna de 1s en la primera posición.↩︎

  5. Es necesario tener cuidado con lo que significa que existan observaciones repetidas. En este sentido, para poder aplicar esta prueba, es necesario que existan repeticiones genuinas del experimento para determinados niveles de la variable explicativa. Lo que esto significa, desde luego, podrá variar en función del experimento, pero por lo general implica que se levanten muestras independientes en diferentes individuos (por ejemplo, dos muestras, recogidas del mismo individuo, aunque haya sido aleatoriamente escogido y aunque el resultado sea diferente, no necesariamente constituyen una observación repetida). Sirva esta nota al pie simplemente para recordarnos la importancia del correcto diseño de experimentos y el buen diseño muestral, para los cuales no hay sustituto.↩︎

  6. Este es uno de los aspectos del conjunto de problemas que en la práctica son etiquetados como la “Maldición de la Dimensionalidad”. En particular, considera que para construir un muestreo en \(\mathbb{R}^2\) equivalente a un muestreo de 100 puntos equidistantes en \(\mathbb{R}\) necesitaríamos 1,000 observaciones, y 10,000 para \(\mathbb{R}^3\).↩︎