ImportanteObjetivos de aprendizaje

Al finalizar este capítulo, el estudiante será capaz de:

  • Comprender las hipótesis del modelo de regresión lineal múltiple y explicar su importancia para la validez de los resultados econométricos.

  • Estimar modelos de regresión lineal múltiple mediante el método de mínimos cuadrados ordinarios (MCO) utilizando datos de empresas y mercados financieros.

  • Interpretar económicamente los coeficientes estimados, distinguiendo entre el efecto individual de cada variable explicativa y su influencia conjunta sobre la variable dependiente.

  • Evaluar la calidad del ajuste de un modelo mediante las principales medidas de bondad de ajuste y comparar especificaciones alternativas para seleccionar el modelo más adecuado.

  • Realizar inferencia estadística sobre los parámetros del modelo mediante intervalos de confianza y contrastes de hipótesis, tanto individuales como conjuntos.

  • Contrastar la significación global del modelo y valorar su capacidad explicativa desde una perspectiva económica y estadística.

  • Analizar las propiedades básicas de los estimadores obtenidos mediante MCO y comprender las consecuencias del incumplimiento de las hipótesis del modelo.

  • Utilizar el modelo estimado para realizar predicciones e interpretar los resultados en contextos empresariales y financieros.

  • Evaluar la estabilidad de un modelo econométrico mediante contrastes de permanencia estructural y comprender su importancia cuando se analizan datos de distintos periodos o entornos económicos.

  • Aplicar todas estas herramientas al análisis de la rentabilidad empresarial y de los mercados financieros utilizando R como herramienta de trabajo.

2.1 Hipótesis del modelo

EL modelo lineal uniecuacional múltiple analiza la relación lineal entre una variable dependiente, \(Y\), y más de una variable independiente, \(X_{j}\), \(j=1,\dots,k\), \(k > 1\), más un término aleatorio, \(u\). Con una muestra de tamaño \(n\), el modelo puede ser expresado como:

\[Y_{i} = \beta_{1} + \beta_{2} X_{2i} + \beta_{3} X_{3i} + \cdots + \beta_{k} X_{ki} + u_{i}, \quad i=1,\dots,n,\]

donde se ha considerado que hay término constante, es decir, \(X_{1i} = 1\), \(\forall i\). Normalmente se usa el subíndice \(i\) para trabajar con datos de caracter transversal y el subíndice \(t\) para trabajar con datos de caracter temporal.

NotaBase de datos 1: Top 100 empresas andaluzas del transporte

Aunque en la teoria la variable dependiente suele denotarse como \(Y\) y las variables explicativas como \(X\), en la práctica lo habitual es que las variables tomen el nombre de las siglas de la medida a la que representan o similar. Asi, en nuestro ejemplo, el modelo se denota como: \[ ROA_i=\beta_0+\beta_1LEV_i+\beta_2LIQ_i+u_i \] Notese que el parámetro \(\beta_0\) no esta multiplicado por ninguna variable explicativa por lo que podría considerarse que esta multiplicada por 1, que es a lo que llamamos el término independiente o intercepto. Tengase en cuenta tambien que el subindice \(i\) se usa para denotar que tenemos \(n=100\) observaciones, de manera que en esa ecuación se esta representando una observación (empresa) concreta \(i\). En cambio, los parámetros no tienen subindice porque son constantes desconocidas que describen la relación entre las variables y se supone que son comunes a todas las observaciones de la muestra.

TipBase de datos 2: El IBEX35

En el ejemplo con datos financieros, estamos trabajando con datos temporales referidos a \(n=72\) meses. El modelo econométrico quedaría especificado como: como: \[ IBEX35_t=\beta_0+\beta_1SP500_t+\beta_2EUROSTOXX50_t+u_t \] Es habitual usar el subíndice \(t\) cuadno trabajamos con datos de series temporales.

Dado que cada variable se observa para las \(n\) observaciones de la muestra, puede representarse mediante un vector de dimensión \(n×1\). En consecuencia, el modelo de regresión puede escribirse de forma más compacta utilizando notación matricial, lo que simplifica su formulación teórica y el desarrollo de los resultados que se estudiarán a lo largo del capítulo:

\[y = X \cdot \beta + u,\]

Consideraremos las siguientes hipótesis básicas en el modelo lineal uniecuacional múltiple:

  1. El vector \(y\) se puede expresar como combinación lineal de las variables explicativas más un vector de perturbación.
NotaBase de datos 1: Top 100 empresas andaluzas del transporte

La rentabilidad económica de una empresa puede explicarse, al menos parcialmente, mediante una relación lineal con variables observables como el endeudamiento y la liquidez, junto con otros factores no observados recogidos en la perturbación aleatoria.

  1. No hay relación entre variables independientes y la perturbación aleatoria, es decir, \[Cov ( u_{n \times 1}, X_{j} ) = 0_{n\times n}.\]
NotaBase de datos 1: Top 100 empresas andaluzas del transporte

Se supone que las variables explicativas no contienen información sobre los factores no observados incluidos en la perturbación. Por ejemplo, si la calidad del equipo directivo afecta simultáneamente al endeudamiento y al ROA pero no se incorpora al modelo, esta hipótesis podría incumplirse.

  1. La matriz \(X\) es no estocástica y de rango completo por columnas, es decir, \(rg(X) = k\) (como consecuencia \(n > k\) y las columnas de \(X\), es decir, \(X_{i}\), \(i=1,\dots,n\), son linealmente independientes).
NotaBase de datos 1: Top 100 empresas andaluzas del transporte

Si el modelo incorpora simultáneamente el ratio de endeudamiento y otro indicador calculado exactamente como el doble del anterior, ambas variables contienen la misma información y el modelo no podrá estimarse.

  1. Las perturbaciones aleatorias son esféricas, es decir:

4.1 Está centrada: \[E[u_{i}] =0, \ i=1,\dots,n\]

4.2 Es homoscedástica: \[Var(u_{i}) = E[u_{i}^{2} ] = \sigma^{2}, \ i=1,\dots,n \]

4.3 Es incorrelada: \[Cov(u_{i}, u_{j}) = E[u_{i} \cdot u_{j}] = 0, \ \forall i \not= j, i,j=1,\dots,n \] El incumplimiento de la hipótesis (3) da lugar a la existencia de colinealidad perfecta. Igualmente, el incumplimiento de las hipótesis (4.b) y (4.c) dan lugar a la existencia de heterocedasticidad y autocorrelación, respectivamente.

NotaBase de datos 1: Top 100 empresas andaluzas del transporte
Hipótesis Interpretación práctica
Media cero Los factores omitidos no producen un sesgo sistemático en la rentabilidad.
Homocedasticidad La variabilidad de los errores es similar para empresas pequeñas y grandes.
Incorrelación La variable no observable de una empresa no esta relacionada con variable no observable de otra empresa.

Estas hipótesis no se introducen únicamente por razones matemáticas. Permiten demostrar que el estimador de mínimos cuadrados ordinarios posee propiedades deseables, como la insesgadez y la eficiencia. Además, muchas de ellas podrán comprobarse posteriormente mediante contrastes específicos. Además de estas hipótesis, para llevar a cabo lo que se conoce como inferencia tradicional (intervalos de confianza y contrastes de hipótesis basados en una distribución estadística) se impondrá como hipótesis adicional que la perturbación aleatoria se distribuya según una distribución Normal de media 0 y varianza \(\sigma^2I\).

2.2 Estimación de los parámetros del modelo por mínimos cuadrados ordinarios. Propiedades

El método de mínimos cuadrados ordinarios (MCO) es el procedimiento más utilizado para estimar un modelo de regresión lineal. Su objetivo consiste en encontrar los valores de los parámetros que hacen que las predicciones del modelo sean lo más próximas posible a los datos observados. En otras palabras, busca la recta (o, en el caso de varias variables, el hiperplano) que mejor se ajusta a la información disponible.

NotaBase de datos 1: Top 100 empresas andaluzas del transporte

En el caso de estudio del libro, el modelo intenta explicar la rentabilidad económica (ROA) de las empresas a partir del endeudamiento y la liquidez, y el objetivo es obtener un modelo estimado del tipo: \[\hat{ROA}=17.5061-0.3133LIQUIDEZ-0.1522ENDEUDAMIENTO\] Una vez estimado el modelo, cada empresa tendrá un ROA estimado y un ROA observado. La diferencia entre ambos valores constituye el residuo.

Empresa ROA Endeudamiento Liquidez ROA estimado Residuos
A 4.12 63.756 0.11 7.7679 -3.6479
B 1.604 79.32 0.037 5.4220 -3.818
C 4.646 64.678 0.042 7.6489 -3.0029
D 10.828 11.881 2.058 15.0530 -4.2250
E 4.916 81.242 0.028 5.1322 -0.2163
F 11.147 41.208 0.693 11.0171 0.1298
… … … … … …

Podría pensarse en minimizar simplemente la suma de los residuos. Sin embargo, los residuos positivos y negativos se compensan entre sí, de modo que su suma siempre es cero cuando el modelo incorpora término independiente. Por este motivo se minimiza la suma de los cuadrados de los residuos (SCR), que penaliza por igual los errores positivos y negativos y concede mayor importancia a los errores de mayor magnitud.

Matemáticamente, el objetivo se traduce en estimar la recta que minimice la diferencia entre el valor real y el valor estimado. Dicha diferencia se conoce como residuo \(e\), y se obtiene como \(e = y - \widehat{y},\) donde \(\widehat{y} = X \widehat{\beta}\). Dado que se verifica que la suma de los residuos es cero (\(\sum_{i=1}^{n} e_i=0\)), el objetivo será minimizar la suma de los cuadrados de los residuos (SCR). Los pasos a seguir son:

  • Paso 1: Definir la función objetivo. Se establece la expresión a minimizar que viene dada por:

\[e^{t}e = (y - X \widehat{\beta})^{t} \cdot (y - X \widehat{\beta}) = y^{t}y - 2 \widehat{\beta}^{t} X^{t} y + \widehat{\beta}^{t} X^{t} X \widehat{\beta},\] - Paso 2. Encontrar el mínimo. Se deriva la expresión obtenida con respecto a \(\widehat{\beta}\) y se iguala a cero. \[ \frac{\partial e^{t} e}{\partial {\widehat{\beta}}} =- 2 X^t {y}+ 2 X^t X {\widehat{\beta}}={0}\] Esta expresión corresponde a la condición necesaria de mínimo de la función en estudio.

  • Paso 3. Obtener el estimador MCO. A continuación se despeja el vector de parámetros de la expresión anterior: \[ - 2 X^t {y}+ 2 X^t X {\widehat{\beta}}= {0} \Leftrightarrow X^t X {\widehat{\beta}}= X^t {y} \notag\] obteniendo \[\widehat{\beta} = \left( X^{t} X \right)^{-1} \cdot X^{t}y\].

  • Paso 4. Comprobar que realmente es un mínimo. Se puede demostrar que igualmente se verifica la condición suficiente \[\frac{\partial^2 e^{t} e }{\partial {\widehat{\beta}} \partial {\widehat{\beta}}^t} =2 X^t X>0\]

Por tanto, el estimador MCO viene dado por la siguiente expresión: \[{\widehat{\beta}} = \left(X^t X\right)^{-1} \left( X^t {y} \right)\] Es posible obtener el producto \(X^{t} X\) y \(X^{t}y\) a partir de las siguientes expresiones:

\[X^{t} X = \left( \begin{array}{cccc} n & \sum \limits_{t=1}^{n} X_{2i} & \cdots & \sum \limits_{i=1}^{n} X_{ki} \\ \sum \limits_{i=1}^{n} X_{2i} & \sum \limits_{i=1}^{n} X_{2i}^{2} & \cdots & \sum \limits_{i=1}^{n} X_{2i} X_{ki} \\ \vdots & \vdots & \ddots & \vdots \\ \sum \limits_{i=1}^{n} X_{ki} & \sum \limits_{i=1}^{n} X_{ki} X_{2i} & \cdots & \sum \limits_{i=1}^{n} X_{ki}^{2} \\ \end{array} \right),\] y \[X^{t} y = \left( \begin{array}{c} \sum \limits_{i=1}^{n} Y_{i} \\ \sum \limits_{i=1}^{n} X_{2i} Y_{i} \\ \vdots \\ \sum \limits_{i=1}^{n} X_{ki} Y_{i} \\ \end{array} \right).\]

Esta expresión proporciona los estimadores de los parámetros del modelo utilizando únicamente la información contenida en la matriz de variables explicativas y en el vector de la variable dependiente. Aunque su cálculo puede realizarse manualmente en ejemplos sencillos mediante el producto de matrices y el cálculo de la inversa de una matriz, en la práctica usaremos programas estadísticos como R mediante la función lm. Sin embargo, el conocimiento de la expresión anterior permite comprender el fundamento matemático del método de estimación.

NotaBase de datos 1: Top 100 empresas andaluzas del transporte

A continuación, aplicamos la función lm a nuestro ejemplo para obtener los estiamdores MCO:

Código
datos <- read_excel("data/BD_SABI.xlsx", sheet = "Datos")
modelo <- lm(
    ROA ~ ENDEUDAMIENTO + LIQUIDEZ_INMEDIATA,
    data = datos
)
modelo

Call:
lm(formula = ROA ~ ENDEUDAMIENTO + LIQUIDEZ_INMEDIATA, data = datos)

Coefficients:
       (Intercept)       ENDEUDAMIENTO  LIQUIDEZ_INMEDIATA  
           17.5062             -0.1522             -0.3133  

Graficamente, se puede representar el gráfico de los valores observados frente a la recta estimada:

Código
datos$ROA_estimado <- fitted(modelo)

ggplot(datos, aes(x = ROA_estimado, y = ROA)) +
  geom_point(color = "steelblue", size = 2) +
  geom_abline(intercept = 0, slope = 1,
              color = "red", linewidth = 1) +
  labs(
    title = "Valores observados frente a valores ajustados",
    x = "ROA estimado",
    y = "ROA observado"
  ) +
  theme_minimal()

Igualmente, se pueden obtener los residuos:

Código
modelo$residuals
           1            2            3            4            5            6 
 -3.64604134  -3.81558458  -3.00098953  -4.22470312  -0.21381575   0.13110933 
           7            8            9           10           11           12 
 -3.69002890   0.86489073  -7.12697478  11.33339186  -2.19395238   0.28228705 
          13           14           15           16           17           18 
 -4.07463471   6.70242307   8.14395134  -3.27593150  -5.58817161  -3.00462253 
          19           20           21           22           23           24 
 -3.60998397  -7.25375950  -2.90920801  -1.29428942  -0.08226305  -9.38406221 
          25           26           27           28           29           30 
  1.43007046  -4.29373040   7.03413926   6.99859369   5.94025477  -3.95360285 
          31           32           33           34           35           36 
-13.90021179  18.23666822   8.38106572   1.96144147  -1.35104347   4.26435883 
          37           38           39           40           41           42 
  2.19455936   0.24276960   0.56598855   1.26591707  -0.65921531   4.73068191 
          43           44           45           46           47           48 
 -0.51923264   0.57679671  -0.59523625  -1.47630292   0.80693357  -1.87994872 
          49           50           51           52           53           54 
 -1.37423868   3.34267530   3.54851304   4.94224771  -2.43258402   8.64970482 
          55           56           57           58           59           60 
  4.48253811   0.72014803   3.01215011  -2.09126699 -10.01876010  -0.27561736 
          61           62           63           64           65           66 
 -0.47825008  -1.37458375  -2.77540700   6.18111466  -0.32363855   4.70121230 
          67           68           69           70           71           72 
  6.49488142   1.71146770   3.78685925   1.74725536  -0.74162032   0.81779288 
          73           74           75           76           77           78 
 -3.94117074  -6.14894649  -4.37675984  13.81845975  -0.89832099  -4.02654006 
          79           80           81           82           83           84 
 -3.99039113  19.22951203   3.43160672   2.11144571  11.58979947   7.09989682 
          85           86           87           88           89           90 
 -9.55714270   2.63714663   2.19244079  -2.76056729   2.10481854   1.51668870 
          91           92           93           94           95           96 
 -5.05396512  -0.15962199  -5.13872270 -13.74520722   4.28333204 -11.20232764 
          97           98           99          100 
 -5.66986016  -4.82422927  -9.00733555  -6.83738347 

Como consecuencia de la estimación mediante MCO se derivan las siguientes propiedades algebraicas de los estimadores:

