ANOVA

Prueba de significancia de la regresión:

Con esta prueba se busca determinar si existe una relación lineal entre \(y\) y alguna de las variables regresosas \(x_j\). Este procedimiento es una prueba de adecuación del modelo.

Pruebas de hipótesis:

\[H_0: \beta_1 = \beta_2 = ... = \beta_k\]
\[H_1: \beta_j \neq 0\]

En \(H_1\) se cumple con al menos una \(j\) es diferente de cero, indica que al menos un coeficiente Beta cumple. Rechazar la hipótesis nula implica que al menos una regresora contribuye al modelo de forma significativa. El procedimiento para esta prueba es el análisis de varianza o también llamado ANOVA.

Análisis de varianza:

Este método se usa para probar el significado de la regresión. Aporta información adicional sobre qué tan bien funciona el modelo de regresión.

Se basa en una partición de la variabilidad total de la variable \(y\) en dos.

La variabilidad total la denotaremos como \(SST\), es la suma de las diferencias al cuadrado de las observaciones con respecto a la media.

\[SST = \sum_{i=1}^n{(y_i-\overline{y_i})^2}\]

\(SST\) es el sumatoria del cuadrado del error de la predicción, \(\varepsilon_i^2=\sum{y_i-\overline{y_i}}\), que es una medida de la variabilidad de \(y\) sin considerar el efecto de las variables regresoras. \(SST\) se puede descomponer en dos: variabilidad por la regresión, \(SSR\), y en variabilidad residual que queda sin explicar, \(SSE\). \(SSE\) es una medida de variabilidad de \(y\) que queda después de haber tenido en consideración a las variables regresoras.

\[SST = SSR + SSE\]

Variabilidad Tota = Variabilidad Explicada + Variabilidad no Explicada.

\[SSR = \sum_{i=1}^n{(\hat{y_i}-\overline{y_i})^2}\]
\[SSE = \sum{\hat{\varepsilon}^2} = \sum_{}(y_i-\hat{y_i})^2\]
\[SST = \sum_{i=1}^n{(y_i-\overline{y_i})^2}=\sum_{i=1}^n{(\hat{y_i}-\overline{y_i})^2}+\sum_{}(y_i-\hat{y_i})^2\]
SST

SST

\(SSR\) también podría considerarse como la mejora en la predicción sobre la media de los datos de las variables explicativas.

\(SSE\) es la variabilidad sobrante en \(y\) después de tener en cuenta las variables explicativas o regresoras.

Se asume que toda la variación en \(y\) se tiene en cuenta con la variabilidad en las variables regresoras, \(SSR\), y con la variabilidad aleatoria \(SSE\); sin embargo, esto no descarta que se pueda hacer otras variables que expliquen porciones de la variabilidad de \(y\).

Ahora, se debe usar las estadísticas de bondad de ajuste para evaluar qué parte de la variabilidad en la variable :math:`y` es representada por el modelo de regresión lineal múltiple.

\(R^2\) coeficiente de determinación:

\(R^2\) se encuentra entre cero y uno, donde cero indica que \(SSR\) es cero y el uno indica que \(SSR = SST\) con \(SSE = 0\). Un \(R^2\) denota que las variables explicativas predicen perfectamente la variable resultados \(y\), esto es que la predicción perfecta indica que las observaciones caen directamente en la línea del ajuste lineal (esto para RLS), para RLM las observaciones caen en el plano del ajuste del modelo.

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

\(R^2\) ajustado:

El \(R^2\) ajustado es el mismo \(R^2\), pero ajustado por el número de variables regresoras en el modelo. El \(R^2\) ajustado puede disminuir al incluir más variables.

\[R^2_{Ajd} = \left(R^2 - \frac{k}{n-1} \right) \left( \frac{n-1}{n-k-1} \right)\]

Donde,

\(n\): tamaño de la muestra. Número de observaciones por cada variable.

\(k\): número de variables explicativas en el modelo.

Los valores de \(R^2\) siguen una distribución \(F\). Esta distribución tiene dos grados de libertad, conocidos como los grados de libertad del numerador y del denominador. Los grados de libertad de numerador, es el número de variables explicativas \(k\) del modelo y los grados de libertad de denominador es el tamaño de la muestra \(n\) menos el número de variables explicativas \(k\) menos uno \((n-k-1)\).

A continuación se muestra la tabla ANOVA (Analysis of Variance). Esta tabla muestra los valores para \(SST\), \(SSR\), \(SSE\) y la forma para calcular el estadístico \(F\).

ANOVA

ANOVA

Así que:

\[F_0 = \frac{\frac{SSR}{k}}{\frac{SSE}{n-k-1}} = \frac{SSR/k}{\sigma^2}\]

Con el análisis de varianza se calcula el estadístico de prueba \(F_0\) para aceptar o rechazar la hipótesis hula \(H_0\). Si \(F_0\) es grande, es probable que al menos una \(\beta \neq 0\), es decir, se rechaza la hipótesis nula.

\(H_0\) se rechaza si:

\[F_0 > F_{\alpha, k, n-k-1}\]

Un valor relativamente grande de \(F\) y un \(Valor-p\) pequeño, proporcionan evidencia de que el \(R^2\) es mayor que cero.

El analista puede utilizar el \(R^2\) o \(R^2_{adj}\) y la prueba \(F\) para determinar la importancia del modelo. Una posible conclusión podría ser la siguiente: el modelo representa el 70% de la variabilidad y este porcentaje es significativamente mayor que cero. Esta frase se cumple con un \(R^2\) o \(R^2_{adj}\) igual a 0,70 y que \(F\) sea los suficientemente grande y además, un \(Valor-p\) pequeño.

MSE:

Con los valores de la tabla ANOVA podemos calcular el MSE (Mean Squared Error) que es el error cuadrático medio.

\[MSE = \frac{1}{n-k-1} \sum (y_i - \hat{y_i})^2 =\frac{1}{n-k-1} \sum \hat\varepsilon^2\]
\[MSE = \frac{SSE}{n-k-1}\]

En el MSE, el \(SSE\) se divide por los grados de libertad, \(n-k-1\). El MSE también se denomina varianza residual \(\sigma^2\), que cuantifica la varianza de los residuales.

De esta forma, la varianza de los residuos es el MSE, entonces, la desviación estándar de los residuos es la raíz cuadrada del MSE y se denota RMSE (root-mean-square error).

\[RMSE = \sqrt{(MSE)}\]

Las métricas MSE y RMSE también se emplean como estadísticas de bondad de ajuste porque valores pequeños indican menor variación en los residuos del modelo. Esto sería que los valores predichos están más cerca, en promedio, de los valores reales y, por tanto, el modelo está haciendo un mejor trabajo al predecir la variable \(y\).

Código en R:

datos = read.csv("DatosCafe.csv", sep = ";", dec = ",", header = T)
print(head(datos))
   Fecha PrecioInterno PrecioInternacional Producción Exportaciones     TRM
1 ene-00        371375              130.12        658           517 1923.57
2 feb-00        354297              124.72        740           642 1950.64
3 mar-00        360016              119.51        592           404 1956.25
4 abr-00        347538              112.67       1055           731 1986.77
5 may-00        353750              110.31       1114           615 2055.69
6 jun-00        341688              100.30       1092           869 2120.17
     EUR
1 1916.0
2 1878.5
3 1875.0
4 1832.0
5 1971.5
6 2053.5

Ajuste del modelo:

\[Exportaciones = \beta_0+\beta_1Producción +\beta_2 PrecioInternacional +\beta_3 PrecioInterno ++\beta_4TRM +\beta_5 EUR +\varepsilon\]
regression <- lm(Exportaciones ~ Producción + PrecioInternacional + PrecioInterno + TRM + EUR, data = datos)
summary(regression)
Call:
lm(formula = Exportaciones ~ Producción + PrecioInternacional +
    PrecioInterno + TRM + EUR, data = datos)

Residuals:
    Min      1Q  Median      3Q     Max
-507.57  -73.29   -2.66   74.68  400.44

Coefficients:
                      Estimate Std. Error t value Pr(>|t|)
(Intercept)          2.800e+02  1.172e+02   2.390   0.0176 *
Producción           5.806e-01  3.284e-02  17.681   <2e-16 *
PrecioInternacional -1.045e+00  6.248e-01  -1.673   0.0956 .
PrecioInterno        1.878e-04  1.311e-04   1.432   0.1533
TRM                 -3.049e-02  5.367e-02  -0.568   0.5704
EUR                  5.335e-02  2.725e-02   1.958   0.0513 .
---
Signif. codes:  0 '*' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 121.1 on 258 degrees of freedom
Multiple R-squared:  0.7055,        Adjusted R-squared:  0.6998
F-statistic: 123.6 on 5 and 258 DF,  p-value: < 2.2e-16