Propiedad Interpretación
\((X' e=0)\) Los residuos son ortogonales a las variables explicativas.
\((i'e=0)\) La suma de los residuos es cero.
\((i'\hat y=i'y)\) La media de los valores estimados coincide con la media observada.
\((\hat y' e=0)\) Los valores ajustados y los residuos no están correlacionados.

2.2.1 Teorema de Gauss-Markov

En el modelo de regresión lineal, los parámetros \(\beta_1,\beta_2,\ldots,\beta_k\) son constantes desconocidas que describen la relación existente entre la variable dependiente y las variables explicativas. Aunque sus valores son fijos, no pueden observarse directamente y, por tanto, deben estimarse a partir de una muestra de datos.

Los valores obtenidos mediante el método de mínimos cuadrados ordinarios, \(\widehat{\beta}_1,\widehat{\beta}_2,\ldots,\widehat{\beta}_k\), reciben el nombre de estimadores. A diferencia de los parámetros, los estimadores son variables aleatorias, ya que dependen de la muestra utilizada para realizar la estimación. Si se extrajeran repetidamente muestras distintas de la misma población y se estimara el modelo en cada una de ellas, los valores obtenidos para los coeficientes serían diferentes.

Como cualquier variable aleatoria, los estimadores poseen una distribución de probabilidad y, por tanto, pueden caracterizarse mediante propiedades como su esperanza matemática y su varianza. En consecuencia, al evaluar un procedimiento de estimación interesa que los estimadores presenten determinadas propiedades deseables. Dos de las propiedades más importantes son las siguientes:

  • Insesgadez: un estimador es insesgado cuando, en promedio, coincide con el verdadero valor del parámetro que pretende estimar. Matemáticamente, se puede demostrar:

\[ \begin{aligned} \widehat{\beta} &= \left( X^{t}X \right)^{-1} X^{t}y \\ &= \left( X^{t}X \right)^{-1} X^{t}(X\beta + u) \\ &= \beta + \left( X^{t}X \right)^{-1} X^{t}u. \end{aligned} \]

Por tanto,

\[ \widehat{\beta} = \beta + \left( X^{t}X \right)^{-1} X^{t}u. \]

Dado que \(E[u] = 0\), se cumple que:

\[ \begin{aligned} E[\widehat{\beta}] &= E\left[ \beta + \left( X^{t}X \right)^{-1} X^{t}u \right] \\ &= \beta + \left( X^{t}X \right)^{-1} X^{t}E[u] \\ &= \beta. \end{aligned} \]

Por lo que se ha demostrado que \(\widehat{\beta}\) es un estimador insesgado. Esto significa que, si el proceso de muestreo pudiera repetirse un gran número de veces, el promedio de los estimadores obtenidos coincidiría con el verdadero valor del parámetro poblacional.

  • Eficiencia: entre dos estimadores insesgados, se considera más eficiente aquel que presenta una menor varianza. Un estimador eficiente produce estimaciones menos dispersas alrededor del verdadero valor del parámetro y, por tanto, proporciona resultados más precisos.

Para demostrar que el estimador MCO es eficiente se calcula en primer lugar la matriz de varianzas-covarianzas de \(\widehat{\beta}\):

\[ \begin{aligned} Var\left(\widehat{\beta}\right) &= E\left[ \left(\widehat{\beta} - E[\widehat{\beta}]\right) \left(\widehat{\beta} - E[\widehat{\beta}]\right)^{t} \right] \\ &= E\left[ \left(\widehat{\beta} - \beta\right) \left(\widehat{\beta} - \beta\right)^{t} \right] \\ &= E\left[ \left(X^{t}X\right)^{-1}X^{t}u u^{t}X\left(X^{t}X\right)^{-1} \right] \\ &= \left(X^{t}X\right)^{-1}X^{t} E\left[uu^{t}\right] X\left(X^{t}X\right)^{-1} \\ &= \sigma^{2} \left(X^{t}X\right)^{-1}X^{t}X \left(X^{t}X\right)^{-1} \\ &= \sigma^{2}\left(X^{t}X\right)^{-1}. \end{aligned} \]

donde se ha tenido en cuenta que \(\widehat{\beta}\) es insesgado, que

\[ \widehat{\beta} - \beta = \left(X^{t}X\right)^{-1}X^{t}u \]

y que

\[ Var(u) = E\left[uu^{t}\right] = \sigma^{2}I_{n \times n}. \]

A continuación, se procede a demostrar que \(\widehat{\beta}\) es el estimador de mínima varianza de entre todos los estimadores lineales e insesgados. Para ello, se considera otro estimador, \(\beta^{*}\), de \(\beta\), lineal e insesgado, de forma que \(Var(\widehat{\beta}) < Var(\beta^{*})\). En efecto,

\[ \beta^{*} = D_{k \times n}y_{n \times 1}, \]

tal que

\[ DX = I_{k \times k}, \]

es lineal e insesgado. Además,

\[ Var\left(\beta^{*}\right) = \sigma^{2}DD^{t}. \]

En tal caso, puesto que podemos escribir

\[ D = \left(X^{t}X\right)^{-1}X^{t} + W, \]

con

\[ W \neq 0_{k \times n}, \]

se tiene que

\[ DD^{t} = \left(X^{t}X\right)^{-1} + WW^{t}, \]

y, en tal caso:

\[ \begin{aligned} Var\left(\beta^{*}\right) &= \sigma^{2}DD^{t} \\ &= \sigma^{2}\left(X^{t}X\right)^{-1} + \sigma^{2}WW^{t} \\ &= Var\left(\widehat{\beta}\right) + \sigma^{2}WW^{t}. \end{aligned} \]

Esto es,

\[ Var\left(\beta^{*}\right) - Var\left(\widehat{\beta}\right) = \sigma^{2}WW^{t}. \]

Debido a que \(WW^{t}\) es definida positiva:

\[ Var\left(\beta^{*}\right) - Var\left(\widehat{\beta}\right) > 0. \]

Por tanto,

\[ Var\left(\beta^{*}\right) > Var\left(\widehat{\beta}\right). \]

Los resultados obtenidos en la demostración anterior constituyen precisamente los elementos fundamentales del Teorema de Gauss-Markov que establece que, bajo las hipótesis del modelo lineal clásico, los estimadores obtenidos mediante el método de mínimos cuadrados ordinarios (MCO) son lineales e insesgados y, además, presentan la mínima varianza entre todos los estimadores lineales e insesgados. Por esta razón, se denominan Estimadores Lineales Insesgados Óptimos (ELIO) o, utilizando la terminología anglosajona, Best Linear Unbiased Estimators (BLUE). Ver (Wooldridge2000?) para más detalle.

Varianza de la perturbación aleatoria\

Además de los coeficientes de las variables independientes, es necesario estimar la varianza de la perturbación aleatoria, \(\sigma^{2}\). Puede demostrarse que la suma de cuadrados de los residuos verifica la siguiente propiedad: \[E[e^{t} e] = (n-k) \cdot \sigma^{2}\] por lo que un estimador insesgado de la varianza de la perturbación aleatoria viene dado por

\[ \widehat{\sigma}^{2} = \frac{e^{t} e}{n-k} \]

Una vez estimada la varianza residual, puede obtenerse la matriz estimada de varianzas y covarianzas de los estimadores MCO \(\widehat{\beta}\):

\[\widehat{Var \left( \widehat{\beta} \right)} = \widehat{\sigma}^{2} \cdot \left( X^{t} X \right)^{-1}.\] Los elementos de la diagonal principal de esta matriz contienen las varianzas de cada uno de los coeficientes estimados, mientras que los elementos situados fuera de la diagonal representan las covarianzas entre ellos. A partir de esta matriz se obtienen los errores estándar de los coeficientes, que desempeñan un papel esencial en la inferencia estadística y permiten construir intervalos de confianza y realizar contrastes de significación sobre los parámetros del modelo, aspectos que se estudiarán en las siguientes secciones.

NotaBase de datos 1: Top 100 empresas andaluzas del transporte

En el caso de estudio del libro, el teorema de Gauss-Markov garantiza que, si se cumplen las hipótesis del modelo, los coeficientes que relacionan el ROA con el endeudamiento y la liquidez son los más precisos que pueden obtenerse mediante un estimador lineal e insesgado. Esto aumenta la fiabilidad de las conclusiones extraídas sobre la influencia de ambas variables en la rentabilidad empresarial.

Hay que tener en cuenta que los coeficientes estimados que relacionan el ROA con el endeudamiento y la liquidez indican el efecto medio de cada variable sobre la rentabilidad empresarial. Sin embargo, estos coeficientes son estimaciones obtenidas a partir de una muestra de empresas y, por tanto, están sujetos a incertidumbre. La matriz de varianzas-covarianzas cuantifica esa incertidumbre y permite determinar si los efectos estimados son estadísticamente significativos o podrían deberse al azar. Esta idea constituye la base de la inferencia estadística que se desarrolla en los apartados siguientes.

Se puede obtener la suma de los cuadrados de los residuos (SCR)

Código
SCR <- deviance(modelo)
SCR
[1] 3374.553

Y, a partir de ella, obtener la estimación de la varianza de las perturbaciones:

Código
n <- nobs(modelo)
k <- length(coef(modelo))

sigma2 <- SCR / (n - k)
sigma2
[1] 34.78921

También se puede obtener directamente, como:

Código
sigma(modelo)^2
[1] 34.78921

La matriz de varianzas-covarianzas de los estimadores puede obtenerse mediante:

Código
vcov(modelo)
                   (Intercept) ENDEUDAMIENTO LIQUIDEZ_INMEDIATA
(Intercept)          8.0246633  -0.100105777        -3.71756685
ENDEUDAMIENTO       -0.1001058   0.001332926         0.04341539
LIQUIDEZ_INMEDIATA  -3.7175669   0.043415389         2.73076377

El resultado es una matriz cuadrada cuyos elementos de la diagonal representan las varianzas de los estimadores de los coeficientes, mientras que los elementos fuera de la diagonal corresponden a sus covarianzas. Asi, se verifica que:\

  • \(\hat{var}(\hat{\beta}_0)=8.0246\)
  • \(\hat{var}(\hat{\beta}_1)=0.0013\)
  • \(\hat{var}(\hat{\beta}_2)=2.7307\)
  • \(\hat{cov}(\hat{\beta_0},\hat{\beta_1})=-0.100\)
  • \(\hat{cov}(\hat{\beta_0},\hat{\beta_2})=-3.7175\)
  • \(\hat{cov}(\hat{\beta_1},\hat{\beta_2})=0.0434\)

2.2.2 Interpretación de los estimadores

Estimar un modelo econométrico constituye únicamente el primer paso del análisis. El verdadero interés radica en interpretar el significado económico de los coeficientes obtenidos y evaluar si sus magnitudes son coherentes con la teoría económica y financiera. En esta sección se estudia cómo interpretar los estimadores en función de la forma funcional del modelo.

Si partimos de un modelo de regresión estimado con dos variables explicativas más un termino independiente:

\[\hat{y}_t=\hat{\beta}_1+\hat{\beta}_2x_{2t}+\hat{\beta}_3x_{3_t}\] Si expresamos el modelo en diferencias:

\[\hat{y}_i-\hat{y}_{i-1}=(\hat{\beta}_1+\hat{\beta}_2x_{2t}+\hat{\beta}_3x_{3_t})-(\hat{\beta}_1+\hat{\beta}_2x_{2t-1}+\hat{\beta}_3x_{3t-1})=\] \[\Delta\hat{y}_t= \hat{\beta}_2\Delta x_{2t}+ \hat{\beta}_3 \Delta x_{3t}\] Por tanto, si el incremento en \(x_3\) es cero (\(\Delta x_3=0\)), entonces: \[\hat{\beta}_2=\frac{\Delta \hat{y}_t}{\Delta X_{2t}}\] por lo que \(\hat{\beta}_2\) se interpreta como el cambio en \(y\) producido por un cambio en \(x_2\) manteniendose \(x_3\) constante.

NotaBase de datos 1: Top 100 empresas andaluzas del transporte

En nuestro ejemplo, el modelo estimado tiene la siguiente expresión: \[ \hat{ROA}_i=17.5061-0.1522LEV_i+-0.3133LIQ_i \] La interpretación de cada uno de los coeficientes es la siguiente:

  • \(\hat{\beta_0}\)=17.5061. El intercepto indica que, si una empresa presentara un nivel de endeudamiento y de liquidez igual a cero, el ROA esperado sería del 17.5061 %. No obstante, esta situación no suele tener sentido económico, ya que es poco realista encontrar empresas con ambos ratios iguales a cero. Por ello, el término independiente suele tener una interpretación limitada.
  • \(\hat{\beta_1}\)=−0.1522. Manteniendo constante la liquidez, un incremento de una unidad en el ratio de endeudamiento se asocia, en promedio, con una disminución de 0.1522 puntos porcentuales en el ROA. El signo negativo es coherente con la teoría financiera, ya que un mayor nivel de endeudamiento suele incrementar la carga financiera y el riesgo de la empresa, reduciendo su rentabilidad económica.
  • \(\hat{\beta_1}\)=−0.3133. Manteniendo constante el nivel de endeudamiento, un incremento de una unidad en el ratio de liquidez se asocia, en promedio, con una reducción de 0.3133 puntos porcentuales en el ROA. Dado que podría esperarse una relación positiva entre liquidez y rentabilidad, deberá analizarse posteriormente mediante los contrastes de significación estadística.

Obsérvese que ambos coeficientes representan efectos marginales o efectos ceteris paribus. Es decir, cada coeficiente mide el efecto de una variable sobre el ROA suponiendo que el resto de las variables explicativas permanecen constantes. Esta es una de las principales ventajas de la regresión múltiple frente al análisis bivariante, ya que permite aislar el efecto individual de cada factor sobre la variable de interés.

En algunas ocasiones, puede resultar interesante expresar la variables del modelo (dependiente, independiente o ambas) en logaritmos. Algunos ejemplos en los que puede resultar interesante trabajar con logaritmos son los siguientes:

  • Para linealizar modelos no lineales. Por ejemplo la función de producción de Cobb-Douglas se expresa como una función no lineal del tipo: \[P_i=L_i^{\beta_1}\times K_i^{\beta_2} \times u_i\] que se podría convertir en lineal tomando logaritmos: \[\ln{P_i}=\beta_1\ln(L_i)+\beta_2\ln(K_i)+ u_i\]

  • Para reducir la dispersión original de los datos, ya que la forma funcional en logaritmos permite reducir la dispersión de la variable limitando el riesgo de aparición de heterocedasticidad (varianza no constante de la perturbación aleatoria)

Cuando ambas variables estan expresadas en logaritmo, la interpretación de los parámetros es similar al concepto de elasticidad entre ambas variables:

\[Elasticidad_{(y/x)}=\frac{\frac{\Delta y}{y}}{\frac{\Delta x}{x}}\] por lo tanto: \[\frac{\Delta y}{y}=\beta_2 \frac{\Delta x}{x}\rightarrow log(y)=\beta_2 log(x)\] Por lo que \(\beta_2\) se interpreta como el cambio porcentual en \(y\) ante una variación del 1% en la variable \(x\).

En algunas ocasiones se combinaran variables expresadas en unidades originales (nivel) con otras expresadas en logaritmos y para interpretarlo correctamente hay que tener en cuenta que los cambios de la variable en logaritmos se asemejan a cambios porcentuales, mientras que los cambios en variables en nivel se expresan como cambios en la unidad original de esa varriable. Este cuadro presentado por De Arce y Mahı́a (2012), resume las distintas interpretaciones:

Resumen interpretación coeficientes
Especificación Expresión Interpretación de \(\hat{\beta}_2\)
Nivel-Nivel \(y_i=\beta_1+\beta_2x_{2i}+u_i\) Incremento de unidades en \(y\) cuando aumenta 1 unidad la \(x_2\)
Log-nivel \(log(y_i)=\beta_1+\beta_2x_{2i}+u_i\) \(\hat{\beta}_2\times100\) incremento porcentual de \(y\) cuando aumenta una unidad \(x_2\)
Nivel-log \(y_i=\beta_1+\beta_2log(x_{2i})+u_i\) \(\hat{\beta_2}/100\) incremento en unidades de \(y\) cuando aumenta un 1% la variable \(x_2\)
Log-Log \(log(y_i)=\beta_1+\beta_2log(x_{2i})+u_i\) Incremento porcentual de \(y\) cuando aumenta un 1% la variable \(x_2\)

Este cuadro será completado incorporando la interpretación para el caso de variables dicotómicas dependiendo de si la variable dependiente esta expresada en unidades originales o en logaritmos.

2.3 Bondad de ajuste: coeficientes de determinación y criterios de Akaike y Schwarz

Una vez estimados los coeficientes del modelo surge una pregunta natural: ¿explica bien el modelo el comportamiento de la variable dependiente? Para responder a esta cuestión existen diversas medidas de bondad del ajuste. Ninguna de ellas permite decidir por sí sola si un modelo es adecuado, pero proporcionan información muy útil para comparar especificaciones alternativas y valorar su capacidad explicativa.

Así, una vez obtenidos los estimadores de los parámetros, interesa conocer qué proporción de la variabilidad observada de la variable explicada consigue explicar el modelo y qué parte permanece sin explicar.

2.3.1 Descomposición de la variabilidad

La variabilidad total observada en la variable dependiente puede descomponerse en dos partes:

  • la variabilidad explicada por el modelo, que recoge la información explicada por las variables independientes;
  • la variabilidad no explicada, correspondiente a los residuos o errores de estimación.

Esta descomposición puede expresarse mediante la identidad

\[SCT=SCE+SCR\]

donde:

  • SCT es la Suma de Cuadrados Total

\[ SCT=y^{t} y - n \cdot \overline{Y}^{2} \]

  • SCE es la Suma de Cuadrados Explicada \[ SCE=\widehat{\beta}^{t} X^{t} y - n \cdot \overline{Y}^{2} \]

  • SCR es la Suma de Cuadrados de los Residuos. \[ SCR=y^{t}y - \widehat{\beta}^{t} X^{t} y \]

Obsérvese que esta descomposición únicamente se verifica cuando el modelo incorpora un término independiente.

2.3.2 Coeficiente de determinación

La medida de bondad del ajuste más utilizada es el coeficiente de determinación, denotado por \(R^{2}\), se obtiene como el cociente entre SCE y SCT:

\[R^{2} = \frac{SCE}{SCT} = 1 - \frac{SCR}{SCT}.\]

Mide la proporción de la variabilidad total de la variable dependiente que consigue explicar el modelo de regresión. Asi, el coeficiente de determinación varía entre 0 y 1, siempre que el modelo lineal tenga término independiente.

  • Cuando la SCE es nula, el modelo no explica nada y el coeficiente de determinación, toma el valor 0.
  • Por otra parte, cuando la SCR es nula, el modelo explica el 100% de la varianza y, por tanto, el coeficiente de determinación toma el valor 1.
NotaBase de datos 1: Top 100 empresas andaluzas del transporte

Por ejemplo, en el modelo del ROA se obtiene un coeficiente de determinación igual a 0.2582, significa que el 25.82 % de la variabilidad observada en la rentabilidad económica de las empresas queda explicada por el endeudamiento y la liquidez, mientras que el 74.18 % restante se debe a otros factores no incluidos en el modelo o al componente aleatorio.

Código
summary(modelo)$r.squared
[1] 0.2582602

El coeficiente de determinación presenta el inconveniente de que aumenta a medida que se incluyen variables en el modelo aunque las variables incluidas no sean significativas. Por esta razón, el coeficiente de determinación no permite comparar modelos con distinto número de variables explicativas.

2.3.3 El coeficiente de determinación corregido:

Para resolver este inconveniente se utiliza el coeficiente de determinación corregido, denotado por \(\overline{R}^{2}\). Se define como:

\[ \overline{R}^{2} = 1 - (1 - R^{2}) \cdot \frac{n-1}{n-k}. \]

A diferencia del coeficiente de determinación, esta medida incorpora una penalización por el número de parámetros estimados. En consecuencia, únicamente aumenta cuando la incorporación de nuevas variables mejora realmente la capacidad explicativa del modelo.

NotaBase de datos 1: Top 100 empresas andaluzas del transporte

Si estimamos un modelo alternativo en el que, por error, se incorpora como variable explicativa el código identificador de la empresa (numeradas del 1 al 100), cabría esperar que el modelo no mejorase, ya que dicha variable no contiene información económica relacionada con el ROA. Sin embargo, al volver a estimar el modelo se observa que el coeficiente de determinación (\(R^2\)) aumenta ligeramente. Esto ocurre porque el \(R^2\) nunca disminuye al añadir nuevas variables explicativas, aunque estas sean completamente irrelevantes. En cambio, el coeficiente de determinación corregido penaliza la incorporación de variables adicionales y, en este caso, pone de manifiesto que la aparente mejora del ajuste desaparece. Este ejemplo ilustra por qué el \(R^2\) corregido resulta más adecuado que el \(R^2\) para comparar modelos con distinto número de variables explicativas.

Código
datos <- read_excel("data/BD_SABI.xlsx", sheet = "Datos")
set.seed(1234)

# Variable aleatoria independiente del resto
datos$ID <- 1:nrow(datos)

modelo_id <- lm(
    ROA ~ ENDEUDAMIENTO + LIQUIDEZ_INMEDIATA+ID,
    data = datos
)
# Comparación
data.frame(
  Modelo = c("Original", "Con ID"),
  R2 = c(summary(modelo)$r.squared,
         summary(modelo_id)$r.squared),
  R2_corregido = c(summary(modelo)$adj.r.squared,
                   summary(modelo_id)$adj.r.squared)
)
    Modelo        R2 R2_corregido
1 Original 0.2582602    0.2429666
2   Con ID 0.2589103    0.2357513

2.3.4 Otros criterios de información

Otra forma de comparar modelos consiste en utilizar los criterios de información, que combinan dos aspectos fundamentales:

  • la capacidad de ajuste del modelo;
  • su complejidad, medida por el número de parámetros estimados.

Los criterios más utilizados son el criterio de información de Akaike (AIC) y el criterio bayesiano de Schwarz (BIC), definidos respectivamente por

\[ AIC = - 2 \cdot \mathfrak{L} + 2 \cdot k. \] \[ BIC = - 2 \cdot \mathfrak{L} + k \cdot \ln (n), \] donde \(\mathfrak{L} = - \frac{n}{2} \cdot \left( 1 + \ln (2 \cdot \pi) - \ln (n) \right) - \frac{n}{2} \cdot \ln (SCR).\)

Ambos criterios penalizan la incorporación de nuevas variables explicativas. Aunque añadir variables suele reducir la suma de cuadrados de los residuos, también incrementa la complejidad del modelo. El AIC y el BIC buscan un equilibrio entre ambas cuestiones. Por tanto, cuando se comparan varios modelos estimados sobre la misma muestra y con la misma variable dependiente, será preferible aquel que presente el menor valor de AIC o BIC.

NotaBase de datos 1: Top 100 empresas andaluzas del transporte

Vamos a estimar el modelo, pero solo considerando como variable explicativa la LIQUIDEZ_INMEDIATA:

Código
modelo1 <- lm(
  ROA ~ LIQUIDEZ_INMEDIATA,
  data = datos)

Y, considerando la LIQUIDEZ_INMEDIATA, el ENDEUDAMIENTO y el número de EMPLEADOS:

Código
modelo2 <- lm(
  ROA ~ LIQUIDEZ_INMEDIATA + ENDEUDAMIENTO + EMPLEADOS,
  data = datos
)

Por último, añadimos la variable EBIT:

Código
modelo3 <- lm(
  ROA ~ LIQUIDEZ_INMEDIATA + ENDEUDAMIENTO + EMPLEADOS+EBIT,
  data = datos
)

Podemos realizar la siguiente comparación usando distintas medidas de bondad:

Código
comparacion <- data.frame(
  Modelo = c(
    "Liquidez + Endeudamiento",
    "Liquidez",
    "Liquidez + Endeudamiento + Empleados",
    "Liquidez + Endeudamiento + Empleados+EBIT"
  ),
  R2 = c(
    summary(modelo)$r.squared,
    summary(modelo1)$r.squared,
    summary(modelo2)$r.squared,
    summary(modelo3)$r.squared
  ),
  R2_corregido = c(
    summary(modelo)$adj.r.squared,
    summary(modelo1)$adj.r.squared,
    summary(modelo2)$adj.r.squared,
    summary(modelo3)$adj.r.squared
  ),
  AIC = c(
    AIC(modelo),
    AIC(modelo1),
    AIC(modelo2),
    AIC(modelo3)
  ),
  BIC = c(
    BIC(modelo),
    BIC(modelo1),
    BIC(modelo2),
     BIC(modelo3)
  )
)

comparacion
                                     Modelo        R2 R2_corregido      AIC
1                  Liquidez + Endeudamiento 0.2582602    0.2429666 643.6725
2                                  Liquidez 0.1253122    0.1163868 658.1594
3      Liquidez + Endeudamiento + Empleados 0.2705782    0.2477838 643.9979
4 Liquidez + Endeudamiento + Empleados+EBIT 0.5663720    0.5481140 593.9914
       BIC
1 654.0932
2 665.9749
3 657.0237
4 609.6224

2.4 Estimación mediante intervalos de confianza de los parámetros del modelo

En el apartado anterior se obtuvo una estimación puntual de cada parámetro del modelo. Sin embargo, una estimación puntual proporciona únicamente un valor concreto obtenido a partir de la muestra disponible. Como cualquier estimación está sujeta a variabilidad muestral, resulta necesario cuantificar la incertidumbre asociada a dicho valor. Para ello se estudia la distribución de los estimadores a partir de la distribución de la perturbación aleatoria, lo que permitirá construir intervalos de confianza y realizar posteriormente contrastes de hipótesis sobre los parámetros del modelo.

Distribución de la perturbación aleatoria

Para poder obtener intervalos de confianza y realizar contrastes de hipótesis mediante la inferencia clásica se añade una hipótesis adicional a las vistas anteriormente: se supone que la perturbación aleatoria sigue una distribución Normal.

\[ u_{n \times 1} \sim N(0_{n \times 1}, \sigma^{2} \cdot I_{n \times n}) \]

Distribución del estimador

Partiendo de la distribución de la perturbación aleatoria se puede obtener la distribución del estimador.

\[ \hat{\beta}=\beta+\left( X^{t} X \right)^{-1} X^{t} u, \]

entonces se verifica que \(\hat{\beta}\) se distribuye según una normal con

\[ E \left[\widehat{\beta} \right] = \beta, \quad Var \left( \widehat{\beta} \right) = \sigma^{2} \cdot \left( X^{t} X \right)^{-1}, \]

es decir:

\[ \widehat{\beta}_{k \times 1} \sim N\!\left(\beta, \ \sigma^{2} \cdot \left( X^{t} X \right)^{-1} \right). \]

Intervalo de confianza

De esta forma, es inmediato obtener los siguientes intervalos de confianza al nivel \(1-\alpha\) para \(\beta_{i}\) \[ \widehat{\beta}_{i} \pm t_{n-k} \left( 1 - \frac{\alpha}{2} \right) \cdot \cdot \sqrt{\widehat{var}(\hat{\beta_i})}, \quad i=1,\dots,k. \]

siendo \(\widehat{var}(\hat{\beta_i})=\hat{\sigma}^2\times w_{i}\) donde \(w_{i}\) es el elemento \((i,i)\) de la matriz \((X'X)^{-1}\). El intervalo de confianza proporciona un conjunto de valores plausibles para el verdadero parámetro poblacional. Cuanto menor sea la variabilidad del estimador, más estrecho será el intervalo y mayor será la precisión de la estimación.

PrecauciónError habitual interpretación del intervalor de confianza

Un intervalo de confianza del 95 % no significa que exista un 95 % de probabilidad de que el parámetro pertenezca al intervalo calculado.

Significa que, si el procedimiento de muestreo pudiera repetirse un gran número de veces, aproximadamente el 95 % de los intervalos construidos contendrían el verdadero valor del parámetro.

Por otro lado, se puede obtener también el intervalo de confianza para \(\sigma^{2}\): \[ \left[ \frac{(n-k) \cdot \widehat{\sigma}^{2}}{\chi^{2}_{n-k} \left( 1 - \frac{\alpha}{2} \right)}, \ \frac{(n-k) \cdot \widehat{\sigma}^{2}}{\chi^{2}_{n-k} \left( \frac{\alpha}{2} \right)} \right] \]

donde \(\chi^{2}_{n-k} \left( 1 - \frac{\alpha}{2} \right)\) y \(\chi^{2}_{n-k} \left( \frac{\alpha}{2} \right)\) son los puntos de una distribución chi-cuadrado con \(n-k\) grados de libertad que dejan a su izquierda, respectivamente, una probabilidad \(1 - \frac{\alpha}{2}\) y \(\frac{\alpha}{2}\).

NotaBase de datos 1: Top 100 empresas andaluzas del transporte

Calculamos mediante la función confint los itnervalos de confianza que por defecto se obtienen al 95%.

Código
confint(modelo3)
                          2.5 %       97.5 %
(Intercept)         9.705970505 18.916492042
LIQUIDEZ_INMEDIATA -4.571915175  0.570100375
ENDEUDAMIENTO      -0.155767268 -0.039701979
EMPLEADOS          -0.049749216 -0.027200139
EBIT                0.003744536  0.006196014

Pero tambien, se puede obtener al 90%:

Código
confint(modelo3, level = 0.90)
                            5 %         95 %
(Intercept)        10.458027445 18.164435102
LIQUIDEZ_INMEDIATA -4.152059637  0.150244837
ENDEUDAMIENTO      -0.146290312 -0.049178935
EMPLEADOS          -0.047908040 -0.029041315
EBIT                0.003944704  0.005995846

Al 99%, o a cualquier otro nivel que se desee:

Código
confint(modelo3, level = 0.99)
                          0.5 %       99.5 %
(Intercept)         8.213626290 20.408836257
LIQUIDEZ_INMEDIATA -5.405055527  1.403240728
ENDEUDAMIENTO      -0.174572866 -0.020896381
EMPLEADOS          -0.053402753 -0.023546602
EBIT                0.003347332  0.006593218

Notesé que el nivel de confianza influye directamente en la amplitud del intervalo de confianza. Cuanto mayor es el nivel de confianza, mayor es la probabilidad de que el intervalo contenga el verdadero valor del parámetro, pero para conseguir esa mayor seguridad es necesario construir un intervalo más amplio. Por el contrario, cuanto menor es el nivel de confianza, menor es la certeza de que el intervalo incluya el parámetro poblacional y, en consecuencia, el intervalo resulta más estrecho. Así, un intervalo de confianza del 99 % será siempre más amplio que uno del 95 %, y este, a su vez, será más amplio que un intervalo del 90 %. En la práctica existe un compromiso entre precisión y confianza: niveles de confianza elevados proporcionan mayor seguridad, pero a costa de obtener estimaciones menos precisas al aumentar la amplitud del intervalo.

Además de proporcionar una medida de la precisión de las estimaciones, los intervalos de confianza permiten realizar una primera valoración sobre la relevancia de cada variable explicativa. En particular, resulta especialmente interesante comprobar si el intervalo de confianza de un coeficiente contiene o no el valor cero. Si el intervalo incluye el cero, significa que existen valores plausibles del parámetro para los cuales el efecto de la variable sobre la variable dependiente podría ser nulo. En consecuencia, con el nivel de confianza considerado no puede descartarse que dicha variable no tenga influencia sobre la variable explicada. Por el contrario, si el intervalo de confianza no contiene el cero, todos los valores plausibles del parámetro son positivos o negativos, lo que constituye una evidencia de que la variable ejerce un efecto significativo sobre la variable dependiente.

Esta forma de razonar está estrechamente relacionada con los contrastes de hipótesis. En la práctica es habitual complementar su interpretación mediante contrastes de hipótesis, que permiten tomar decisiones de forma objetiva sobre la significación estadística de cada coeficiente.

2.5 Contrastes de hipótesis acerca de los parámetros del modelo

En el apartado anterior se han construido intervalos de confianza para los coeficientes del modelo. Sin embargo, en muchas ocasiones el investigador desea responder a preguntas concretas sobre los parámetros estimados. Por ejemplo:

  • ¿Influye realmente el endeudamiento sobre la rentabilidad de las empresas?
  • ¿el endeudamiento y la liquidez tienen el mismo efecto?
  • ¿el IBEX35 replica exactamente al SP500?

Todas estas cuestiones pueden formularse como contrastes de hipótesis, cuya formulación general se presenta a continuación. Para ello, lo primero es formular la hipótesis en forma de restricción.

2.5.1 Estadístico general de contraste

Una restricción lineal consiste en imponer una determinada condición sobre uno o varios parámetros del modelo. Por ejemplo, las preguntas anteriores se podrían formular en forma de restricción de la siguiente manera:

NotaBase de datos 1: Top 100 empresas andaluzas del transporte

\[ROA_i=\beta_0+\beta_1LEV_i+\beta_2LIQ_i+u_i\]

  • ¿Influye realmente el endeudamiento sobre la rentabilidad de las empresas? \[ \beta_1=0\]
  • ¿el endeudamiento y la liquidez tienen el mismo efecto? \[ \beta_1=\beta_2\]
TipBase de datos 2: El IBEX35

\[ IBEX35_t=\beta_0+\beta_1SP500_t+\beta_2EUROSTOXX50_t+u_t \] - ¿el IBEX replica exactamente al SP500? \[ \beta_1=1\]

Este conjunto de restricciones se puede resumir planteando una hipótesis nula del tipo:

\[ H_{0}: R \beta = r \]

donde \(R\) es la matriz de restricciones que tiene tantas filas como restricciones tenga el modelo (\(q\)) y tantas columnas como parámetros (\(k\)). Cada valor \(a_{qk}\) toma el valor 0 si el parámetro \(k\) no está afectado por la restricción \(q\), y en el caso de que sí lo esté, toma el coeficiente correspondiente:

\[ R_{q \times k} = \begin{pmatrix} a_{11} & a_{12} & \dots & a_{1k} \\ a_{21} & a_{22} & \dots & a_{2k} \\ \vdots & \vdots & \ddots & \vdots \\ a_{q1} & a_{q2} & \dots & a_{qk} \end{pmatrix} \]

y \(r\) es el vector de resultados:

\[ r_{q \times 1} = \begin{pmatrix} b_{1} \\ b_{2} \\ \vdots \\ b_{q} \end{pmatrix} \]

NotaBase de datos 1: Top 100 empresas andaluzas del transporte

\[ROA_i=\beta_0+\beta_1LEV_i+\beta_2LIQ_i+u_i\]

Suponiendo que queremos analizar conjuntamente ambas hipótesis \(\beta_1=0\) y \(\beta_1=\beta_2\), se reescribiría como \(\beta_1=0\) y \(\beta_1-\beta_2=0\) y la matriz de restricciones se definiria como: \[ R= \begin{pmatrix} 0 & 1 & 0 \\ 0 & 1 & -1 \end{pmatrix} \] y \(r\) \[ r= \begin{pmatrix} 0 \\ 0 \end{pmatrix} \]

TipBase de datos 2: El IBEX35

\[ IBEX35_t=\beta_0+\beta_1SP500_t+\beta_2EUROSTOXX50_t+u_t \] Suponiendo que queremos analizar \(\beta_1=1\) \[ R= \begin{pmatrix} 0 & 1 & 0 \end{pmatrix} \] y \(r\) \[ r=1 \]

Una vez establecidas la matriz de restricciones y el vector de resultados, se obtiene el estadístico experimental a partir de la distribución:

\[ \left( R \widehat{\beta} - R \beta \right)^{t} \cdot \frac{\left[ R \left( X^{t} X \right)^{-1} R^{t} \right]^{-1}}{q \cdot \widehat{\sigma}^{2}} \cdot \left( R \widehat{\beta} - R \beta \right) \sim F_{q,n-k} \]

De manera que rechazaremos la hipótesis nula al nivel de significación \(\alpha\) si:

\[ \left( R \widehat{\beta} - r \right)^{t} \cdot \frac{\left[ R \left( X^{t} X \right)^{-1} R^{t} \right]^{-1}}{q \cdot \widehat{\sigma}^{2}} \cdot \left( R \widehat{\beta} - r \right) > F_{q,n-k} (1 - \alpha) \]

donde \(F_{q,n-k} (1 - \alpha)\) es el cuantil de la distribución \(F\) de Snedecor con \(q\) y \(n-k\) grados de libertad.

NotaBase de datos 1: Top 100 empresas andaluzas del transporte

Partiendo del modelo: \[ROA_i=\beta_0+\beta_1LEV_i+\beta_2LIQ_i+u_i\]

para contrastar conjuntamente \(\beta_1=0\) y \(\beta_1-\beta_2=0\), obtenemos previamente:

Código
b <- coef(modelo)
X <- model.matrix(modelo)
sigma2 <- summary(modelo)$sigma^2
R <- rbind(
  c(0, 1, 0),
  c(0, 1, -1)
)
r <- c(0,0)
q <- nrow(R)

Y, a partir de ello, se calcula el estadístico:

Código
Fexp <-
t(R %*% b - r) %*%
solve(R %*% solve(t(X)%*%X) %*% t(R)) %*%
(R %*% b - r) /
(q * sigma2)
Fexp
         [,1]
[1,] 16.88682

y se puede obtener el valor critico al 95%:

Código
gl1 <- q
gl2 <- df.residual(modelo)
qf(0.95, gl1, gl2)
[1] 3.090187

De manera que se concluye que se rechaza la hipótesis nula al 95% de confianza. Esto implica que los datos proporcionan evidencia suficiente para concluir que las restricciones impuestas no se verifican simultáneamente. En otras palabras, al menos una de las restricciones planteadas sobre los parámetros del modelo no es compatible con la información contenida en la muestra.

El contraste general permite evaluar cualquier conjunto de restricciones lineales sobre los parámetros del modelo, desde una única restricción hasta varias restricciones simultáneas. No obstante, en la práctica existen algunos casos particulares que se utilizan con mucha frecuencia. En estos casos, al sustituir la hipótesis correspondiente en la expresión general del estadístico de contraste, se obtienen formulaciones mucho más sencillas que facilitan tanto su interpretación como su aplicación.

2.5.2 Contraste de una única restricción lineal

TipBase de datos 2: El IBEX35

En el ejemplo financiero del IBEX 35 estimado a partir del siguiente modelo: \[ IBEX35_t=\beta_0+\beta_1SP500_t+\beta_2EUROSTOXX50_t+u_t \] Se ha formulado anteriormente la hipótesis de que el IBEX 35 presente el mismo comportamiento que el SP500, es decir que $ _1=1$ Este contraste constituye un caso particular del contraste general que se puede realizar con una expresión más simple.

De forma general, si queremos contrastar úna unica hipótesis del tipo:

\[ H_{0}: \beta_{i} = b_{i}, \quad i=1,\dots,k \] donde \(b_i\) es un valor conocido. En este caso \(q=1\), \(R = (0 \ \dots \ 1^{(i)} \ \dots \ 0)\) y \(r=b_{i}\). La distribución se simplifica como:

\[ \frac{\left( \widehat{\beta}_{i} - b_{i} \right)^{2}} {\widehat{\sigma}^{2} \cdot w_{i}} = \frac{\left( \widehat{\beta}_{i} - b_{i} \right)^{2}} {\widehat{var}(\hat{\beta}_i)}\sim F_{1,n-k}, \]

recordemos que \(w_{i}\) es el elemento \((i,i)\) de la matriz \((X^tX)^{-1}\), por lo que tambien se puede expresar como \(\widehat{var}(\hat{\beta}_i)\). Teniendo en cuenta que la raíz cuadrada de una \(F\) con 1 y \(n\) grados de libertad sigue una \(t\) de Student con \(n\) grados de libertad:

\[ \frac{\widehat{\beta}_{i} - b_{i}}{\widehat{\sigma} \cdot \sqrt{w_{i}}}=\frac{\widehat{\beta}_{i} - b_{i}}{\sqrt{\widehat{var}(\hat{\beta}_i)}} \sim t_{n-k} \]

Rechazaremos \(H_{0}\) si:

\[ \left| \frac{\widehat{\beta}_{i} - b_{i}}{\widehat{\sigma} \cdot \sqrt{w_{i}}} \right| > t_{n-k}\left(1 - \frac{\alpha}{2}\right) \]

TipBase de datos 2: El IBEX35

Si estimamos el modelo podemos obtener el estimador que acompaña a la variable Rend_SP500 que es igual a \(\beta_2=-0.2056\):

Código
datos <- read_excel("data/BD_IBEX.xlsx", sheet = "Datos")
modeloIBEX<- lm(Rend_IBEX ~ Rend_SP500+ Rend_EUROSTOXX50,
    data = datos
)
modeloIBEX

Call:
lm(formula = Rend_IBEX ~ Rend_SP500 + Rend_EUROSTOXX50, data = datos)

Coefficients:
     (Intercept)        Rend_SP500  Rend_EUROSTOXX50  
          0.7512           -0.2056            1.0371  

A partir de la matriz de varianzas-covarianzas podemos obtener la estimación de la varianza del estimador que sera \(\widehat{var}(\hat{\beta}_2)=0.012535714\)

Código
vcov(modelo)
                   (Intercept) ENDEUDAMIENTO LIQUIDEZ_INMEDIATA
(Intercept)          8.0246633  -0.100105777        -3.71756685
ENDEUDAMIENTO       -0.1001058   0.001332926         0.04341539
LIQUIDEZ_INMEDIATA  -3.7175669   0.043415389         2.73076377

Por lo que el contraste quedaría formulado de la siguiente manera: Hipótesis: H\(_0\): \(\beta_2=1\) Estadístico experimental: \(t_exp=\frac{-0.2056-1}{\sqrt{0.012535714}}=-10.7678\) Podemos calcular el valor teórico:

Código
gl <- df.residual(modelo)
alpha <- 0.05
t_teorico <- qt(1 - alpha/2, df = gl)
t_teorico
[1] 1.984723

Y, finalmente concluir, que dado que el estadístico experimental es mayor que el valor crítico se rechaza la hipótesis nula.

2.5.3 Contraste de significación individual

El contraste de significación individual que se utiliza habitualmente es simplemente un caso particular del contraste anterior. La diferencia está en el valor que asignamos a la restricción. En lugar de preguntarnos si un parámetro es igual a un valor concreto, nos preguntamos si es igual a cero. Este último contraste permite determinar si el efecto asociado a una variable explicativa es estadísticamente diferente de cero. Por tanto, el contraste de significación individual no es un contraste distinto del que acabamos de estudiar, sino el caso particular de una única restricción lineal en el que el valor hipotetizado del parámetro es cero. Es decir, la hipótesis nula quedaría formulada:

\[H_{0}: \beta_{i} = 0\] Si la hipótesis nula no se rechaza, no existe evidencia estadística suficiente para afirmar que la variable explicativa tiene un efecto distinto de cero sobre la variable dependiente, una vez controlado el efecto del resto de variables del modelo. Por el contrario, si la hipótesis nula se rechaza, puede concluirse que dicha variable contribuye de forma significativa a explicar la variable dependiente.

TipBase de datos 2: El IBEX35

En el caso anterior, si queremos contrastar que \(\beta_2=0\), partimos de los valores que hemos obtenido anteriormente para el estimador \(\beta_2=-0.2056\) y su varianza, formulamos el contraste de la siguiente manera: Hipótesis: H\(_0\): \(\beta_2=0\) Estadístico experimental: \(t_exp=\frac{-0.2056}{\sqrt{0.012535714}}=-1.837\) Podemos calcular el valor teórico al 95% de confianza y concluir dado que el valor absoluto del estadístico experimental es menor que el valor crítico no se puede rechazar la hipótesis nula.

Código
gl <- df.residual(modelo)
alpha <- 0.05
t_teorico <- qt(1 - alpha/2, df = gl)
t_teorico
[1] 1.984723

Sin embargo, si obtenemos el valor critico al 90% de confianza, en ese caso el valor absoluto del estadístico experimental es mayor que el valor crítico por lo que se rechaza la hipótesis nula.

Código
gl <- df.residual(modelo)
alpha <- 0.1
t_teorico <- qt(1 - alpha/2, df = gl)
t_teorico
[1] 1.660715

En la práctica, los programas estadísticos no suelen comparar directamente el estadístico experimental con el valor crítico, sino que proporcionan el p-valor asociado al contraste.

Concepto de p-valor

El p-valor representa la probabilidad de obtener, bajo la hipótesis nula, un valor del estadístico de contraste tan extremo como el observado en la muestra. Por tanto, cuanto menor sea el p-valor, mayor será la evidencia que los datos proporcionan en contra de la hipótesis nula. Otra forma de interpretar el p-valor consiste en considerarlo como el menor nivel de significación que habría que elegir para rechazar la hipótesis nula, dada la realización muestral del estadístico. Esta interpretación permite establecer una regla de decisión que no depende de fijar previamente un único nivel de significación.

Si el contraste es a dos colas, el valor-p es dos veces el área de la realización muestral del estadístico en valor absoluto, en la distribución de éste bajo la hipótesis nula. Es decir:

\[ \text{valor-}p = 2 \, Pr(t_j > |t_j^m| \,/\, H_0) \]

Si el contraste es a una cola, el valor-p es el área a la derecha de la realización muestral del estadístico en valor absoluto, en la distribución de éste bajo la hipótesis nula. Es decir:

\[ \text{valor-}p = Pr(t_j > t_j^m \,/\, H_0) \]

En cualquier caso, a mayor valor-p menor la evidencia contra la hipótesis nula, y por el contrario, a menor valor-p, mayor evidencia contra la hipótesis nula.

Regla de decisión:
Rechazar la hipótesis nula si el valor-p es menor que el nivel de significación elegido, y no rechazarla en caso contrario.

PrecauciónError habitual en la interpretación del p-valor

No debe interpretarse el p-valor como la probabilidad de que la hipótesis nula sea verdadera. El p-valor se calcula suponiendo que la hipótesis nula es cierta y mide la compatibilidad de los datos observados con dicha hipótesis.

Por ejemplo, si un contraste presenta un p-valor de (0.03), la hipótesis nula se rechazaría al 5 %, ya que (0.03<0.05), pero no al 1 %, ya que (0.03>0.01). De este modo, el p-valor proporciona más información que una simple decisión de rechazo o no rechazo, ya que permite valorar hasta qué nivel de significación los datos permiten rechazar la hipótesis nula.

TipBase de datos 2: El IBEX35

En R podemos usar la función summary(modelo)para ver un resumen del modelo estimado y nos facilita directamente los estimadores, su desviación típica, el valor del estadístico experimental del contraste de signficación individual y su p valor correspondiente.

Código
datos <- read_excel("data/BD_IBEX.xlsx", sheet = "Datos")
modeloIBEX <- lm(
    Rend_IBEX ~ Rend_SP500+ Rend_EUROSTOXX50,
    data = datos
)
summary(modeloIBEX)

Call:
lm(formula = Rend_IBEX ~ Rend_SP500 + Rend_EUROSTOXX50, data = datos)

Residuals:
    Min      1Q  Median      3Q     Max 
-5.5865 -1.5595  0.3368  1.4755  6.5878 

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)        0.7512     0.3128   2.402   0.0191 *  
Rend_SP500        -0.2056     0.1120  -1.837   0.0706 .  
Rend_EUROSTOXX50   1.0371     0.1072   9.678 2.05e-14 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.547 on 68 degrees of freedom
Multiple R-squared:  0.7292,    Adjusted R-squared:  0.7212 
F-statistic: 91.54 on 2 and 68 DF,  p-value: < 2.2e-16

La interpretación de las columnas que se obtiene con summary(modelo) es la siguiente:

  • Estimate: recoge el valor estimado del coeficiente \(\widehat{\beta}_i\).
  • Std. Error: recoge el error estándar del estimador y, por tanto, una medida de la incertidumbre asociada a la estimación.
  • t value: es el estadístico experimental del contraste de significación individual, que permite contrastar \(H_0:\beta_i=0\).
  • Pr(>|t|): es el p-valor asociado a dicho contraste.

R añade además una columna de significación mediante asteriscos. En nuestro ejemplo, el intercepto aparece acompañado de un asterisco (* ), el rendimiento del SP500 aparece acompañado de un punto (.) y el rendimiento del EuroStoxx 50 aparece acompañado de tres asteriscos (***).

Estos símbolos constituyen una forma rápida de identificar el nivel de significación estadística de cada coeficiente. Por defecto, R utiliza la siguiente clasificación:

Símbolo p-valor Interpretación
*** (p<0.001) Significativo al 0,1 %
** (p<0.01) Significativo al 1 %
* (p<0.05) Significativo al 5 %
. (p<0.10) Significativo al 10 %
(p) No significativo

Por tanto, en nuestro ejemplo, el intercepto es significativo al 5 %, mientras que el coeficiente asociado al SP500 presenta evidencia de significación al 10 %, pero no al 5 %. Por su parte, el coeficiente asociado al EuroStoxx 50 es altamente significativo, ya que su p-valor es inferior al 0,1 %.

2.5.4 Contraste de significación global

El contraste de significación global permite determinar si, consideradas conjuntamente, las variables explicativas del modelo aportan información estadísticamente significativa para explicar la variable dependiente. Por tanto, responde a una pregunta diferente de la planteada en el contraste de significación individual. Mientras que el contraste (t) permite analizar si una variable concreta es significativa, el contraste global permite determinar si el conjunto de variables explicativas, tomado en su totalidad, tiene capacidad explicativa.

La hipótesis nula plantea que ninguno de los coeficientes asociados a las variables explicativas es diferente de cero:

\[ H_{0}: \beta_{2} = \beta_{3} = \cdots = \beta_{k} = 0, \quad H_{1}: \exists \, \beta_{i} \neq 0 \]

Es importante observar que la hipótesis alternativa no afirma que todos los coeficientes sean diferentes de cero. Únicamente establece que existe al menos uno que presenta un efecto estadísticamente distinto de cero.

Este contraste es un caso particular del contraste general de restricciones lineales (H\(_0\beta\)=r), en el que se imponen simultáneamente (\(k-1\)) restricciones sobre los coeficientes de las variables explicativas. Al sustituir estas restricciones en el estadístico general se obtiene el conocido estadístico (F) de significación global:

\[ F_{exp} = \frac{\frac{SCE}{k-1}}{\frac{SCR}{n-k}} \]

donde \(SCE\) es la suma de cuadrados explicada y \(SCR\) la suma de cuadrados de los residuos.

El estadístico compara la variabilidad explicada por el modelo con la variabilidad que permanece sin explicar. Si el modelo no aporta capacidad explicativa, ambas cantidades serán relativamente similares y el estadístico (F) tomará un valor reducido. Por el contrario, si las variables explicativas permiten explicar una parte importante de la variabilidad de la variable dependiente, el numerador será grande en relación con el denominador y el estadístico (F) tomará un valor elevado.

Por tanto, para un nivel de significación (\(\alpha\)), la regla de decisión es:

\[F_{exp}> F_{k-1,n-k}(1-\alpha)\] Si el estadístico experimental supera el valor crítico, existe evidencia suficiente para rechazar la hipótesis de que todos los coeficientes de las variables explicativas son simultáneamente iguales a cero. En consecuencia, se concluye que el modelo es globalmente significativo.

TipBase de datos 2: El IBEX35

Al utilizar la función summary() sobre un modelo estimado mediante lm(), R proporciona directamente el estadístico (F) del contraste de significación global, junto con sus grados de libertad y el p-valor asociado. En este caso \(F_{exp}=91.54\) y el p valor toma un valor proximo a cero (\(2.2\times10^{-16}\))

Código
datos <- read_excel("data/BD_IBEX.xlsx", sheet = "Datos")
modeloIBEX <- lm(
    Rend_IBEX ~ Rend_SP500+ Rend_EUROSTOXX50,
    data = datos
)
summary(modeloIBEX)

Call:
lm(formula = Rend_IBEX ~ Rend_SP500 + Rend_EUROSTOXX50, data = datos)

Residuals:
    Min      1Q  Median      3Q     Max 
-5.5865 -1.5595  0.3368  1.4755  6.5878 

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)        0.7512     0.3128   2.402   0.0191 *  
Rend_SP500        -0.2056     0.1120  -1.837   0.0706 .  
Rend_EUROSTOXX50   1.0371     0.1072   9.678 2.05e-14 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.547 on 68 degrees of freedom
Multiple R-squared:  0.7292,    Adjusted R-squared:  0.7212 
F-statistic: 91.54 on 2 and 68 DF,  p-value: < 2.2e-16

Por tanto, esta información permite plantear directamente el contraste:

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

frente a

\[ H_1:\text{al menos uno de los coeficientes es diferente de cero}. \] Así, si el p-valor asociado al estadístico (F) es inferior al 5 %, concluiremos que el modelo es globalmente significativo al 5 %.

La tabla ANOVA

El contraste global puede interpretarse a partir de la descomposición de la variabilidad de la variable dependiente. Cuando el modelo incluye término independiente, la suma de cuadrados total puede descomponerse como \(SCT=SCE+SCR\). La primera parte corresponde a la variabilidad explicada por el modelo y la segunda a la variabilidad que permanece en los residuos. La tabla ANOVA resume esta descomposición:

Fuente de variación Suma de cuadrados Gl Medias cuadráticas
Explicada \(SCE = \widehat{\beta}^t X^t y - n \overline{Y}^2\) \(k-1\) \(SCE/(k-1)\)
Residuos \(SCR = y^t y - \widehat{\beta}^t X^t y\) \(n-k\) \(SCR/(n-k)\)
Total \(SCT = y^t y - n \overline{Y}^2\) \(n-1\)

El estadístico (F) se obtiene, por tanto, como el cociente entre la media cuadrática explicada y la media cuadrática residual:

\[ \frac{SCE/(k-1)} {SCR/(n-k)}. \]

Relación con el coeficiente de determinación

Teniendo en cuenta que \(R^2=\frac{SCE}{SCT}\), otra forma equivalente de expresar la región de rechazo es:

\[ \frac{\frac{R^{2}}{k-1}}{\frac{1 - R^{2}}{n-k}} > F_{k-1,n-k}(1-\alpha) \]

Esta expresión permite establecer una conexión entre dos conceptos que hasta ahora se han presentado por separado. El (\(R^2\)) mide qué proporción de la variabilidad de la variable dependiente es explicada por el modelo, mientras que el contraste (F) permite determinar si esa capacidad explicativa es estadísticamente significativa.

Por tanto, un (\(R^2\)) elevado no implica automáticamente que el modelo sea estadísticamente significativo, ni un (\(R^2\)) reducido implica necesariamente que el modelo no sea significativo. La significación global depende también del tamaño de la muestra y del número de variables incluidas en el modelo.

2.5.5 Estimador de mínimos cuadrados restringidos

El contraste general de hipótesis permite determinar si un conjunto de restricciones lineales sobre los parámetros del modelo es compatible con la información contenida en la muestra. Si no se rechaza la hipótesis nula \(H_0: R\beta=r\), podemos considerar razonable incorporar dichas restricciones al proceso de estimación. En este caso, en lugar de estimar los parámetros únicamente mediante mínimos cuadrados ordinarios (MCO), podemos utilizar el estimador de mínimos cuadrados restringidos (MCR).

La idea es sencilla: mientras que los MCO buscan los valores de los parámetros que minimizan la suma de cuadrados de los residuos sin imponer restricciones adicionales, los mínimos cuadrados restringidos buscan los valores que minimizan dicha suma de cuadrados entre aquellos que cumplen las restricciones planteadas.

El estimador de mínimos cuadrados restringidos viene dado por:

\[ \widehat{\beta}_{R} = \widehat{\beta} + (X^tX)^{-1} R^t \left[ R (X^tX)^{-1} R^t \right]^{-1} \cdot (r - R \widehat{\beta}) \]

Cuando las restricciones son ciertas, el estimador restringido presenta algunas propiedades interesantes. Es un estimador lineal e insesgado y, además, tiene una varianza menor o igual que la del estimador MCO. La incorporación de información válida sobre los parámetros permite, por tanto, obtener estimaciones más precisas.

Sin embargo, esta mejora tiene un coste: al imponer restricciones, estamos limitando el conjunto de valores posibles de los parámetros. Por ello, la suma de cuadrados de los residuos del modelo restringido nunca puede ser inferior a la del modelo no restringido:

\[ SCR_R\geq SCR. \]

En consecuencia, cuando el modelo incluye término independiente:

\[ R_R^2\leq R^2. \] Es decir, imponer restricciones no puede mejorar el ajuste del modelo en términos de (R^2). Esto no significa que el modelo restringido sea peor. Si las restricciones son correctas, podemos aceptar una pequeña pérdida de ajuste a cambio de obtener estimaciones con menor varianza.

Por tanto, es importante distinguir entre dos preguntas:

  • ¿Son compatibles las restricciones con los datos? Esta es la pregunta que responde el contraste general (F).
  • ¿Qué estimaciones obtenemos si imponemos dichas restricciones? Esta es la pregunta que responde el estimador de mínimos cuadrados restringidos.

En este sentido, el contraste general constituye un paso previo fundamental para decidir si tiene sentido incorporar las restricciones al modelo.

Una vez presentados los estimadores MCR, se puede reformular el contraste general para realizarse fácilmente sin necesidad de construir explícitamente la matriz (R) y el vector (r). Para ello, en R usamos la función linearHypothesis() del paquete car que permite especificar directamente las restricciones que queremos contrastar y proporciona el contraste (F), sus grados de libertad y el p-valor asociado.

La lógica del contraste consiste en comparar el ajuste del modelo restringido con el del modelo no restringido (o modelo original). Al introducir restricciones, el modelo restringido dispone de un conjunto menor de valores posibles para los parámetros y, por tanto, su suma de cuadrados de los residuos no puede ser menor que la del modelo no restringido. La cuestión que plantea el contraste es, por tanto, si el aumento de la suma de cuadrados de los residuos que se produce al imponer las restricciones es suficientemente pequeño como para considerar que dichas restricciones son compatibles con los datos, o, por el contrario, si dicho aumento es demasiado elevado como para mantenerlas.

De esta forma, el estadístico experimental del contraste general se puede reescribir como:

\[F=\frac{\frac{SCR_R-SCR}{q}}{\frac{SCR}{n-k}}\] donde:

  • \(SCR_R-SCR\) mide cuánto empeora el ajuste al imponer las restricciones;
  • \(q\) es el número de restricciones;
  • \(SCR/(n−k)\) es la estimación de la varianza de la perturbación en el modelo no restringido.
NotaBase de datos 1: Top 100 empresas andaluzas del transporte

Partiendo del modelo: ROA_i=_0+_1LEV_i+_2LIQ_i+u_i

para contrastar conjuntamente $ _1=0$ y $ _1-_2=0$ se puede usar la función linearHypothesis del paquete car que no exige construir la matriz de restricciones ni resultados.

Código
linearHypothesis(modelo,
                 c("ENDEUDAMIENTO = 0",
                   "ENDEUDAMIENTO-LIQUIDEZ_INMEDIATA = 0"))

Linear hypothesis test:
ENDEUDAMIENTO = 0
ENDEUDAMIENTO - LIQUIDEZ_INMEDIATA = 0

Model 1: restricted model
Model 2: ROA ~ ENDEUDAMIENTO + LIQUIDEZ_INMEDIATA

  Res.Df    RSS Df Sum of Sq      F    Pr(>F)    
1     99 4549.5                                  
2     97 3374.6  2      1175 16.887 5.096e-07 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

2.6 Explotación del modelo

Una vez estimado y validado el modelo, podemos utilizarlo para explotar la información que proporciona. En esta fase, el modelo deja de utilizarse únicamente para analizar las relaciones existentes entre las variables y pasa a emplearse para obtener resultados sobre situaciones concretas.

Entre las principales aplicaciones se encuentran la predicción de la variable dependiente para determinados valores de las variables explicativas y el análisis de la permanencia estructural del modelo, que permitirá comprobar si las relaciones estimadas se mantienen cuando cambia el periodo, el grupo de empresas o las condiciones económicas.

2.6.1 Predicción

La predicción permite utilizar el modelo estimado para obtener un valor de la variable dependiente cuando conocemos los valores que toman las variables explicativas. Esta predicción puede referirse al valor esperado de la variable dependiente o a una realización individual de dicha variable.

Supongamos que queremos realizar una predicción para una nueva observación cuyos valores de las variables explicativas vienen recogidos en el vector:

\[ x_0^t=(1,X_{02},X_{03},\dots,X_{0k}). \]

A partir del modelo estimado:

\[ \widehat{Y}=X\widehat{\beta}, \]

podemos obtener una predicción puntual mediante:

\[ \widehat{Y}_0=x_0^t\widehat{\beta}. \]

Esta expresión permite obtener tanto una estimación puntual del valor esperado de (Y_0) condicionado a (x_0),

\[ \widehat{E(Y_0|x_0)}=x_0^t\widehat{\beta}, \]

como una predicción puntual de una futura realización de (Y_0).

La diferencia entre ambas situaciones será importante cuando construyamos intervalos. En el primer caso queremos conocer dónde se encuentra el valor medio esperado de (Y) para unas determinadas características, mientras que en el segundo queremos determinar en qué intervalo podría encontrarse una observación individual.

2.6.2 Predicción mediante intervalos

La predicción puntual proporciona un único valor, pero no informa sobre la incertidumbre asociada a dicha predicción. Dado que los parámetros del modelo son estimados a partir de una muestra y que existe una perturbación aleatoria, la predicción está sujeta a incertidumbre.

Por ello, resulta conveniente acompañar la predicción puntual de un intervalo. Es necesario distinguir dos situaciones:

  • Intervalo de confianza para el valor esperado de (Y): proporciona un intervalo para (E(Y_0|x_0)), es decir, para el valor medio de la variable dependiente cuando las variables explicativas toman los valores (x_0).

  • Intervalo de predicción para una observación individual de (Y): proporciona un intervalo en el que esperamos encontrar una realización concreta de (Y_0).

El intervalo de confianza para el valor esperado de (Y) viene dado por:

\[ x_0^t\widehat{\beta} \pm t_{n-k}\left(1-\frac{\alpha}{2}\right) \widehat{\sigma} \sqrt{x_0^t(X^tX)^{-1}x_0}. \]

Por su parte, el intervalo de predicción para una observación individual de (Y) es:

\[ x_0^t\widehat{\beta} \pm t_{n-k}\left(1-\frac{\alpha}{2}\right) \widehat{\sigma} \sqrt{ 1+x_0^t(X^tX)^{-1}x_0 }. \]

La diferencia entre ambos intervalos se encuentra en el término (1) que aparece en el intervalo de predicción para una observación individual. Este término recoge la incertidumbre asociada a la perturbación aleatoria de la nueva observación. Por este motivo, el intervalo de predicción es siempre más amplio que el intervalo de confianza para el valor esperado, manteniendo el mismo nivel de confianza.

En términos intuitivos, el intervalo de confianza responde a la pregunta:

¿Entre qué valores se encuentra el valor medio esperado de (Y) para unas determinadas características?

Mientras que el intervalo de predicción responde a:

¿Entre qué valores puede encontrarse una nueva observación individual de (Y) con esas características?

NotaBase de datos 1: Top 100 empresas andaluzas del transporte

La distinción entre la predicción para el valor individual o para el valor esperado, resulta especialmente relevante en aplicaciones financieras y contables. Por ejemplo, para el modelo que explica el ROA de un conjunto de empresas a partir de su endeudamiento y liquidez, podemos utilizarlo para estimar el ROA medio esperado para empresas con unas determinadas características o, alternativamente, para predecir el ROA de una empresa concreta.

En R, ambas predicciones pueden obtenerse directamente mediante la función predict(). Por ejemplo, suponemos una empresa nueva con un ENDEUDAMIENTO de 15 y una LIQUIDEZ_INMEDIATA DE 3

Código
nueva_empresa <- data.frame(
  ENDEUDAMIENTO = 15,
  LIQUIDEZ_INMEDIATA = 3
)

Se puede obtener la predicción por intervalo del valor individual:

Código
predict(
  modelo,
  newdata = nueva_empresa,
  interval = "confidence"
)
       fit      lwr      upr
1 14.28275 7.552151 21.01335

o el intervalo de confianza para el valor esperado:

Código
predict(
  modelo,
  newdata = nueva_empresa,
  interval = "prediction"
)
       fit       lwr      upr
1 14.28275 0.7794155 27.78608

La amplitud de ambos intervalos depende del nivel de confianza elegido y de la incertidumbre asociada a la estimación. En particular, las predicciones serán generalmente más precisas para valores de las variables explicativas próximos a los observados en la muestra y menos precisas cuando se realizan para características alejadas de las utilizadas para estimar el modelo.

2.6.3 Permanencia estructural

Otra de las aplicaciones del modelo estimado consiste en analizar su permanencia estructural, es decir, comprobar si la relación entre la variable dependiente y las variables explicativas se mantiene estable cuando cambia el periodo de análisis o el grupo de observaciones considerado.

Al utilizar el modelo para realizar predicciones sobre observaciones que no pertenecen a la muestra utilizada para su estimación, estamos suponiendo implícitamente que la relación estimada se mantiene. Por ejemplo, si estimamos una relación entre el rendimiento del IBEX 35 y los rendimientos del SP500 y del EuroStoxx 50 para un determinado periodo, estamos suponiendo que los coeficientes estimados siguen siendo válidos para otro periodo.

La cuestión que se plantea es, por tanto, si los parámetros del modelo son estables o, por el contrario, existe evidencia de que la relación entre las variables ha cambiado.

Una primera aproximación intuitiva consiste en comparar las predicciones realizadas por el modelo con los valores observados fuera de la muestra. Así, para una nueva observación caracterizada por (\(x_0\)), podemos obtener una predicción y su correspondiente intervalo de predicción. Si el valor observado se sitúa dentro del intervalo para \(Y\) dado \(x_0\), se dice que los resultados son compatibles con el comportamiento previsto por el modelo. Sin embargo, esta comprobación debe interpretarse con cautela: que una observación individual se encuentre dentro del intervalo no constituye, por sí mismo, un contraste formal de permanencia estructural, es solo una primera idea intuitiva.

Test de Chow

Para analizar formalmente si los parámetros se mantienen constantes entre dos grupos de observaciones, podemos comparar el modelo estimado sobre el conjunto de datos con los modelos estimados separadamente para cada grupo.

Supongamos, por ejemplo, que disponemos de información sobre empresas correspondiente a dos periodos y queremos comprobar si la relación entre ROA, endeudamiento y liquidez es la misma en ambos periodos. La hipótesis nula de permanencia estructural sería:

\[ H_0: \beta_{0}^{(1)}=\beta_{0}^{(2)},\quad \beta_{1}^{(1)}=\beta_{1}^{(2)},\quad \ldots,\quad \beta_{k-1}^{(1)}=\beta_{k-1}^{(2)}. \]

Frente a la alternativa:

\[ H_1:\text{al menos uno de los parámetros es diferente}. \]

Una forma de realizar este contraste, cuando los grupos están definidos a priori, es mediante el contraste de Chow. La lógica del contraste es comparar la suma de cuadrados de los residuos del modelo restringido, en el que se supone que los parámetros son iguales para los dos grupos, con la suma de cuadrados de los residuos de los modelos no restringidos, en los que cada grupo tiene sus propios parámetros.

Si denominamos (SCR_P) a la suma de cuadrados de los residuos del modelo restringido o conjunto y (SCR_1) y (SCR_2) a las correspondientes a los modelos estimados por separado, el estadístico de Chow es:

\[ F= \frac{ \left[ SCR_P-(SCR_1+SCR_2) \right]/k }{ (SCR_1+SCR_2)/(n_1+n_2-2k) }. \]

El numerador mide cuánto empeora el ajuste cuando obligamos a que los dos grupos compartan los mismos parámetros. Si la diferencia entre el ajuste restringido y el no restringido es pequeña, no tendremos evidencia suficiente para rechazar la permanencia estructural. Si, por el contrario, la imposición de unos mismos parámetros provoca un aumento importante de la suma de cuadrados de los residuos, tendremos evidencia de un cambio estructural.

La hipótesis nula se rechaza cuando el estadístico experimental supera el valor crítico de la distribución (F) correspondiente o, de forma equivalente, cuando su p-valor es inferior al nivel de significación elegido. En ese caso, concluiremos que existen evidencias de que los parámetros no son estables entre los dos grupos analizados.

TipBase de datos 2: El IBEX35

Por ejemplo, podemos comprobar si la relación entre el IBEX, el SP500 y el EuroStoxx 50 se mantiene entre los primeros 36 y los últimos 36 meses:

Código
modeloIBEX <- lm(
  Rend_IBEX ~ Rend_SP500 + Rend_EUROSTOXX50,
  data = datos
)

sctest(
  modeloIBEX,
  type = "Chow",
  point = 36
)

    M-fluctuation test

data:  modeloIBEX
f(efp) = 1.2345, p-value = 0.2586

Como el p valor es igual a 0.2586, no podemos rechazar la hipótesis nula de que los parámetros son iguales entre los primeros y los ultimos 36 meses al 90%, 95% y 99% de confianza.

El análisis anterior se ha planteado para series temporales, donde la permanencia estructural permite comprobar si los parámetros del modelo se mantienen estables a lo largo del tiempo. El test de Chow resulta especialmente apropiado cuando existe un punto de ruptura conocido que permite dividir la muestra temporal en dos periodos.

En el caso de datos transversales, la lógica es similar, aunque no existe una dimensión temporal que permita dividir la muestra en periodos. En este caso, puede ser de interés comprobar si la relación estimada es la misma para distintos grupos de individuos o empresas. Por ejemplo, podríamos preguntarnos si el modelo que explica el ROA presenta los mismos parámetros para empresas grandes y pequeñas, para empresas pertenecientes a distintos sectores o para empresas con diferentes características financieras.

Para ello, se pueden estimar modelos que permitan que los parámetros varíen entre los grupos y plantear posteriormente un contraste general de restricciones lineales.

2.7 Prácticas resueltas

Obtención de los estimadores mediante el sumatorio de las variables

A partir de los datos del modelo de la rentabilidad, se tienen los siguientes sumatorios:

\[\sum ROA_i=768,54; \sum LEV_i=6379,76;\sum LIQ_i=34.707\] \[\sum LEV_i^2=461145,61;\sum LIQ_i^2=38.468; \sum LEV_i\times LIQ_i=1353,61\] \[\sum ROA_i \times LEV_i=41060,34; \sum ROA_i \times LIQ_i=389,47; \sum ROA_i^1=10.456,08\] Con estos datos se pueden construir las siguientes matrices:

\[X^{t} X = \left( \begin{array}{cccc} 100 & 6379,76 & 34,707 \\ 6379,76 & 461145,61 & 1353,61 \\ 34,707 & 1353,61 & 38,468 \\ \end{array} \right),\] y \[(X^{t} X)^{-1} = \left( \begin{array}{cccc} 0,23066 &-0,00288& -0,10686\\ -0,00288& 0,00004& 0,00125\\ -0,10686& 0,00125& 0,07849\\ \end{array} \right),\]

\[X^{t} y = \left( \begin{array}{c} 768,54 \\ 41060,34\\ 389,47\\ \end{array} \right).\] Se puede calcular la inversa de la matriz \(X'X\) y se obtendrán los siguientes estimadores que coinciden con los obtenidos mediante la función lm. \[\hat{\beta} = \left( \begin{array}{c} 17,5053 \\ -0,1522\\ -0,3133\\ \end{array} \right).\]

Función de producción. Importancia de una buena especificación.

Vamos a trabajar con la base de datos de William H (2003) denominada `BD_FUNCIONPRODUCCION’ para realizar una práctica cuyo objetivo es introducir la estimación en R y comprender la importancia de realizar una adecuada especificación del modelo econométrico.

Código
datos= read_excel('data/BD_FUNCIONPRODUCCION.xlsx')

Esta base de datos procede del estudio de Solow (1957) en relación con la función de producción. Contamos con información sobre la producción agregada por trabajador/hora (q), un ratio sobre el capital agregado/trabajo (k) y un índice tecnológico (A).

Se pide:

  1. Obtener los estadísticos descriptivos básicos:

Para ello se usa la función summary:

Código
summary(datos)
      year            q               k               A        
 Min.   :1909   Min.   :0.616   Min.   :2.060   Min.   :0.983  
 1st Qu.:1919   1st Qu.:0.729   1st Qu.:2.470   1st Qu.:1.142  
 Median :1929   Median :0.874   Median :2.630   Median :1.226  
 Mean   :1929   Mean   :0.906   Mean   :2.631   Mean   :1.324  
 3rd Qu.:1939   3rd Qu.:1.034   3rd Qu.:2.810   3rd Qu.:1.514  
 Max.   :1949   Max.   :1.296   Max.   :3.330   Max.   :1.850  
  1. Obtener la matriz de correlaciones:

Para ello, se usa la función cor:

Código
cor(datos)
          year         q         k         A
year 1.0000000 0.9736281 0.4831810 0.9442301
q    0.9736281 1.0000000 0.3654400 0.9874635
k    0.4831810 0.3654400 1.0000000 0.2190149
A    0.9442301 0.9874635 0.2190149 1.0000000
  1. Representar un gráfico de la nube de puntos entre cada una de las variables explicativas y la explicada:
Código
ggplot(datos, aes(x = k, y = q)) +
  geom_point(color = "blue") +
  labs(title = "q vs k", x = "k", y = "q") +
  theme_minimal()

Código
ggplot(datos, aes(x = A, y = q)) +
  geom_point(color = "red") +
  labs(title = "q vs A", x = "A", y = "q") +
  theme_minimal()

  1. Estimar el modelo que explique la producción agregada por trabajador/hora en función del ratio sobre el capital agregado/trabajo (\(k\)) y el índice tecnológico (\(A\)), es decir: \[q_t=\beta_1+\beta_2k_t+\beta_3A_t+u_t\].

Para estimar dicho modelo usamos la función lm. Se puede obtener los principales resultados de la estimación mediante la función summary:

Código
modelo1=lm(q~k+A, data=datos)
summary(modelo1)

Call:
lm(formula = q ~ k + A, data = datos)

Residuals:
       Min         1Q     Median         3Q        Max 
-0.0198686 -0.0031439 -0.0000566  0.0026473  0.0249985 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.295445   0.011138  -26.53   <2e-16 ***
k            0.095625   0.003986   23.99   <2e-16 ***
A            0.717229   0.004914  145.95   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.008112 on 38 degrees of freedom
Multiple R-squared:  0.9985,    Adjusted R-squared:  0.9984 
F-statistic: 1.23e+04 on 2 and 38 DF,  p-value: < 2.2e-16

Así, se observa que el modelo estimado tiene la siguiente expresión: \[\hat{q}_t=-0.295445+0.0956250k_t+0.717229A_t\]

  1. Interprete los coeficiente estimados:
  • El termino independiente (-0.295445) representa el valor esperado de producción agregada por trabajador/hora (\(q\)) cuando tanto el capital agregado por trabajador (\(k\)) como el índice tecnológico (\(A\)) toman el valor 0. En este contexto económico, un capital agregado nulo y un índice tecnológico nulo no son realistas, así que el término independiente no tiene una interpretación económica directa, sino que sirve como punto de referencia para la ecuación de regresión.

  • El estimador asociado a la variable \(k\) tiene la siguiente interpretación: un aumento de 1 unidad en el capital por trabajador se asocia con un aumento promedio de 0.0956 unidades en la producción por trabajador/hora, manteniendo A constante.

  • El estimador asociado a la variable \(A\) tiene la siguiente interpretación: un aumento de 1 unidad en el índice tecnológico se asocia con un aumento promedio de 0.7172 unidades en la producción por trabajador/hora, manteniendo \(k\) constante.

Se observa que el efecto de la tecnología sobre la productividad es mucho mayor que el efecto del capital. Esto resalta la importancia de la tecnología como motor del crecimiento en la función de producción, lo que esta relacionado con los trabajos premiados con el Nobel de Economía en el año 2025. Véase https://www.nobelprize.org/uploads/2025/10/press-economicsciences2025-1.pdf

  1. Representa graficamente los residuos de la estimación anterior:

Para ello, vamos a guardar los residuos de dicha estimación y a representarlos graficamente:

Código
residuos1=resid(modelo1)
plot(datos$year, residuos1, type = "l", col = "blue", lwd = 2,
     xlab = "Año", ylab = "Residuos modelo 1",
     main = "Residuos de la regresión q ~ k + A")

Del modelo se pueden extraer tambien los valores estimados:

Código
q_estimada_modelo1<- fitted(modelo1)
Código
df <- data.frame(
  año = rep(datos$year, 2),
  valor = c(q_estimada_modelo1, datos$q),
 variable = rep(c("Variable estimada", "Variable observada"), each = nrow(datos))
)

ggplot(df, aes(x = año, y = valor, color = variable)) +
  geom_line(linewidth = 1) +
  labs(title = "Variable estimada vs observada", x = "Año", y = "Valor") +
  theme_minimal()

  1. Repite el análisis anterior, pero sin incorporar la variable indice tecnológico, que se ha comprobado que es una variable especialmente relevante en el modelo:
Código
modelo2=lm(q~k, data=datos)
summary(modelo2)

Call:
lm(formula = q ~ k, data = datos)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.17508 -0.14097 -0.09018  0.12166  0.38366 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)  0.31909    0.24120   1.323   0.1936  
k            0.22303    0.09097   2.452   0.0188 *
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.1897 on 39 degrees of freedom
Multiple R-squared:  0.1335,    Adjusted R-squared:  0.1113 
F-statistic: 6.011 on 1 and 39 DF,  p-value: 0.0188

A continuación, representamos los residuos del modelo junto con la variable \(A\) que recordemos que no ha sido incluida en el modelo:

Código
residuos2=resid(modelo2)
df <- data.frame(
  año = rep(datos$year, 2),
  valor = c(residuos2, datos$A),
 variable = rep(c("Residuos", "A"), each = nrow(datos))
)

ggplot(df, aes(x = año, y = valor, color = variable)) +
  geom_line(linewidth = 1) +
  labs(title = "Residuos de q~k y variable A", x = "Año", y = "Valor") +
  theme_minimal()

¿Encuentras algún patrón de comportamiento en los residuos? ¿A qué crees que puede deberse?

Obtención de los estimadores mediante el sumatorio de las variables

Se dispone de una muestra de \(n=8\) auditores. Para cada uno de ellos se conoce:

  • \(Y\): la nota obtenida en el examen a auditor.
  • \(X_1\): las horas de estudio dedicadas.
  • \(X_2\): la planta del edificio en la que vive el auditor.

La variable \(X_2\) no guarda ninguna relación causal con la nota obtenida: se incluye únicamente con fines didácticos, para comprobar qué ocurre con la bondad del ajuste cuando se incorpora al modelo una variable explicativa sin sentido económico. Los datos de partida son los siguientes:

Auditor \(Y\) \(X_1\) \(X_2\)
1 3.0 2 0
2 4.5 3 1
3 5.0 5 0
4 6.5 6 2
5 7.0 7 1
6 8.0 8 0
7 9.0 10 3
8 9.5 11 1

El ejercicio se resuelve sin código de R, obteniendo a mano, a partir de los sumatorios, todas las matrices y operaciones necesarias para estimar el modelo por mínimos cuadrados ordinarios y calcular su bondad del ajuste.

Vamos a estimar dos modelos: uno con las dos variables explicativas (\(X_1\) y \(X_2\)) y otro eliminando la variable “absurda” (\(X_2\)), para comparar su \(R^2\) y su \(R^2\) corregido.

Modelo 1: especificación completa\

\[Y_i=\beta_1+\beta_2X_{1i}+\beta_3X_{2i}+u_i\]

A partir de los datos de partida se obtienen las siguientes columnas auxiliares:

\(Y\) \(X_1\) \(X_2\) \(X_1^2\) \(X_2^2\) \(X_1X_2\) \(X_1Y\) \(X_2Y\) \(Y^2\)
3.0 2 0 4 0 0 6.0 0.0 9.00
4.5 3 1 9 1 3 13.5 4.5 20.25
5.0 5 0 25 0 0 25.0 0.0 25.00
6.5 6 2 36 4 12 39.0 13.0 42.25
7.0 7 1 49 1 7 49.0 7.0 49.00
8.0 8 0 64 0 0 64.0 0.0 64.00
9.0 10 3 100 9 30 90.0 27.0 81.00
9.5 11 1 121 1 11 104.5 9.5 90.25
\(\sum\) = 52.5 \(\sum\) = 52 \(\sum\) = 8 \(\sum\) = 408 \(\sum\) = 16 \(\sum\) = 63 \(\sum\) = 391 \(\sum\) = 61 \(\sum\) = 380.75

Con \(n=8\), resumimos las magnitudes necesarias:

\[ n=8 \quad \sum Y_i=52.5 \quad \sum X_{1i}=52 \quad \sum X_{2i}=8 \]

\[ \sum X_{1i}^2=408 \quad \sum X_{2i}^2=16 \quad \sum X_{1i}X_{2i}=63 \]

\[ \sum X_{1i}Y_i=391 \quad \sum X_{2i}Y_i=61 \quad \sum Y_i^2=380.75 \]

Obtenemos las matrices \(X^tX\) y \(X^ty\):

\[ X^tX=\begin{bmatrix} n & \sum X_{1i} & \sum X_{2i}\\ \sum X_{1i} & \sum X_{1i}^2 & \sum X_{1i}X_{2i}\\ \sum X_{2i} & \sum X_{1i}X_{2i} & \sum X_{2i}^2 \end{bmatrix}=\begin{bmatrix} 8 & 52 & 8\\ 52 & 408 & 63\\ 8 & 63 & 16 \end{bmatrix} \]

\[ X^ty=\begin{bmatrix} \sum Y_i\\ \sum X_{1i}Y_i\\ \sum X_{2i}Y_i \end{bmatrix}=\begin{bmatrix} 52.5\\ 391\\ 61 \end{bmatrix} \]

Para obtener la inversa, calculamos primero el determinante desarrollando por la primera fila. Los adjuntos (cofactores) que necesitamos son:

\[ C_{11}=\begin{vmatrix}408 & 63\\63 & 16\end{vmatrix}=408\cdot16-63\cdot63=6528-3969=2559 \]

\[ C_{12}=-\begin{vmatrix}52 & 63\\8 & 16\end{vmatrix}=-(52\cdot16-63\cdot8)=-(832-504)=-328 \]

\[ C_{13}=\begin{vmatrix}52 & 408\\8 & 63\end{vmatrix}=52\cdot63-408\cdot8=3276-3264=12 \]

\[ |X^tX|=8\cdot C_{11}+52\cdot C_{12}+8\cdot C_{13}=8(2559)+52(-328)+8(12)\] \[ =20472-17056+96=3512 \]

Procediendo del mismo modo con el resto de filas y columnas se obtiene la matriz completa de adjuntos (que, al ser \(X^tX\) simétrica, resulta también simétrica):

\[ \text{Adj}(X^tX)=\begin{bmatrix} 2559 & -328 & 12\\ -328 & 64 & -88\\ 12 & -88 & 560 \end{bmatrix} \]

Por tanto:

\[ (X^tX)^{-1}=\frac{1}{|X^tX|}\,\text{Adj}(X^tX)^t=\frac{1}{3512}\begin{bmatrix} 2559 & -328 & 12\\ -328 & 64 & -88\\ 12 & -88 & 560 \end{bmatrix}= \] \[ \begin{bmatrix} 0.728645 & -0.093394 & 0.003417\\ -0.093394 & 0.018223 & -0.025057\\ 0.003417 & -0.025057 & 0.159453 \end{bmatrix} \]

Para obtener los estimadores \(\widehat{\beta}=(X^tX)^{-1}X^ty\), multiplicamos cada fila de \((X^tX)^{-1}\) por el vector \(X^ty\):

\[ \widehat{\beta}_1=0.728645(52.5)-0.093394(391)+0.003417(61) \] \[ =38.253844-36.517084+0.208428=1.945188 \]

\[ \widehat{\beta}_2=-0.093394(52.5)+0.018223(391)-0.025057(61)= \] \[ -4.903189+7.125285-1.528474=0.693622 \]

\[ \widehat{\beta}_3=0.003417(52.5)-0.025057(391)+0.159453(61)= \] \[ 0.179385-9.797267+9.726651=0.108770 \]

Por lo que finalmente, el modelo estimado queda:

\[ \widehat{Y}_i=1.945188+0.693622\,X_{1i}+0.108770\,X_{2i} \]

Se pueden obtener los valores estimados y los residuos:

\(Y\) \(\widehat{Y}\) \(e=Y-\widehat{Y}\) \(e^2\)
3.0 3.332432 -0.332432 0.110511
4.5 4.134823 0.365177 0.133354
5.0 5.413297 -0.413297 0.170815
6.5 6.324459 0.175541 0.030815
7.0 6.909311 0.090689 0.008225
8.0 7.494163 0.505837 0.255871
9.0 9.207716 -0.207716 0.043146
9.5 9.683798 -0.183798 0.033782
52.5 \(\sum\) = 52.5 \(\sum \approx 0\) \(\sum\) = 0.786519

A continuación, calculamos la suma de cuadrados: \[ SCT=y^ty-n\overline{Y}^2=380.75-8(6.5625)^2=380.75-344.53125=36.21875 \]

\[ SCE=\widehat{\beta}^tX^ty-n\overline{Y}^2=\big[1.945188(52.5)+0.693622(391)+0.108770(61)\big]-344.53125=\] \[ 379.963482-344.53125=35.432232 \]

\[ SCR=SCT-SCE=36.21875-35.432232=0.786518 \]

(obsérvese que \(SCR\) coincide, salvo redondeo, con \(\sum e^2=0.786519\) calculado en la tabla anterior).

\[ R^2=\frac{SCE}{SCT}=\frac{35.432232}{36.21875}=0.978284 \]

Para el \(R^2\) corregido, con \(k=3\) parámetros estimados (\(\widehat{\beta}_1,\widehat{\beta}_2,\widehat{\beta}_3\)):

\[ \overline{R}^2=1-(1-R^2)\frac{n-1}{n-k}=1-(1-0.978284)\frac{7}{5}=1-0.021716(1.4)=0.969598 \]

Modelo 2: eliminando la variable absurda (\(X_2\))\

Vamos a estimar ahora el siguiente modelo:

\[Y_i=\beta_1+\beta_2X_{1i}+u_i\]

Reutilizamos las magnitudes ya calculadas que involucran únicamente a \(Y\) y \(X_1\):

\[ n=8 \quad \sum Y_i=52.5 \quad \sum X_{1i}=52 \quad \sum X_{1i}^2=408 \quad \sum X_{1i}Y_i=391 \quad \sum Y_i^2=380.75 \]

Se obtienen las matrices \(X^tX\) y \(X^ty\):

\[ X^tX=\begin{bmatrix} n & \sum X_{1i}\\ \sum X_{1i} & \sum X_{1i}^2 \end{bmatrix}=\begin{bmatrix} 8 & 52\\ 52 & 408 \end{bmatrix} \qquad X^ty=\begin{bmatrix} \sum Y_i\\ \sum X_{1i}Y_i \end{bmatrix}=\begin{bmatrix} 52.5\\ 391 \end{bmatrix} \]

Se obtiene la inversa de \(X^tX\) (matriz \(2\times2\))

\[ |X^tX|=8(408)-52(52)=3264-2704=560 \]

\[ (X^tX)^{-1}=\frac{1}{560}\begin{bmatrix} 408 & -52\\ -52 & 8 \end{bmatrix}=\begin{bmatrix} 0.728571 & -0.092857\\ -0.092857 & 0.014286 \end{bmatrix} \]

Y multiplicando se obtienen los estimadores:

\[ \widehat{\beta}_1=0.728571(52.5)-0.092857(391)=38.25-36.307143=1.942857 \]

\[ \widehat{\beta}_2=-0.092857(52.5)+0.014286(391)=-4.875+5.585714=0.710714 \]

Por lo que finalmente el modelo estimado queda:

\[ \widehat{Y}_i=1.942857+0.710714\,X_{1i} \]

Y los valores estimados y los residuos se recogen en esta tabla:

\(Y\) \(\widehat{Y}\) \(e=Y-\widehat{Y}\) \(e^2\)
3.0 3.364286 -0.364286 0.132704
4.5 4.075000 0.425000 0.180625
5.0 5.496429 -0.496429 0.246441
6.5 6.207143 0.292857 0.085765
7.0 6.917857 0.082143 0.006747
8.0 7.628571 0.371429 0.137959
9.0 9.050000 -0.050000 0.002500
9.5 9.760714 -0.260714 0.067972
52.5 \(\sum\) = 52.5 \(\sum \approx 0\) \(\sum\) = 0.860713

Igual que en el caso anterior se pueden obtener la suma de cuadrados:

\[ SCT=380.75-344.53125=36.21875 \]

\[ SCE=\big[1.942857(52.5)+0.710714(391)\big]-344.53125=379.889286-344.53125 \] \[ =35.358036 \]

\[ SCR=SCT-SCE=36.21875-35.358036=0.860714 \] Y, a partir de ellas, el coeficiente de determinación ordinario y corregido: \[ R^2=\frac{SCE}{SCT}=\frac{35.358036}{36.21875}=0.976236 \]

Con \(k=2\) parámetros estimados (\(\widehat{\beta}_1,\widehat{\beta}_2\)):

\[ \overline{R}^2=1-(1-R^2)\frac{n-1}{n-k}=1-(1-0.976236)\frac{7}{6}=1-0.023764(1.1\overline{6})=0.972275 \]

Comparación de los dos modelos\

La siguiente tabla compara ambos modelos:

Modelo Variables \(k\) \(R^2\) \(\overline{R}^2\)
Modelo 1 (completo) \(X_1, X_2\) 3 0.978284 0.969598
Modelo 2 (reducido) \(X_1\) 2 0.976236 0.972275

Al incorporar la variable \(X_2\) (la planta en la que vive el auditor, sin ninguna relación causal con la nota) el \(R^2\) aumenta ligeramente, de 0.976236 a 0.978284. Esto no debe sorprender: el \(R^2\) ordinario nunca puede disminuir cuando se añade un regresor adicional al modelo, por muy irrelevante que sea, porque el ajuste por mínimos cuadrados siempre puede aprovechar cualquier variación adicional, aunque sea espuria.

Sin embargo, el \(R^2\) corregido se comporta de forma justamente contraria: disminuye, de 0.972275 a 0.969598, al pasar del modelo reducido al modelo completo. Al penalizar la pérdida de un grado de libertad por cada parámetro adicional estimado, el \(\overline{R}^2\) detecta que la variable \(X_2\) no aporta suficiente capacidad explicativa para compensar el coste de incluirla en el modelo.

Esta discrepancia entre \(R^2\) y \(\overline{R}^2\) ilustra por qué no debe utilizarse el \(R^2\) ordinario para comparar o seleccionar modelos con distinto número de regresores, y por qué el \(R^2\) corregido —o, en su lugar, criterios como los de Akaike o Schwarz— constituye un criterio más adecuado para valorar si una variable adicional realmente mejora la especificación del modelo o simplemente lo sobrecarga sin justificación económica.

Demanda de productos lacteos: Estimación y selección de modelos. Interpretación de coeficientes con logaritmos.

Partiendo de la base de datos de Uriel Jiménez (2019) denominada \(demand\), se han considerado los siguientes modelos alternativos para analizar los determinantes del gasto en productos lácteos \(dairy\) en función de la renta disponible de los hogares \(inc\), el número de miembros del hogar \(hhsize\) y la proporción de niños menores de cinco años en el hogar \(punder5\):

Código
demand= read_excel('data/bd3_demand.xlsx')
demand<-as.data.frame(demand)

Se proponen los siguientes modelos: - Modelo 1: \(dairy=\beta_1+\beta_2inc+u\)

  • Modelo 2: \(dairy=\beta_!+\beta_2ln(inc)+u\)

  • Modelo 3: \(dairy=\beta_1+\beta_2inc+\beta_3punder5+u\)

  • Modelo 4: \(dairy=\beta_2inc+\beta_3punder5+u\)

  • Modelo 5: \(dairy=\beta_1+\beta_2inc+\beta_3hhsize+u\)

  • Modelo 6: \(ln(dairy)=\beta_1+\beta_2inc+u\)

  • Modelo 7: \(ln(dairy)=\beta_1+\beta_2inc+\beta_3punder5+u\)

  • Modelo 8: \(ln(dairy)=\beta_2inc+\beta_3punder5+u\)

Se pide estimar los distintos modelos y compararlos mediante en terminos de bondad del ajuste. Para ello, en primer lugar se estiman los modelos y se extraen del resumen de cada estiamción el coeficiente de determinación corregido, el criterio de Akaike y el BIC.

Código
modelo1=lm(DAIRY~INC, data=demand)
resultado_modelo1=summary(modelo1)
modelo2=lm(DAIRY~log(INC), data=demand)
resultado_modelo2=summary(modelo2)
modelo3=lm(DAIRY~INC+PUNDER5, data=demand)
resultado_modelo3=summary(modelo3)
modelo4=lm(DAIRY~INC+PUNDER5-1, data=demand)
resultado_modelo4=summary(modelo4)
modelo5=lm(DAIRY~INC+HHSIZE, data=demand)
resultado_modelo5=summary(modelo5)
modelo6=lm(log(DAIRY)~INC,data=demand)
resultado_modelo6=summary(modelo6)
modelo7=lm(log(DAIRY)~INC+PUNDER5,data=demand)
resultado_modelo7=summary(modelo7)
modelo8=lm(log(DAIRY)~INC+PUNDER5-1,data=demand)
resultado_modelo8=summary(modelo8)
Código
resultados <- data.frame(
Modelo = c("modelo1", "modelo2","modelo3","modelo4","modelo5","modelo6","modelo7","modelo8"),
DF     = c(length(coef(modelo1)), length(coef(modelo2)), length(coef(modelo3)), length(coef(modelo4)), length(coef(modelo5)), length(coef(modelo6)), length(coef(modelo7)), length(coef(modelo8))),
R2_CORREGIDO = c(resultado_modelo1$adj.r.squared,resultado_modelo2$adj.r.squared,resultado_modelo3$adj.r.squared,resultado_modelo4$adj.r.squared,resultado_modelo5$adj.r.squared,resultado_modelo6$adj.r.squared,resultado_modelo7$adj.r.squared,resultado_modelo8$adj.r.squared),
AIC    = c(AIC(modelo1), AIC(modelo2),AIC(modelo3), AIC(modelo4),AIC(modelo5), AIC(modelo6),AIC(modelo7), AIC(modelo8)),
BIC    = c(BIC(modelo1), BIC(modelo2),BIC(modelo3), BIC(modelo4),BIC(modelo5), BIC(modelo6),BIC(modelo7), BIC(modelo8)))
resultados
   Modelo DF R2_CORREGIDO        AIC       BIC
1 modelo1  2    0.4441130 211.496377 216.56302
2 modelo2  2    0.4424391 211.616650 216.68329
3 modelo3  3    0.5361236 205.191772 211.94729
4 modelo4  2    0.9423958 203.806937 208.87358
5 modelo5  3    0.4306455 213.387179 220.14270
6 modelo6  2    0.4845615  13.176058  18.24270
7 modelo7  3    0.5769421   6.208967  12.96448
8 modelo8  2    0.9571803  61.507098  66.57374

Nótese que los primeros cinco modelos tienen la misma variable dependiente, por lo que pueden ser comparados entre sí. Sin embargo, es importante señalar que el modelo 4 no incluye término independiente, por lo que el coeficiente de determinación no puede aplicarse de manera adecuada. Así, se concluye que, entre los cinco primeros modelos, el modelo 4 es el que presenta la mejor bondad de ajuste según los distintos criterios de información.

En cuanto a los modelos 6, 7 y 8, el modelo 8 nuevamente carece de término independiente, por lo que no es posible utilizar el coeficiente de determinación corregido como criterio de comparación. En este caso, la conclusión es que el modelo 7 presenta el menor valor en los criterios de información.

Cabe destacar que los criterios de información cuentan con una versión ajustada que permite comparar modelos con la misma variable endógena, pero con distinta forma funcional, como ocurre en este caso (véase Uriel Jiménez (2019)).

Estimación y contraste de una función de producción Cobb-Douglas

Se dispone de información sobre la producción (\(Y\)), el factor trabajo (\(L\)) y el factor capital (\(K\)) de 15 empresas de un mismo sector:

Empresa \(Y\) \(L\) \(K\)
1 71 39 34
2 59 21 72
3 72 27 79
4 111 46 114
5 123 51 83
6 86 31 79
7 94 58 47
8 95 59 35
9 109 52 100
10 104 60 59
11 122 53 102
12 100 45 88
13 97 30 108
14 50 26 31
15 120 52 98

Se describe la siguiente función de producción Cobb-Douglas:

\[ Y_i = A\,L_i^{\beta_2}\,K_i^{\beta_3}\,e^{u_i}, \qquad i = 1,\dots,15, \]

donde \(u_i\) cumple las hipótesis clásicas del modelo lineal general, incluida la normalidad: \(u_i \sim N(0,\sigma^2)\).

Se pide:

  1. Linealizar el modelo y escribirlo en forma matricial.
  2. Estimar los parámetros por Mínimos Cuadrados Ordinarios (MCO) e interpretar los coeficientes.
  3. Calcular la suma de cuadrados de los residuos, la estimación de \(\sigma^2\), el coeficiente de determinación \(R^2\) y el \(R^2\) corregido. Contrastar la significación global del modelo.
  4. Obtener los intervalos de confianza al 95 % para \(\beta_1\), \(\beta_2\), \(\beta_3\) y \(\sigma^2\).
  5. Contrastar, mediante el test general de restricciones lineales (\(F\)), la hipótesis de rendimientos constantes a escala (\(\beta_2+\beta_3=1\)), con \(\alpha = 0{,}05\).
  6. Estimar el modelo restringido imponiendo rendimientos constantes a escala (Mínimos Cuadrados Restringidos) y comprobar que el contraste \(F\) basado en las sumas de cuadrados residuales coincide con el del apartado e).
  7. Contrastar la restricción lineal \(\beta_2 = \beta_3\) (igual elasticidad de la producción respecto al trabajo y al capital).
  8. Resolver todos los apartados en R.

Valores críticos que pueden necesitarse: \(t_{12;\,0{,}025} = 2{,}1788\); \(F_{1,12;\,0{,}05} = 4{,}7472\); \(F_{2,12;\,0{,}05} = 3{,}8853\); \(\chi^2_{12;\,0{,}975} = 4{,}4038\) y \(\chi^2_{12;\,0{,}025} = 23{,}3367\) (cola superior).

a) Linealización y forma matricial

Tomando logaritmos neperianos:

\[ \ln Y_i = \beta_1 + \beta_2 \ln L_i + \beta_3 \ln K_i + u_i, \qquad \beta_1 = \ln A . \]

Llamando \(y_i=\ln Y_i\), \(l_i = \ln L_i\), \(k_i=\ln K_i\), el modelo es lineal en los parámetros:

\[ \mathbf{y} = \mathbf{X}\boldsymbol{\beta} + \mathbf{u}, \qquad \mathbf{y}=\begin{pmatrix} y_1\\ \vdots \\ y_{15}\end{pmatrix},\; \mathbf{X}=\begin{pmatrix} 1 & l_1 & k_1\\ \vdots & \vdots & \vdots\\ 1 & l_{15} & k_{15}\end{pmatrix},\; \boldsymbol{\beta}=\begin{pmatrix}\beta_1\\ \beta_2\\ \beta_3\end{pmatrix}. \]

Datos transformados (4 decimales):

Empresa \(y=\ln Y\) \(l=\ln L\) \(k=\ln K\)
1 4,2627 3,6636 3,5264
2 4,0775 3,0445 4,2767
3 4,2767 3,2958 4,3694
4 4,7095 3,8286 4,7362
5 4,8122 3,9318 4,4188
6 4,4543 3,4340 4,3694
7 4,5433 4,0604 3,8501
8 4,5539 4,0775 3,5553
9 4,6913 3,9512 4,6052
10 4,6444 4,0943 4,0775
11 4,8040 3,9703 4,6250
12 4,6052 3,8067 4,4773
13 4,5747 3,4012 4,6821
14 3,9120 3,2581 3,4340
15 4,7875 3,9512 4,5850

b) Estimación MCO

El estimador MCO es \(\hat{\boldsymbol\beta} = (\mathbf{X}'\mathbf{X})^{-1}\mathbf{X}'\mathbf{y}\). Con los datos transformados:

\[ \mathbf{X}'\mathbf{X} = \begin{pmatrix} n & \sum l_i & \sum k_i\\ \sum l_i & \sum l_i^2 & \sum l_i k_i\\ \sum k_i & \sum l_i k_i & \sum k_i^2 \end{pmatrix} = \begin{pmatrix} 15 & 55{,}7694 & 63{,}5886\\ 55{,}7694 & 209{,}0024 & 236{,}5094\\ 63{,}5886 & 236{,}5094 & 272{,}3385 \end{pmatrix} \] \[ \mathbf{X}'\mathbf{y} = \begin{pmatrix} \sum y_i\\ \sum l_i y_i\\ \sum k_i y_i \end{pmatrix} = \begin{pmatrix} 67{,}7093\\ 252{,}7682\\ 288{,}0555 \end{pmatrix}. \]

Su inversa (obtenida por adjuntos o con calculadora matricial):

\[ (\mathbf{X}'\mathbf{X})^{-1} = \begin{pmatrix} 14{,}319063 & -2{,}169214 & -1{,}459541\\ -2{,}169214 & 0{,}605747 & -0{,}019562\\ -1{,}459541 & -0{,}019562 & 0{,}361450 \end{pmatrix}. \]

Por tanto:

\[ \hat{\boldsymbol\beta} = (\mathbf{X}'\mathbf{X})^{-1}\mathbf{X}'\mathbf{y} = \begin{pmatrix} 0{,}7964\\ 0{,}6025\\ 0{,}3485 \end{pmatrix} \quad\Longrightarrow\quad \widehat{\ln Y_i} = 0{,}7964 + 0{,}6025\,\ln L_i + 0{,}3485\,\ln K_i . \]

Interpretación:

  • \(\hat\beta_2 = 0{,}6025\) es la elasticidad de la producción respecto al trabajo: si \(L\) aumenta un 1 % (con \(K\) constante), la producción aumenta aproximadamente un 0,60 %, ceteris paribus.
  • \(\hat\beta_3 = 0{,}3485\) es la elasticidad de la producción respecto al capital: un aumento del 1 % en \(K\) eleva la producción en un 0,35 %, ceteris paribus.
  • \(\hat\beta_2 + \hat\beta_3 = 0{,}9510\) mide los rendimientos a escala: si ambos factores aumentan un 1 %, la producción aumenta un 0,95 %. La estimación puntual sugiere rendimientos ligeramente decrecientes, pero habrá que contrastar si la diferencia respecto a 1 es significativa (apartado e).
  • \(\hat\beta_1 = 0{,}7964\) estima \(\ln A\), de modo que \(\hat A = e^{0{,}7964} \approx 2{,}22\) (parámetro de eficiencia o productividad total de los factores).

c) SCR, \(\hat\sigma^2\), \(R^2\), \(\bar R^2\) y significación global

Suma de cuadrados de los residuos:

\[ SCR = \mathbf{e}'\mathbf{e} = \mathbf{y}'\mathbf{y} - \hat{\boldsymbol\beta}'\mathbf{X}'\mathbf{y} = 306{,}661254 - 306{,}610946 = 0{,}050308 . \]

Nota: esta resta es muy sensible al redondeo; conviene trabajar con al menos 6 decimales.

Estimación insesgada de la varianza de la perturbación (\(n-k = 15-3 = 12\) g.l.):

\[ \hat\sigma^2 = \frac{SCR}{n-k} = \frac{0{,}050308}{12} = 0{,}004192, \qquad \hat\sigma = 0{,}0647 . \]

Suma de cuadrados total:

\[ SCT = \mathbf{y}'\mathbf{y} - n\bar y^2 = 306{,}661254 - 15\cdot(4{,}513952)^2 = 306{,}661254 - 305{,}636374 = 1{,}024880 . \]

Coeficiente de determinación y coeficiente corregido:

\[ R^2 = 1 - \frac{SCR}{SCT} = 1 - \frac{0{,}050308}{1{,}024880} = 0{,}9509, \] \[ \bar R^2 = 1 - \frac{SCR/(n-k)}{SCT/(n-1)} = 1 - \frac{0{,}050308/12}{1{,}024880/14} = 0{,}9427 . \]

El 95,1 % de la variabilidad del logaritmo de la producción queda explicada por los logaritmos de trabajo y capital.

Contraste de significación global (\(H_0:\beta_2=\beta_3=0\)):

\[ F = \frac{R^2/(k-1)}{(1-R^2)/(n-k)} = \frac{(STC-SCR)/2}{SCR/12} = \frac{0{,}974572/2}{0{,}004192} = 116{,}23 \;>\; F_{2,12;\,0{,}05}=3{,}8853 . \]

Se rechaza \(H_0\): el modelo es globalmente significativo.

d) Intervalos de confianza al 95 %

La matriz de varianzas-covarianzas estimada es \(\widehat{\mathrm{Var}}(\hat{\boldsymbol\beta}) = \hat\sigma^2(\mathbf{X}'\mathbf{X})^{-1}\):

\[ \widehat{\mathrm{Var}}(\hat{\boldsymbol\beta}) = 0{,}004192 \cdot (\mathbf{X}'\mathbf{X})^{-1} = \begin{pmatrix} 0{,}060030 & -0{,}009094 & -0{,}006119\\ -0{,}009094 & 0{,}002539 & -0{,}000082\\ -0{,}006119 & -0{,}000082 & 0{,}001515 \end{pmatrix}. \]

Errores estándar: \(\;s_{\hat\beta_1} = 0{,}2450,\quad s_{\hat\beta_2}=0{,}0504,\quad s_{\hat\beta_3}=0{,}0389\).

Los intervalos son \(\hat\beta_j \pm t_{12;\,0{,}025}\, s_{\hat\beta_j}\), con \(t_{12;\,0{,}025}=2{,}1788\):

Parámetro Estimación Error estándar IC 95 %
\(\beta_1\) 0,7964 0,2450 \([\,0{,}2626;\; 1{,}3302\,]\)
\(\beta_2\) 0,6025 0,0504 \([\,0{,}4927;\; 0{,}7123\,]\)
\(\beta_3\) 0,3485 0,0389 \([\,0{,}2637;\; 0{,}4333\,]\)

Ninguno de los intervalos contiene el cero, por lo que las tres estimaciones son individualmente significativas al 5 %.

Intervalo para \(\sigma^2\), basado en \((n-k)\hat\sigma^2/\sigma^2 \sim \chi^2_{n-k}\):

\[ \left[\frac{(n-k)\hat\sigma^2}{\chi^2_{12;\,0{,}025}},\; \frac{(n-k)\hat\sigma^2}{\chi^2_{12;\,0{,}975}}\right] = \left[\frac{0{,}050308}{23{,}3367},\; \frac{0{,}050308}{4{,}4038}\right] = [\,0{,}002156;\; 0{,}011424\,]. \]

e) Rendimientos constantes a escala: test general \(F\)

La hipótesis típica en una Cobb-Douglas es la de rendimientos constantes a escala:

\[ H_0: \beta_2 + \beta_3 = 1 \qquad \text{frente a} \qquad H_1: \beta_2 + \beta_3 \neq 1 . \]

Se escribe en la forma general \(H_0: \mathbf{R}\boldsymbol\beta = \mathbf{r}\), con \(q=1\) restricción:

\[ \mathbf{R} = (0 \;\; 1 \;\; 1), \qquad \mathbf{r} = 1 . \]

El estadístico general es

\[ F = \frac{(\mathbf{R}\hat{\boldsymbol\beta}-\mathbf{r})'\left[\mathbf{R}(\mathbf{X}'\mathbf{X})^{-1}\mathbf{R}'\right]^{-1}(\mathbf{R}\hat{\boldsymbol\beta}-\mathbf{r})/q}{\hat\sigma^2} \;\sim\; F_{q,\,n-k} \quad \text{bajo } H_0 . \]

Cálculos:

  • \(\mathbf{R}\hat{\boldsymbol\beta} - \mathbf{r} = 0{,}602531 + 0{,}348499 - 1 = -0{,}048969\).
  • \(\mathbf{R}(\mathbf{X}'\mathbf{X})^{-1}\mathbf{R}' = a_{22} + a_{33} + 2a_{23} = 0{,}605747 + 0{,}361450 + 2(-0{,}019562) = 0{,}928072\).

\[ F = \frac{(-0{,}048969)^2 / 1}{0{,}928072 \cdot 0{,}004192} = \frac{0{,}002398}{0{,}003891} = 0{,}6163 . \]

Como \(F = 0{,}6163 < F_{1,12;\,0{,}05} = 4{,}7472\) (p-valor \(= 0{,}448\)), no se rechaza la hipótesis de rendimientos constantes a escala.

f) Estimación restringida (MCR) y contraste vía SCR

\[ \tilde{\boldsymbol\beta} = \hat{\boldsymbol\beta} - (\mathbf{X}'\mathbf{X})^{-1}\mathbf{R}'\left[\mathbf{R}(\mathbf{X}'\mathbf{X})^{-1}\mathbf{R}'\right]^{-1}(\mathbf{R}\hat{\boldsymbol\beta}-\mathbf{r}). \]

Con \((\mathbf{X}'\mathbf{X})^{-1}\mathbf{R}' = (-3{,}628755;\; 0{,}586184;\; 0{,}341888)'\):

\[ \tilde{\boldsymbol\beta} = \begin{pmatrix} 0{,}7964\\ 0{,}6025\\ 0{,}3485\end{pmatrix} - \begin{pmatrix} -3{,}628755\\ 0{,}586184\\ 0{,}341888\end{pmatrix}\frac{-0{,}048969}{0{,}928072} = \begin{pmatrix} 0{,}6049\\ 0{,}6335\\ 0{,}3665\end{pmatrix}, \]

que coincide con el método 1 y verifica \(\tilde\beta_2+\tilde\beta_3 = 1\).

Contraste \(F\) a partir de las sumas de cuadrados residuales. La SCR del modelo restringido es \(SCR_R = 0{,}052892\):

\[ F = \frac{(SCR_R - SCR)/q}{SCR/(n-k)} = \frac{(0{,}052892 - 0{,}050308)/1}{0{,}050308/12} = 0{,}6163 , \]

idéntico al obtenido en el apartado e). La conclusión es la misma: los datos son compatibles con rendimientos constantes a escala.

g) Contraste de la restricción \(\beta_2 = \beta_3\)

\[ H_0: \beta_2 - \beta_3 = 0, \qquad \mathbf{R} = (0\;\; 1\;\; -1),\quad r = 0 . \]

  • \(\mathbf{R}\hat{\boldsymbol\beta} - r = 0{,}602531 - 0{,}348499 = 0{,}254032\).
  • \(\mathbf{R}(\mathbf{X}'\mathbf{X})^{-1}\mathbf{R}' = a_{22} + a_{33} - 2a_{23} = 0{,}605747 + 0{,}361450 + 0{,}039125 = 1{,}006322\).

\[ F = \frac{(0{,}254032)^2}{1{,}006322 \cdot 0{,}004192} = \frac{0{,}064532}{0{,}004219} = 15{,}30 \;>\; F_{1,12;\,0{,}05} = 4{,}7472 . \]

Se rechaza \(H_0\) (p-valor \(\approx 0{,}002\)): las elasticidades de trabajo y capital son significativamente distintas; la producción es más sensible al factor trabajo.

Comprobación con el modelo restringido: imponiendo \(\beta_2=\beta_3=\beta\) se estima \(\ln Y_i = \beta_1 + \beta\,(\ln L_i + \ln K_i) + u_i\), que da \(\tilde\beta_1 = 0{,}9755\), \(\tilde\beta = 0{,}4447\) y \(SCR_R = 0{,}114435\), de modo que

\[ F = \frac{0{,}114435 - 0{,}050308}{0{,}004192} = 15{,}30 . \]

h) Resolución en R

Partimos de los datos originales a partir de los que calculamos su logarítmo:

Código
datos <- data.frame(
  Y = c(71, 59, 72, 111, 123, 86, 94, 95, 109, 104, 122, 100, 97, 50, 120),
  L = c(39, 21, 27,  46,  51, 31, 58, 59,  52,  60,  53,  45, 30, 26,  52),
  K = c(34, 72, 79, 114,  83, 79, 47, 35, 100,  59, 102,  88, 108, 31, 98)
)

datos$y <- log(datos$Y)
datos$l <- log(datos$L)
datos$k <- log(datos$K)

round(datos, 4)
     Y  L   K      y      l      k
1   71 39  34 4.2627 3.6636 3.5264
2   59 21  72 4.0775 3.0445 4.2767
3   72 27  79 4.2767 3.2958 4.3694
4  111 46 114 4.7095 3.8286 4.7362
5  123 51  83 4.8122 3.9318 4.4188
6   86 31  79 4.4543 3.4340 4.3694
7   94 58  47 4.5433 4.0604 3.8501
8   95 59  35 4.5539 4.0775 3.5553
9  109 52 100 4.6913 3.9512 4.6052
10 104 60  59 4.6444 4.0943 4.0775
11 122 53 102 4.8040 3.9703 4.6250
12 100 45  88 4.6052 3.8067 4.4773
13  97 30 108 4.5747 3.4012 4.6821
14  50 26  31 3.9120 3.2581 3.4340
15 120 52  98 4.7875 3.9512 4.5850

En primer lugar procedemos a la estimación con lm():

Código
modelo <- lm(log(Y) ~ log(L) + log(K), data = datos)
summary(modelo)

Call:
lm(formula = log(Y) ~ log(L) + log(K), data = datos)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.09069 -0.04395 -0.02832  0.04577  0.10678 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.79639    0.24501   3.250  0.00695 ** 
log(L)       0.60253    0.05039  11.957 5.04e-08 ***
log(K)       0.34850    0.03893   8.953 1.17e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.06475 on 12 degrees of freedom
Multiple R-squared:  0.9509,    Adjusted R-squared:  0.9427 
F-statistic: 116.2 on 2 and 12 DF,  p-value: 1.399e-08

Se obtienen los intervalos de confianza (se puede cambiar el nivel de confianza modificando level) y la matriz de varianzas-covarianzas de los estimadores. También, se calcula la suma de los estimadores para ver si suman 1 y se obtiene la estimación de la variable \(A\):

Código
confint(modelo, level = 0.95)                 # IC de los coeficientes
                2.5 %    97.5 %
(Intercept) 0.2625590 1.3302233
log(L)      0.4927338 0.7123290
log(K)      0.2636845 0.4333141
Código
vcov(modelo)                                  # matriz de var-cov
             (Intercept)        log(L)        log(K)
(Intercept)  0.060030176 -0.0090940494 -0.0061188728
log(L)      -0.009094049  0.0025394873 -0.0000820121
log(K)      -0.006118873 -0.0000820121  0.0015153175
Código
sum(coef(modelo)[2:3])                        # rendimientos a escala estimados
[1] 0.9510307
Código
exp(coef(modelo)[1])                          # estimación de A
(Intercept) 
   2.217524 

Para realizar el contraste general de rendimientos constantes a escala, se puede hacer con una función genérica para el test \(F\) de \(H_0:\mathbf{R}\boldsymbol\beta=\mathbf{r}\):

Código
test_F <- function(modelo, R, r) {
  R <- matrix(R, ncol = length(coef(modelo)))
  b <- coef(modelo)
  q <- nrow(R)
  d <- R %*% b - r
  Fc <- as.numeric(t(d) %*% solve(R %*% vcov(modelo) %*% t(R)) %*% d / q)
  gl2 <- df.residual(modelo)
  c(F = Fc, gl1 = q, gl2 = gl2,
    F_critico = qf(0.95, q, gl2),
    p_valor = pf(Fc, q, gl2, lower.tail = FALSE))
}

# H0: beta2 + beta3 = 1
test_F(modelo, R = c(0, 1, 1), r = 1)
         F        gl1        gl2  F_critico    p_valor 
 0.6163267  1.0000000 12.0000000  4.7472253  0.4476383 

Se concluye que no se puede rechazar la hipótesis nula con los niveles de confianza habituales.

Si está instalado el paquete car, el mismo contraste se obtiene directamente:

Código
car::linearHypothesis(modelo, "log(L) + log(K) = 1")

Linear hypothesis test:
log(L)  + log(K) = 1

Model 1: restricted model
Model 2: log(Y) ~ log(L) + log(K)

  Res.Df      RSS Df Sum of Sq      F Pr(>F)
1     13 0.052892                           
2     12 0.050308  1 0.0025838 0.6163 0.4476

Se observa que se obtiene exactamente el mismo resultado.

Por otro lado, para realizar el contraste de \(\beta_2 = \beta_3\), volvemos a usar la misma función:

Código
test_F(modelo, R = c(0, 1, -1), r = 0)
           F          gl1          gl2    F_critico      p_valor 
15.296258051  1.000000000 12.000000000  4.747225347  0.002068344 

A continuación, se obtiene el gráfico de los valores observados frente a ajustados:

Código
plot(fitted(modelo), log(datos$Y), pch = 19, col = "steelblue",
     xlab = "ln Y ajustado", ylab = "ln Y observado",
     main = "Cobb-Douglas: observados vs. ajustados")
abline(0, 1, lty = 2, col = "grey40")
text(fitted(modelo), log(datos$Y), labels = 1:n, pos = 4, cex = 0.7)
Warning in text.default(fitted(modelo), log(datos$Y), labels = 1:n, pos = 4, : length(labels) > max(length(x), length(y));
'labels' truncated to length 15

2.8 Prácticas propuestas

  1. Se plantea un modelo para explicar la inflación en España para los años 2006-2024, en función de la tasa de desempleo y el precio de la energia (en euros por megavatio-hora), a partir de los siguientes datos obtenidos del Instituto Nacional de Estadística (INE) y de statista.com:
Código
philips= read_excel('data/BD_PHILIPS.xlsx')
philips=as.data.frame(philips)

Se pide:

  1. Representar la serie temporal de la inflación en función de la tasa de desempleo.
  2. Estimación del modelo que explique la inflación en función de la tasa de desempleo.
  3. Interprete los coeficientes estimados.
  4. Estimación del modelo que explique la inflación en función de la tasa de desempleo y el precio de la energia. Compare ambos modelos en términos de bondad de ajuste.
  5. Analice la significatividad individual y global del último modelo estimado.
  6. Contraste al 95% si por cada unidad porcentual que aumente la el desempleo la inflación podría llegar a disminuir un 1%, ceteris paribus.
  7. Contraste si el efecto de la variable tasa de desempleo puede ser el mismo que el de la variable precio de la energia pero con signo contrario.
  8. Obtenga una previsión de la inflación para el año 2025, suponiendo que la tasa de paro ha sido de 10.8% y el precio medio de la energia de 85 euros.
  9. Analizar la permanencia estructural del modelo sabiendo que finalmente la inflación en el año 2025 fue de 2.5%.
  1. El departamento de Sanidad de E.E.U.U. quiere estudiar la relación entre el gasto sanitario agregado en billones de dólares (exphlth), la renta personal disponible agregada también en billones de dólares (income), el porcentaje de población que supera los 65 años en el año 2005 (seniors) y la población en millones (pop). Para ello encarga un estudio a dos becarios de la facultad de Económicas de Harvard poniendo a su disposición datos de 2005 para dichas variables sobre 51 estados americanos. (Fichero data8-3.gdt Ramanathan).
  1. Escribe la ecuación del modelo que te permita analizar la influencia de las variables explicativas income, seniors y pop sobre la variable exphlth.
  2. Interpreta los coeficientes del modelo anterior
  3. Estima la ecuación propuesta por MCO. Interpreta los coeficientes estimados del modelo. ¿Son sus signos coherentes con la teoría económica?
  4. ¿Cuál es la varianza de cada uno de los estimadores de los parámetros?
  5. Interpreta el coeficiente de determinación del modelo
  6. Obtener el valor del coeficiente de determinación corregido
  7. Estimar ahora el modelo eliminando la variable seniors, interpretar el modelo y comparar su bondad.
  1. Se tiene una base de datos para el periodo 1990-2024 de la esperanza de vida al nacer y el gasto sanitario público (en millones de euros), asi como el porcentaje del gasto en función del PIB y la renta per capita (medida en euros). `
Código
knitr::opts_chunk$set(echo = TRUE)
library(readxl)
datos <- read_excel("data/bd6_esperanza.xlsx")

Se proponen distintas especificaciones del modelo incluyendo la variable Gasto Sanitario (en millones de euros) y renta per capita (en euros)

Código
m_linlin <- lm(Esperanza ~ Gasto + Renta, data = datos)
m_loglin <- lm(log(Esperanza)~ Gasto + Renta, data = datos)
m_linlog <- lm(Esperanza ~ log(Gasto) + Renta, data = datos)     
m_loglog <- lm(log(Esperanza) ~ log(Gasto) + log(Renta), data = datos)
summary(m_linlin)

Call:
lm(formula = Esperanza ~ Gasto + Renta, data = datos)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.98060 -0.21243  0.04391  0.25050  0.71861 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 7.367e+01  2.370e-01 310.798  < 2e-16 ***
Gasto       1.417e-05  1.515e-05   0.935    0.357    
Renta       3.714e-04  3.658e-05  10.153 1.56e-11 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.4344 on 32 degrees of freedom
Multiple R-squared:  0.9808,    Adjusted R-squared:  0.9796 
F-statistic: 817.1 on 2 and 32 DF,  p-value: < 2.2e-16
Código
summary(m_loglin)

Call:
lm(formula = log(Esperanza) ~ Gasto + Renta, data = datos)

Residuals:
       Min         1Q     Median         3Q        Max 
-0.0124080 -0.0032854  0.0005215  0.0034795  0.0093757 

Coefficients:
             Estimate Std. Error  t value Pr(>|t|)    
(Intercept) 4.305e+00  3.083e-03 1396.614  < 2e-16 ***
Gasto       1.442e-07  1.971e-07    0.732     0.47    
Renta       4.557e-06  4.757e-07    9.579 6.43e-11 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.00565 on 32 degrees of freedom
Multiple R-squared:  0.9779,    Adjusted R-squared:  0.9765 
F-statistic: 707.2 on 2 and 32 DF,  p-value: < 2.2e-16
Código
summary(m_linlog)

Call:
lm(formula = Esperanza ~ log(Gasto) + Renta, data = datos)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.0738 -0.1767  0.0528  0.1935  0.4469 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 3.532e+01  7.535e+00   4.688 4.91e-05 ***
log(Gasto)  3.895e+00  7.646e-01   5.094 1.51e-05 ***
Renta       2.327e-04  3.452e-05   6.740 1.30e-07 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.3272 on 32 degrees of freedom
Multiple R-squared:  0.9891,    Adjusted R-squared:  0.9884 
F-statistic:  1453 on 2 and 32 DF,  p-value: < 2.2e-16
Código
summary(m_loglog)

Call:
lm(formula = log(Esperanza) ~ log(Gasto) + log(Renta), data = datos)

Residuals:
       Min         1Q     Median         3Q        Max 
-0.0069226 -0.0032634  0.0006603  0.0025713  0.0073771 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  3.31886    0.02629 126.236  < 2e-16 ***
log(Gasto)   0.04460    0.01078   4.138 0.000237 ***
log(Renta)   0.06155    0.01023   6.017 1.03e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.004167 on 32 degrees of freedom
Multiple R-squared:  0.988, Adjusted R-squared:  0.9872 
F-statistic:  1314 on 2 and 32 DF,  p-value: < 2.2e-16

Comparar en terminos de bondad de ajuste, pero con otra especificación que use en porcentaje de gasto Sanitario en función del PIB en lugar del gasto sanitario:

Código
m_linlin_ratio <- lm(Esperanza ~ GastoPIB + Renta, data = datos)
m_loglin_ratio <- lm(log(Esperanza)~ GastoPIB + Renta, data = datos)
m_linlog_ratio <- lm(Esperanza ~ log(GastoPIB) + Renta, data = datos) 
m_loglog_ratio <- lm(log(Esperanza) ~ log(GastoPIB)+Renta, data = datos)
summary(m_linlin_ratio)

Call:
lm(formula = Esperanza ~ GastoPIB + Renta, data = datos)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.95475 -0.23429  0.02424  0.17838  0.85222 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 7.175e+01  7.458e-01  96.200   <2e-16 ***
GastoPIB    4.258e+01  1.562e+01   2.726   0.0103 *  
Renta       3.563e-04  1.982e-05  17.982   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.3967 on 32 degrees of freedom
Multiple R-squared:  0.984, Adjusted R-squared:  0.983 
F-statistic: 983.3 on 2 and 32 DF,  p-value: < 2.2e-16
Código
summary(m_loglin_ratio)

Call:
lm(formula = log(Esperanza) ~ GastoPIB + Renta, data = datos)

Residuals:
       Min         1Q     Median         3Q        Max 
-0.0121989 -0.0028536 -0.0003391  0.0025643  0.0106942 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 4.279e+00  9.524e-03 449.305  < 2e-16 ***
GastoPIB    5.807e-01  1.994e-01   2.912  0.00649 ** 
Renta       4.238e-06  2.530e-07  16.748  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.005065 on 32 degrees of freedom
Multiple R-squared:  0.9822,    Adjusted R-squared:  0.9811 
F-statistic: 883.8 on 2 and 32 DF,  p-value: < 2.2e-16
Código
summary(m_linlog_ratio)

Call:
lm(formula = Esperanza ~ log(GastoPIB) + Renta, data = datos)

Residuals:
    Min      1Q  Median      3Q     Max 
-0.9156 -0.2123  0.0280  0.1555  0.9403 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)    
(Intercept)   8.395e+01  3.205e+00  26.196  < 2e-16 ***
log(GastoPIB) 3.403e+00  1.061e+00   3.208  0.00304 ** 
Renta         3.496e-04  1.920e-05  18.208  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.383 on 32 degrees of freedom
Multiple R-squared:  0.9851,    Adjusted R-squared:  0.9841 
F-statistic:  1056 on 2 and 32 DF,  p-value: < 2.2e-16
Código
summary(m_loglog_ratio)

Call:
lm(formula = log(Esperanza) ~ log(GastoPIB) + Renta, data = datos)

Residuals:
      Min        1Q    Median        3Q       Max 
-0.011667 -0.002673 -0.000224  0.002194  0.012002 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)    
(Intercept)   4.447e+00  4.058e-02 109.593  < 2e-16 ***
log(GastoPIB) 4.684e-02  1.343e-02   3.487  0.00144 ** 
Renta         4.139e-06  2.431e-07  17.027  < 2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.00485 on 32 degrees of freedom
Multiple R-squared:  0.9837,    Adjusted R-squared:  0.9827 
F-statistic: 965.6 on 2 and 32 DF,  p-value: < 2.2e-16
Código
m_linlin_sinrenta <- lm(Esperanza ~ GastoPIB, data = datos)
m_loglin_sinrenta <- lm(log(Esperanza)~ GastoPIB, data = datos)
m_linlog_sinrenta <- lm(Esperanza ~ log(GastoPIB), data = datos)
m_loglog_sinrenta <- lm(log(Esperanza) ~ log(GastoPIB), data = datos)
summary(m_linlin_sinrenta)

Call:
lm(formula = Esperanza ~ GastoPIB, data = datos)

Residuals:
    Min      1Q  Median      3Q     Max 
-0.6934 -0.3375 -0.2704 -0.2088  6.1886 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)    62.05       1.69   36.72  < 2e-16 ***
GastoPIB      291.80      23.62   12.35 6.36e-14 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.302 on 33 degrees of freedom
Multiple R-squared:  0.8222,    Adjusted R-squared:  0.8168 
F-statistic: 152.6 on 1 and 33 DF,  p-value: 6.36e-14
Código
summary(m_loglin_sinrenta)

Call:
lm(formula = log(Esperanza) ~ GastoPIB, data = datos)

Residuals:
      Min        1Q    Median        3Q       Max 
-0.009613 -0.003999 -0.002726 -0.002270  0.074158 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  4.16364    0.02023  205.81  < 2e-16 ***
GastoPIB     3.54466    0.28285   12.53 4.29e-14 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.01559 on 33 degrees of freedom
Multiple R-squared:  0.8264,    Adjusted R-squared:  0.8211 
F-statistic:   157 on 1 and 33 DF,  p-value: 4.291e-14
Código
summary(m_linlog_sinrenta)

Call:
lm(formula = Esperanza ~ log(GastoPIB), data = datos)

Residuals:
    Min      1Q  Median      3Q     Max 
-0.4544 -0.4104 -0.2918 -0.1735  6.0734 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)    137.326      4.300   31.94  < 2e-16 ***
log(GastoPIB)   20.561      1.618   12.71  2.9e-14 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.271 on 33 degrees of freedom
Multiple R-squared:  0.8304,    Adjusted R-squared:  0.8253 
F-statistic: 161.6 on 1 and 33 DF,  p-value: 2.904e-14
Código
summary(m_loglog_sinrenta)

Call:
lm(formula = log(Esperanza) ~ log(GastoPIB), data = datos)

Residuals:
      Min        1Q    Median        3Q       Max 
-0.004879 -0.004553 -0.003795 -0.002363  0.072776 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)    5.07871    0.05123   99.14  < 2e-16 ***
log(GastoPIB)  0.24998    0.01927   12.97 1.66e-14 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.01515 on 33 degrees of freedom
Multiple R-squared:  0.836, Adjusted R-squared:  0.8311 
F-statistic: 168.3 on 1 and 33 DF,  p-value: 1.657e-14

Se pide:\ a. Comparar en terminos de bondad de ajuste, pero con otra especificación que elimine la variable renta:

Código
resultados <- data.frame(
  modelo = c("lin-lin", "log-lin", "lin-log", "log-log",
             "lin-lin ratio", "log-lin ratio", "lin-log ratio", "log-log ratio",
             "lin-lin sin renta", "log-lin sin renta", "lin-log sin renta", "log-log sin renta"),
  R2 = c(summary(m_linlin)$r.squared,
         summary(m_loglin)$r.squared,
         summary(m_linlog)$r.squared,
         summary(m_loglog)$r.squared,
         summary(m_linlin_ratio)$r.squared,
         summary(m_loglin_ratio)$r.squared,
         summary(m_linlog_ratio)$r.squared,
         summary(m_loglog_ratio)$r.squared,
         summary(m_linlin_sinrenta)$r.squared,
         summary(m_loglin_sinrenta)$r.squared,
         summary(m_linlog_sinrenta)$r.squared,
         summary(m_loglog_sinrenta)$r.squared),
  R2_ajustado = c(summary(m_linlin)$adj.r.squared,
                  summary(m_loglin)$adj.r.squared,
                  summary(m_linlog)$adj.r.squared,
                  summary(m_loglog)$adj.r.squared,
                  summary(m_linlin_ratio)$adj.r.squared,
                  summary(m_loglin_ratio)$adj.r.squared,
                  summary(m_linlog_ratio)$adj.r.squared,
                  summary(m_loglog_ratio)$adj.r.squared,
                  summary(m_linlin_sinrenta)$adj.r.squared,
                  summary(m_loglin_sinrenta)$adj.r.squared,
                  summary(m_linlog_sinrenta)$adj.r.squared,
                  summary(m_loglog_sinrenta)$adj.r.squared)
)
resultados
              modelo        R2 R2_ajustado
1            lin-lin 0.9807946   0.9795943
2            log-lin 0.9778756   0.9764928
3            lin-log 0.9891051   0.9884242
4            log-log 0.9879664   0.9872143
5      lin-lin ratio 0.9839885   0.9829878
6      log-lin ratio 0.9822179   0.9811065
7      lin-log ratio 0.9850702   0.9841371
8      log-log ratio 0.9837005   0.9826818
9  lin-lin sin renta 0.8221920   0.8168039
10 log-lin sin renta 0.8263577   0.8210958
11 lin-log sin renta 0.8303954   0.8252559
12 log-log sin renta 0.8360337   0.8310651
  1. A partir de la siguiente información, realice una selección de modelos:
Código
AIC(m_linlin,m_loglin,m_linlog,m_loglog,m_linlin_ratio,m_loglin_ratio,m_linlog_ratio,m_loglog_ratio,m_linlin_sinrenta,m_loglin_sinrenta,m_linlog_sinrenta,m_loglog_sinrenta)
                  df        AIC
m_linlin           4   45.83112
m_loglin           4 -258.13662
m_linlog           4   25.98974
m_loglog           4 -279.45090
m_linlin_ratio     4   39.46527
m_loglin_ratio     4 -265.78381
m_linlog_ratio     4   37.01708
m_loglog_ratio     4 -268.83077
m_linlin_sinrenta  3  121.72413
m_loglin_sinrenta  3 -188.02561
m_linlog_sinrenta  3  120.07092
m_loglog_sinrenta  3 -190.03239
Código
BIC(m_linlin,m_loglin,m_linlog,m_loglog,m_linlin_ratio,m_loglin_ratio,m_linlog_ratio,m_loglog_ratio,m_linlin_sinrenta,m_loglin_sinrenta,m_linlog_sinrenta,m_loglog_sinrenta)
                  df        BIC
m_linlin           4   52.05251
m_loglin           4 -251.91523
m_linlog           4   32.21114
m_loglog           4 -273.22951
m_linlin_ratio     4   45.68667
m_loglin_ratio     4 -259.56242
m_linlog_ratio     4   43.23847
m_loglog_ratio     4 -262.60938
m_linlin_sinrenta  3  126.39018
m_loglin_sinrenta  3 -183.35956
m_linlog_sinrenta  3  124.73697
m_loglog_sinrenta  3 -185.36634
  1. Selecciona un modelo para el caso de trabajar con la variable dependiente y otro para trabajar el modelo con la variable dependiente en su unidad original, y realiza predicciones de la esperanza de vida al nacer en el año 2025, suponiendo que el gasto sanitario es de 99.500 millones de euros, que supone un 8% del PIB y que la renta per capita es de 36.000 euros.

  2. Construye el intervalo de predicción del valor individual de la variable dependiente y concluye en relación a la permanencia estructural del modelo sabiendo que la esperanza de vida al nacer en el año 2025 es de 84 años.

  1. Tenemos un modelo que explica el precio de la vivienda (en miles de euros) en función de los metros cuadrados, el número de habitaciones y el número de baños. Tenemos diez viviendas con los siguientes datos:
Vivienda Metros cuadrados Habitaciones Baños Precio (miles de €)
1 65 2 1 145
2 80 3 2 180
3 95 3 2 210
4 110 4 3 250
5 125 4 3 285
6 140 5 4 320
7 75 2 1 165
8 100 3 2 225
9 130 4 3 300
10 150 5 4 350
  1. Construye la matriz de diseño \(X\) del modelo, incluyendo una columna de unos para el término independiente. Indica el número de filas y columnas de la matriz.

  2. Calcula el rango de la matriz \(X\). Compara el rango obtenido con el número de columnas de \(X\). ¿Qué conclusión puedes extraer sobre la independencia lineal de las variables explicativas?

  3. A partir de los resultados anteriores, determina si es posible estimar de forma única los coeficientes del modelo de regresión mediante Mínimos Cuadrados Ordinarios. Justifica tu respuesta.

  4. Estima un modelo usando solo la variable metros cuadrados y otro modelo alternativo, usando la variable metros cuadrados y el número de habitaciones. Compara ambos modelos en términos de bondad de ajuste.

  1. Dado el modelo de regresión lineal simple \(\mathbf{S} = \beta_{1} + \beta_{2} \cdot \mathbf{E} + \mathbf{u}\), donde \(\mathbf{S}\) es el salario medio por hora (medido en euros) y \(\mathbf{E}\) son los años de escolarización, obtenga (usando, al menos, cuatro decimales) la estimación de las cantidades constantes del modelo (interpretando las estimaciones obtenidas) y el coeficiente de determinación corregido, a partir de la siguiente información:
Código
Salario = c(4.45, 5.77, 7.31, 7.81, 10.67, 13.61)
Escolaridad = c(6, 7, 10, 12, 15, 17)

datos = data.frame(Salario, Escolaridad)
names(datos) = c("Salario medio (euros/hora)", "Escolarización (años)")

kable(datos, align="c")
Salario medio (euros/hora) Escolarización (años)
4.45 6
5.77 7
7.31 10
7.81 12
10.67 15
13.61 17
Código
y = Salario
cte = rep(1, length(y))
X = cbind(cte, Escolaridad)
# 
n = nrow(X)
k = ncol(X)
XX = crossprod(X)
XXinv = solve(XX)
Xy = crossprod(X, y)
colnames(Xy) = c("Salario")
#
beta = as.matrix(XXinv%*%Xy)
e = y - X%*%beta
sigma = crossprod(e)/(n-k)
SCT = crossprod(y) - n*mean(y)*mean(y)
SCE = crossprod(beta, Xy) - n*mean(y)*mean(y)
SCR = crossprod(y) - crossprod(beta, Xy)
R2_1 = SCE/SCT
R2_2 = 1 - SCR/SCT
R2 = R2_1
R2c = 1 - (1-R2)*((n-1)/(n-k))
solucion = list(XX, XXinv, Xy, beta, e, as.double(sigma), as.double(SCT), as.double(SCE), as.double(SCR), as.double(R2_1), as.double(R2_2), as.double(R2c))
names(solucion) = c("XtX", "inversa XtX", "Xty", "beta", "e", "sigma", "SCT", "SCE", "SCR", "R2 = SCE/SCT", "R2 = 1 - SCR/SCT", "R2 corregido")
solucion0 = solucion

¿Qué interpretación tiene un residuo positivo/negativo?

  1. Dado el modelo de regresión lineal múltiple \(\mathbf{y} = \beta_{1} + \beta_{2} \cdot \mathbf{V} + \beta_{3} \cdot \mathbf{Z} + \mathbf{u}\) con \(n=15\) observaciones y \(k=3\) variables independientes, en los siguientes casos, calcule:
  1. La estimación de los coeficientes de las variables independientes: \(\widehat{\boldsymbol{\beta}} = \left( \mathbf{X}^{t} \mathbf{X} \right)^{-1} \mathbf{X}^{t} \mathbf{y}\). Interpretación.
  2. Los errores de la estimación realizada: \(\mathbf{e} = \mathbf{y} - \widehat{\mathbf{y}} = \mathbf{y} - \mathbf{X} \widehat{\boldsymbol{\beta}}\).
  3. La estimación de la varianza de la perturbación aleatoria: \(\widehat{\sigma} = \frac{\mathbf{e}^{t} \mathbf{e}}{n-k}\).
  4. La suma de cuadrados totales: \(SCT = \mathbf{y}^{t}\mathbf{y} - n \cdot \overline{\mathbf{y}}^{2}\).
  5. La suma de cuadrados explicada: \(SCE = \widehat{\boldsymbol{\beta}}^{t} \mathbf{X}^{t} \mathbf{y} - n \cdot \overline{\mathbf{y}}^{2}\).
  6. La suma de cuadrados de los residuos: \(SCR = \mathbf{y}^{t}\mathbf{y} - \widehat{\boldsymbol{\beta}}^{t} \mathbf{X}^{t} \mathbf{y}\).
  7. El coeficiente de determinación: \(R^{2} = \frac{SCE}{SCT} = 1 - \frac{SCR}{SCT}\). ¿Se verifica la igualdad? ¿Por qué? Interpretación.
  8. El coeficiente de determinación corregido: \(\overline{R}^{2} = 1 - (1-R^{2}) \cdot \frac{n-1}{n-k}\).

Responda de forma razonada todas las cuestiones planteadas usando, al menos, cuatro decimales.

(Caso A)

\(\left( \mathbf{y}, \mathbf{X} \right) =\)

Código
X = read.table("data/ortogonal1.txt", header=TRUE, sep=";", dec = ".")  # muy importante indicar el delimitador decimal (si no se dice nada, es el punto)
X = as.matrix(X)
y = 3*X[,1] + 2*X[,2] - 3*X[,3] + round(rnorm(nrow(X), 0, 2), 0)

data.frame(y, X)
     y cte  V  Z
1  -19   1 -7  2
2    1   1 -6 -3
3   -8   1 -5  1
4   -4   1 -4 -2
5  -14   1 -3  4
6    3   1 -2 -1
7   -9   1 -1  3
8    2   1  0  0
9   13   1  1 -3
10   2   1  2  1
11  20   1  3 -4
12   3   1  4  2
13  14   1  5 -1
14   6   1  6  3
15  25   1  7 -2

\(\left( \mathbf{X}^{t} \mathbf{X} \right)^{-1} =\)

Código
XX = crossprod(X)
XXinv = solve(XX)
XXinv
           cte            V            Z
cte 0.06666667 0.0000000000 0.0000000000
V   0.00000000 0.0035924233 0.0004898759
Z   0.00000000 0.0004898759 0.0114304376

\(\mathbf{X}^{t} \mathbf{y} =\)

Código
Xy = crossprod(X, y)
colnames(Xy) = c("y")
Xy 
       y
cte   35
V    598
Z   -284
Código
# soluciones
n = nrow(X)
k = ncol(X)
beta = as.matrix(XXinv%*%Xy)
e = y - X%*%beta
sigma = crossprod(e)/(n-k)
SCT = crossprod(y) - n*mean(y)*mean(y)
SCE = crossprod(beta, Xy) - n*mean(y)*mean(y)
SCR = crossprod(y) - crossprod(beta, Xy)
R2_1 = SCE/SCT
R2_2 = 1 - SCR/SCT
R2 = R2_1
R2c = 1 - (1-R2)*((n-1)/(n-k))
solucion = list(beta, e, as.double(sigma), as.double(SCT), as.double(SCE), as.double(SCR), as.double(R2_1), as.double(R2_2), as.double(R2c))
names(solucion) = c("beta", "e", "sigma", "SCT", "SCE", "SCR", "R2 = SCE/SCT", "R2 = 1 - SCR/SCT", "R2 corregido")
solucionA = solucion

(Caso B)

\(\left( \mathbf{y}, \mathbf{X} \right) =\)

Código
X = read.table("data/ortogonal2.txt", header=TRUE, sep=";", dec = ".")  # muy importante indicar el delimitador decimal (si no se dice nada, es el punto)
X = as.matrix(X)
y = 3*X[,1] + 2*X[,2] - 3*X[,3] + round(rnorm(nrow(X), 0, 2), 0)

data.frame(y, X)
     y cte  X  Z
1  -11   1 -7  0
2   -7   1 -6 -1
3  -12   1 -5  1
4   -4   1 -4 -1
5   -1   1 -3  1
6    2   1 -2 -1
7   -3   1 -1  1
8    2   1  0  0
9    3   1  1  1
10   9   1  2 -1
11   3   1  3  1
12  15   1  4 -1
13   8   1  5  1
14  18   1  6 -1
15  15   1  7  0

\(\left( \mathbf{X}^{t} \mathbf{X} \right)^{-1} =\)

Código
XX = crossprod(X)
XXinv = solve(XX)
XXinv
           cte           X          Z
cte 0.06666667 0.000000000 0.00000000
X   0.00000000 0.003571429 0.00000000
Z   0.00000000 0.000000000 0.08333333

\(\mathbf{X}^{t} \mathbf{y} =\)

Código
Xy = crossprod(X, y)
colnames(Xy) = c("y")
Xy 
      y
cte  37
X   540
Z   -35
Código
# soluciones
n = nrow(X)
k = ncol(X)
beta = as.matrix(XXinv%*%Xy)
e = y - X%*%beta
sigma = crossprod(e)/(n-k)
SCT = crossprod(y) - n*mean(y)*mean(y)
SCE = crossprod(beta, Xy) - n*mean(y)*mean(y)
SCR = crossprod(y) - crossprod(beta, Xy)
R2_1 = SCE/SCT
R2_2 = 1 - SCR/SCT
R2 = R2_1
R2c = 1 - (1-R2)*((n-1)/(n-k))
solucion = list(beta, e, as.double(sigma), as.double(SCT), as.double(SCE), as.double(SCR), as.double(R2_1), as.double(R2_2), as.double(R2c))
names(solucion) = c("beta", "e", "sigma", "SCT", "SCE", "SCR", "R2 = SCE/SCT", "R2 = 1 - SCR/SCT", "R2 corregido")
solucionB = solucion

(Caso C)

\(\left( \mathbf{y}, \mathbf{X} \right) =\)

Código
X = read.table("data/ortogonal3.txt", header=TRUE, sep=";", dec = ".")  # muy importante indicar el delimitador decimal (si no se dice nada, es el punto)
X = as.matrix(X)
y = 3*X[,1] + 2*X[,2] - 3*X[,3] + round(rnorm(nrow(X), 0, 2), 0)

data.frame(y, X)
     y cte  X  Z
1  -12   1 -7  1
2  -10   1 -6  0
3   -8   1 -5  0
4   -6   1 -4  0
5   -6   1 -3  0
6   -3   1 -2  0
7   18   1 -1 -7
8    0   1  0  0
9  -17   1  1  7
10   6   1  2  0
11  12   1  3  0
12   9   1  4  0
13  11   1  5  0
14  14   1  6  0
15  18   1  7 -1

\(\left( \mathbf{X}^{t} \mathbf{X} \right)^{-1} =\)

Código
XX = crossprod(X)
XXinv = solve(XX)
XXinv
           cte           X    Z
cte 0.06666667 0.000000000 0.00
X   0.00000000 0.003571429 0.00
Z   0.00000000 0.000000000 0.01

\(\mathbf{X}^{t} \mathbf{y} =\)

Código
Xy = crossprod(X, y)
colnames(Xy) = c("y")
Xy 
       y
cte   26
X    546
Z   -275
Código
# soluciones
n = nrow(X)
k = ncol(X)
beta = as.matrix(XXinv%*%Xy)
e = y - X%*%beta
sigma = crossprod(e)/(n-k)
SCT = crossprod(y) - n*mean(y)*mean(y)
SCE = crossprod(beta, Xy) - n*mean(y)*mean(y)
SCR = crossprod(y) - crossprod(beta, Xy)
R2_1 = SCE/SCT
R2_2 = 1 - SCR/SCT
R2 = R2_1
R2c = 1 - (1-R2)*((n-1)/(n-k))
solucion = list(beta, e, as.double(sigma), as.double(SCT), as.double(SCE), as.double(SCR), as.double(R2_1), as.double(R2_2), as.double(R2c))
names(solucion) = c("beta", "e", "sigma", "SCT", "SCE", "SCR", "R2 = SCE/SCT", "R2 = 1 - SCR/SCT", "R2 corregido")
solucionC = solucion
  1. Dado el modelo de regresión lineal multiple \(\mathbf{PA} = \beta_{1} + \beta_{2} \cdot \mathbf{P} + \beta_{3} \cdot \mathbf{A} + \mathbf{u}\) donde \(\mathbf{PA}\) es la presión arterial (medida en milímetros de mercurio), \(\mathbf{P}\) el peso (medido en kilogramos) y \(\mathbf{A}\) la altura (medida en metros). Interprete los coeficientes de las variables independientes. ¿Es intuitivo que la altura cambie y el peso no varie?

  2. Dado el modelo de regresión lineal multiple \(\mathbf{S} = \beta_{1} + \beta_{2} \cdot \mathbf{E} + \beta_{3} \cdot \mathbf{G} + \mathbf{u}\) donde \(\mathbf{S}\) es el salario medio por hora (medido en euros), \(\mathbf{E}\) son los años de escolarización y \(\mathbf{E}\) es el género (donde masculino se codifica como 1 y en cualquier otro caso se usa el 0), interprete \(\beta_{1}\), \(\beta_{2}\), \(\beta_{3}\) y \(\beta_{1}+\beta_{3}\)

  3. Dado el modelo de regresión lineal multiple: \[\mathbf{S} = \beta_{1} + \beta_{2} \cdot \mathbf{E} + \beta_{3} \cdot \mathbf{G} + \beta_{4} \cdot \mathbf{G} \times \mathbf{E} + \mathbf{u},\] donde \(\mathbf{S}\) es el salario medio por hora (medido en euros), \(\mathbf{E}\) son los años de escolarización y \(\mathbf{E}\) es el género (donde masculino se codifica como 1 y en cualquier otro caso se usa el 0). Se pide contestar de forma razonada las siguientes cuestiones:

  1. Obtenga el efecto de la escolarización sobre el salario medio si \((\widehat{\beta}_{2}, \widehat{\beta}_{4}) = (4, 2)\) ó \((\widehat{\beta}_{2}, \widehat{\beta}_{4}) = (4, -3)\).
  2. ¿Cuál sería la interpretación de \(\beta_{1}\)? ¿Esta interpretación cambia si se centra la variable referente a los años de escolarización?
  3. ¿Cómo se obtendría el efecto del género sobre el salario medio?