Tabla ANOVA:

anova <- anova(regression)
print(anova)
Analysis of Variance Table

Response: Exportaciones
                     Df  Sum Sq Mean Sq  F value    Pr(>F)
Producción            1 8556536 8556536 583.4640 < 2.2e-16 *
PrecioInternacional   1    3278    3278   0.2235    0.6368
PrecioInterno         1  439697  439697  29.9826 1.033e-07 *
TRM                   1    9752    9752   0.6650    0.4156
EUR                   1   56227   56227   3.8341    0.0513 .
Residuals           258 3783586   14665
---
Signif. codes:  0 '*' 0.001 '' 0.01 '*' 0.05 '.' 0.1 ' ' 1

\(k\): cantidad de variables explicativas.

k <- length(regression$coefficients) - 1
print(k)
[1] 5

\(n\): tamaño de la muestra.

n <- length(regression$residuals)
print(n)
[1] 264

Suma de cuadrados - Sum Sq:

SS <- anova$`Sum Sq`
print(SS)
[1] 8556536.044    3277.966  439697.106    9752.074   56226.905 3783586.184

Cuadrado medio - Mean Sq:

MS <- anova$`Mean Sq`
print(MS)
[1] 8556536.044    3277.966  439697.106    9752.074   56226.905   14665.063

F - F value:

F <- anova$`F value`
print(F)
[1] 583.4639921   0.2235221  29.9826270   0.6649868   3.8340719          NA

Valor-p para F - Pr(>F):

p_value <- anova$`Pr(>F)`
print(p_value)
[1] 3.498183e-68 6.367690e-01 1.033471e-07 4.155571e-01 5.129843e-02
[6]           NA

SSR:

\[SSR = \sum_{i=1}^n{(\hat{y_i}-\overline{y_i})^2}\]
SSR <- sum((regression$fitted.values - mean(datos[, "Exportaciones"]))^2)
print(SSR)
[1] 9065490
print(sum(SS[0:k]))   # Suma de los SS sin contar el de los Residuales.
[1] 9065490

SSE:

\[SSE = \sum{\hat{\varepsilon}^2} = \sum_{}(y_i-\hat{y_i})^2\]
SSE <- sum(regression$residuals^2)
print(SSE)
[1] 3783586

SST:

\[SST = \sum_{i=1}^n{(y_i-\overline{y_i})^2}=\sum_{i=1}^n{(\hat{y_i}-\overline{y_i})^2}+\sum_{}(y_i-\hat{y_i})^2\]
SST <- SSR + SSE
print(SST)
[1] 12849076

\(R^2\):

\[R^2 = \frac{SSR}{SST} = 1 - \frac{SSE}{SST}\]
R2 <- SSR/SST
print(R2)
[1] 0.7055363
R2 <- 1 - SSE/SST
print(R2)
[1] 0.7055363

\(R^2\) ajustado:

\[R^2_{Ajd} = \left(R^2 - \frac{k}{n-1} \right) \left( \frac{n-1}{n-k-1} \right)\]
R2_adj <- (R2-k/(n-1))*((n-1)/(n-k-1))
print(R2_adj)
[1] 0.6998297

\(F_0\):

\[F_0 = \frac{\frac{SSR}{k}}{\frac{SSE}{n-k-1}} = \frac{SSR/k}{\sigma^2}\]
F <- (SS[1:k])/(SS[k+1]/(n-k-1))
print(F)
[1] 583.4639921   0.2235221  29.9826270   0.6649868   3.8340719

MSE - \(\sigma^2\):

\[MSE = \frac{1}{n-k-1} \sum (y_i - \hat{y_i})^2 =\frac{1}{n-k-1} \sum \hat\varepsilon^2\]
\[MSE = \frac{SSE}{n-k-1}\]
MSE <- SSE/(n-k-1)
print(MSE)
[1] 14665.06

\(F_0\): con \(\sigma^2\)

print(SS[1:k]/MSE)
[1] 583.4639921   0.2235221  29.9826270   0.6649868   3.8340719

RMSE:

RMSE <- sqrt(MSE)
print(RMSE)
[1] 121.0994