Parte I.

1. Para un modelo con dos regresores, la matriz de correlación es [1, 0.96; 0.96, 1], el VIF es de:

options(scipen = 9999)
library(stargazer)
# Construyendo la matriz R.
Mat_R <- matrix(c(1,0.96,0.96,1), nrow = 2, byrow = TRUE)
stargazer(Mat_R, type = "html")
1 0.960
0.960 1
# Cálculo de los VIF.
VIF <- diag(solve(Mat_R))
print(VIF)

[1] 12.7551 12.7551

Respuesta: El VIF es de 12.7551.

2. Prueba robusta para evaluar la normalidad de los residuos, independientemente del tamaño muestral:

Respuesta: La prueba Jarque Bera (JB).

3. En una prueba de FG, para un modelo con 5 regresores y 60 observaciones con un alfa de 4.3%, el estadístico de prueba dio 40, el valor del determinante de la matriz de correlación del modelo es de:

options(scipen = 9999)
m <- 5
n <- 60
FG_estad <- 40

# Despejando |R|:
Det_R <- exp(FG_estad/-(n-1-((2*m+5)/6)))
stargazer(Det_R, type = "html", digits = 7)
0.4926459
Respuesta: El determinante de la matriz de correlación es de 0.4926459.

4. Si el VIF para una variable es de 2.5, el coeficiente de correlación entre la variable y el resto de regresores es de:

options(scipen = 9999)
VIF_var <- 2.5

# Siendo el VIF el recíproco de la tolerancia, despejando:
Coef_corr <- 1-(VIF_var^-1)
stargazer(Coef_corr, type = "html")
0.600
Respuesta: El coeficiente de correlación es de 0.6.

5. Sean 10, 15, -10, -15, 4, -4; los residuos de un modelo. El estadístico de prueba para el contraste de normalidad KS es:

# Construyendo la matriz de residuos.
Residuos <- matrix(c(10,15,-10,-15,4,-4),
                   nrow = 6, byrow = TRUE)
print(Residuos)
##      [,1]
## [1,]   10
## [2,]   15
## [3,]  -10
## [4,]  -15
## [5,]    4
## [6,]   -4
# Aplicando la prueba KS (Lillierfors).
library(nortest)
lillie.test(Residuos)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  Residuos
## D = 0.1374, p-value = 0.9763
Respuesta: El estadístico KS es 0.1374.

6. En una prueba de FG, para un modelo con 5 regresores y un alfa de 4.3%, el valor crítico es de:

options(scipen = 9999)
Regresores <- 5
Alfa <- 0.043
Gl <- ((Regresores*(Regresores-1))/2)

# Calculando el VC
VC <- qchisq(p = Alfa, df = Gl, lower.tail = FALSE)
stargazer(VC, type = "html", digits = 5)
18.79093
Respuesta: El valor crítico FG es de 18.79093.

7. Sean 10,15,-10,-15,4,-4, los residuos de un modelo. El estadístico de prueba para el contraste de normalidad JB es:

# Teniendo la matriz de residuos (Residuos), se calcula el estadístico JB.
library(normtest)
jb.norm.test(Residuos)
## 
##  Jarque-Bera test for normality
## 
## data:  Residuos
## JB = 0.51072, p-value = 0.604
Respuesta: El estadísco de prueba JB es de 0.51072.

8. Para una tolerancia de 0.05 el VIF es de:

# Siendo la tolerancia, el recíproco del VIF.
Tolerancia <- 0.05
Vif <- (Tolerancia^-1)
stargazer(Vif, type = "html")
20
Respuesta: El VIF es de 20.

9. Sean 10,15,-10,-15,4,-4; los residuos de un modelo. El estadístico de prueba para el contraste de normalidad de Shapiro Wilk es:

# Teniendo la matriz de residuos (Residuos), se calcula el estadístico Shapiro Wilk.
shapiro.test(Residuos)
## 
##  Shapiro-Wilk normality test
## 
## data:  Residuos
## W = 0.96164, p-value = 0.8323
Respuesta: El estadístico de prueba Shapiro Wilk es de 0.96164.

10. Para un VIF = 2.5, la tolerancia es de:

# DAdo que el VIF es el recíproco de la tolerancia.
Tol <- (2.5 ^-1)
stargazer(Tol, type = "html", digits = 2)
0.40
Respuesta: La tolerancia es de 0.4.

Parte II.

Clave 1.

Sea el conjunto de datos, indicados en el enlace de abajo, tomados en 24 meses correspondientes a los gastos de comercialización (C) de una empresa, el nivel de ventas (V), su coste de personal (P) y los costes de materias primas (M); se trata de estimar el nivel de ventas a partir de las restantes variables.

1. Estime el modelo de regresión lineal, correspondiente y verifique el supuesto de normalidad, usando todas las pruebas vistas en clase. Comente sus resultados.

2. Utilizando todas las herramientas vistas en clase, evalué la situación de colinealidad de los regresores del modelo. Comente sus resultados.

1. Carga de datos.

options(scipen = 9999)
library(readxl)
ventas_empresa <- read_excel("ventas_empresa.xlsx")

2. Estimando el modelo.

modelo_ventas <- lm(formula = V~C+P+M, data = ventas_empresa)
stargazer(modelo_ventas, title = "Modelo Estimado de Ventas", type = "html", digits = 6)
Modelo Estimado de Ventas
Dependent variable:
V
C 0.922567***
(0.222733)
P 0.950177***
(0.155845)
M 1.297786***
(0.430729)
Constant 107.443500***
(18.057490)
Observations 24
R2 0.979817
Adjusted R2 0.976789
Residual Std. Error 9.505570 (df = 20)
F Statistic 323.641500*** (df = 3; 20)
Note: p<0.1; p<0.05; p<0.01

3. Verificando los supuestos de normalidad.

3.1 Gráfica preliminar.
library(fitdistrplus)
ajuste_normal_1 <- fitdist(data = modelo_ventas$residuals, distr = "norm")
plot(ajuste_normal_1)

De forma preliminar, puede observarse que los residuos tienen un comportamiento normal.
3.2 Prueba de Jarque-Bera.
library(normtest)
jb.norm.test(modelo_ventas$residuals)
## 
##  Jarque-Bera test for normality
## 
## data:  modelo_ventas$residuals
## JB = 1.4004, p-value = 0.2755
Asumiendo un nivel de significancia del 5%, al aplicar la prueba JB, por el método del p_value se tiene que 0.273 > 0.05, por lo que no se rechaza H0 y se aporta evidencia de que los residuos efectivamente siguen una distribución normal, tal como se observa en el gráfico.
3.3 Prueba KS (Lillierfors).
library(nortest)
lillie.test(modelo_ventas$residuals)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo_ventas$residuals
## D = 0.13659, p-value = 0.2935
Para un nivel de significancia del 5%, al aplicar la prueba KS, se tiene, por el método del p_value que 0.2935 > 0.05, por lo que no se rechaza H0, esto aporta evidencia de que los residuos siguen una distribución normal.
3.4 Prueba Shapiro-Wilk (extendida).
shapiro.test(modelo_ventas$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo_ventas$residuals
## W = 0.95315, p-value = 0.3166
Con un nivel de significancia del 5%, aplicando la prueba Shapiro-Wilk (extendida) y a través del método del valor_p, se tiene que, 0.3166 > 0.05, por lo que no se rechaza H0 y existe evidencia de que los residuos tienen una distribución normal.
Al evaluar el supuesto de normalidad a través de las 3 pruebas, se tiene un escenario robusto que evidencia que los residuos tienen distribución normal.

4. Evaluando la situación de colinelidad.

4.1 Índice de condición (usando mctest).
library(mctest)
source(file = "C:/Archivos R/correccion_eigprop.R")
my_eigprop(mod = modelo_ventas)
## 
## Call:
## my_eigprop(mod = modelo_ventas)
## 
##   Eigenvalues      CI (Intercept)      C      P      M
## 1      3.9869  1.0000      0.0007 0.0001 0.0003 0.0001
## 2      0.0095 20.4852      0.8776 0.0049 0.0877 0.0075
## 3      0.0028 37.8141      0.1183 0.1594 0.8478 0.0636
## 4      0.0008 71.1635      0.0034 0.8356 0.0642 0.9288
## 
## ===============================
## Row 4==> C, proportion 0.835554 >= 0.50 
## Row 3==> P, proportion 0.847805 >= 0.50 
## Row 4==> M, proportion 0.928751 >= 0.50
Puesto que el Índice de Condición es de 71.1635, K(x)>30, se detecta un nivel de colinealidad severo.
4.2 Prueba de Farrar-Glaubar (usando la la librería psych).
library(psych)
mat_x1 <- model.matrix(modelo_ventas)
FG_test1 <- cortest.bartlett(mat_x1[,-1])
print(FG_test1)
## $chisq
## [1] 71.20805
## 
## $p.value
## [1] 0.000000000000002352605
## 
## $df
## [1] 3
FG_VC1 <- qchisq(0.05, FG_test1$df, lower.tail = FALSE)
print(FG_VC1)
## [1] 7.814728
# Graficando los resultados.
options(scipen = 0)
library(fastGraph)
shadeDist(xshade = FG_test1$chisq, ddist = "dchisq", parm1 = FG_test1$df,
          lower.tail = FALSE, sub = paste("VC:", FG_VC1, "FG:", FG_test1$chisq))

Al aplicar la prueba FG, se tiene que el X2FG > VC, (71.21 > 7.81), se rechaza H0 y la prueba aporta evidencia de colineadlidad en los regresores.
4.3 Factores Inflacionarios de la Varianza.
- VIF (usando librería car).
library(car)
VIF_Car1 <- vif(modelo_ventas)
print(VIF_Car1)
##        C        P        M 
## 7.631451 3.838911 9.449210
- VIF (usando librería Mctest).
mc.plot(mod = modelo_ventas, vif = 2)

Considerando un coeficiente de correlación entre los regresores menor o igual a 0.5, se obtiene un umbral de tolerancia para los VIF igual a 2; con el que se detecta que los regresores C y M son los que más aumentan la varianza, con 7.631 y 9.449 respectivamente.
Al evaluar la situación de colinealidad de los regresores del modelo por medio de las herramientas utilizadas, se tiene un escenario robusto que evidencia la existencia de colinealidad en los mismos.

Clave 2.

Se tienen los datos para trabajadores hombres, en el archivo adjunto, con ellos estime un modelo donde educ es años de escolaridad, como variable dependiente, y como regresores sibs (número de hermanos), meduc (años de escolaridad de la madre) y feduc (años de escolaridad del padre).

1. Estime el modelo de regresión lineal, correspondiente y verifique el supuesto de normalidad, usando todas las pruebas vistas en clase. Comente sus resultados.

2. Utilizando todas las herramientas vistas en clase, evalué la situación de colinealidad de los regresores del modelo. Comente sus resultados.

1. Carga de datos.

load("C:/Archivos R/escolaridad.Rdata")

2. Estimando el modelo.

modelo_escolaridad <- lm(formula = educ~sibs+meduc+feduc, data = wage2)
stargazer(modelo_escolaridad, type = "html", title = "Modelo estimado de años de Escolaridad", digits = 6 )
Modelo estimado de años de Escolaridad
Dependent variable:
educ
sibs -0.093636***
(0.034471)
meduc 0.130787***
(0.032689)
feduc 0.210004***
(0.027475)
Constant 10.364260***
(0.358500)
Observations 722
R2 0.214094
Adjusted R2 0.210810
Residual Std. Error 1.987052 (df = 718)
F Statistic 65.198250*** (df = 3; 718)
Note: p<0.1; p<0.05; p<0.01

3. Verificando los supuestos de normalidad.

3.1 Gráfica preliminar.
ajuste_normal_2 <- fitdist(data = modelo_escolaridad$residuals, distr = "norm")
plot(ajuste_normal_2)

De forma preliminar, puede observarse que en los residuos hay una posible ausencia de distribución normal.
3.2 Prueba de Jarque-Bera.
jb.norm.test(modelo_escolaridad$residuals)
## 
##  Jarque-Bera test for normality
## 
## data:  modelo_escolaridad$residuals
## JB = 35.655, p-value < 2.2e-16
Con un α = 5%, se tiene un VC de 4.6052.Al aplicar la prueba JB, por el método del Vc, se obtuvo un estadístico JB de 35.655, teniéndose que 35.655 > 4.6052, así que se rechaza H0 y se aporta evidencia de que los residuos efectivamente no siguen una distribución normal.
3.3 Prueba KS (Lillierfors).
lillie.test(modelo_escolaridad$residuals)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo_escolaridad$residuals
## D = 0.089992, p-value = 3.394e-15
Teniendo un α = 5% se tiene un VC = 0.0286 según tablas, y al aplicar la prueba KS, se obtiene a través del método del VC que 0.089992 > 0.028645, por lo que se rechaza H0, la prueba aporta evidencia de que los residuos no siguen una distribución normal.
3.4 Prueba Shapiro-Wilk (extendida).
shapiro.test(modelo_escolaridad$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo_escolaridad$residuals
## W = 0.96692, p-value = 1.058e-11
# Normalizando W.
## Utilizando W:
W2 <- 0.96692

# Cálculo Miu.
miu2 <- 0.0038915*((log(722))^3)-0.083751*((log(722))^2)-0.31082*(log(722))-1.5861

## cálculo de Sigma.
sigma2 <- exp((0.0030302*(log(722)^2))-0.082676*(log(722))-0.4803)

## Cálculo Wn.
Wn2 <- (log(1-W2)-miu2)/sigma2
print(Wn2)
## [1] 6.697959
Considerando un α = 5%, se obtiene un VC de 1.644854, aplicando la prueba Shapiro-Wilk (extendida) y a través del método del VC se tiene que 6.697959 > 1.644854, se rechaza H0, por lo tanto existe evidencia de que los residuos no tienen una distribución normal.
Al evaluar el supuesto de normalidad a través de las 3 pruebas, se tiene un escenario robusto que evidencia que los residuos no tienen distribución normal.

4. Evaluando la situación de colinelidad.

4.1 Índice de condición (usando mctest).
my_eigprop(modelo_escolaridad)
## 
## Call:
## my_eigprop(mod = modelo_escolaridad)
## 
##   Eigenvalues      CI (Intercept)   sibs  meduc  feduc
## 1      3.5576  1.0000      0.0033 0.0194 0.0031 0.0046
## 2      0.3756  3.0778      0.0015 0.7200 0.0107 0.0184
## 3      0.0417  9.2337      0.3235 0.1056 0.0813 0.8786
## 4      0.0251 11.9094      0.6717 0.1549 0.9049 0.0984
## 
## ===============================
## Row 2==> sibs, proportion 0.720032 >= 0.50 
## Row 4==> meduc, proportion 0.904919 >= 0.50 
## Row 3==> feduc, proportion 0.878599 >= 0.50
Calculando el Índice de Condición por medio de la librería mctest, se obtiene un K(x)= 11.9094 < 20, lo que implica un nivel de colinealidad leve, por lo que no se considera un problema.
4.2 Prueba de Farrar-Glaubar (usando la la librería psych).
mat_x2 <- model.matrix(modelo_escolaridad)
FG_test2 <- cortest.bartlett(mat_x2[,-1])
print(FG_test2)
## $chisq
## [1] 358.3897
## 
## $p.value
## [1] 2.27501e-77
## 
## $df
## [1] 3
FG_VC2 <- qchisq(0.05, FG_test2$df, lower.tail = FALSE)
print(FG_VC2)
## [1] 7.814728
# Graficando los resultados.
options(scipen = 0)
library(fastGraph)
shadeDist(xshade = FG_test2$chisq, ddist = "dchisq", 
          parm1 = FG_test2$df,lower.tail = FALSE, 
          sub = paste("VC:", FG_VC2, "FG:", FG_test2$chisq))

Al aplicar la prueba FG, se tiene que el X2FG > VC, (358.3897 > 7.81), se rechaza H0 y la prueba aporta evidencia de colineadlidad en los regresores.
4.3 Factores Inflacionarios de la Varianza.
- VIF (usando librería car).
VIF_Car2 <- vif(modelo_escolaridad)
print(VIF_Car2)
##     sibs    meduc    feduc 
## 1.098950 1.561254 1.506359
- VIF (usando librería Mctest).
mc.plot(mod = modelo_escolaridad, vif = 2)

Considerando un coeficiente de correlación entre los regresores menor o igual a 0.5, se obtiene un umbral de tolerancia para los VIF igual a 2;con el cual se evaluan los regresores y se determina que ninguno supera dicho umbral; por lo que ninguno infla considerablemente la varianza.

Al evaluar la situación de colinealidad de los regresores del modelo por medio de las herramientas utilizadas, se tiene un escenario robusto que evidencia la existencia de colinealidad leve.

Clave 3.

El sueldo inicial medio (salary) para los recién graduados de la Facultad de Economía se determina mediante una función lineal: log(salary)=f(SAT,GPA,log(libvol),log(cost),rank)

Donde LSAT es la media del puntaje LSAT del grupo de graduados, GPA es la media del GPA (promedio general) del grupo, libvol es el número de volúmenes en la biblioteca de la Facultad de Economía, cost es el costo anual por asistir a dicha facultad y rank es una clasificación de las escuelas de Economía (siendo rank 1 la mejor)

1. Estime el modelo de regresión lineal, correspondiente y verifique el supuesto de normalidad, usando todas las pruebas vistas en clase. Comente sus resultados.

2. Utilizando todas las herramientas vistas en clase, evalué la situación de colinealidad de los regresores del modelo. Comente sus resultados.

1. Carga de datos.

load("C:/Archivos R/salary.Rdata")

2. Estimando el modelo.

formula3 <- as.formula("lsalary~LSAT+GPA+llibvol+lcost+rank")
modelo_sueldoinicial <- lm(formula = formula3, data = LAWSCH85)
stargazer(modelo_sueldoinicial, type = "html", title = "Modelo estimado de sueldo inicial medio", digits = 6 )
Modelo estimado de sueldo inicial medio
Dependent variable:
lsalary
LSAT 0.004696
(0.004010)
GPA 0.247524***
(0.090037)
llibvol 0.094993***
(0.033254)
lcost 0.037554
(0.032106)
rank -0.003325***
(0.000348)
Constant 8.343226***
(0.532519)
Observations 136
R2 0.841685
Adjusted R2 0.835596
Residual Std. Error 0.112412 (df = 130)
F Statistic 138.229800*** (df = 5; 130)
Note: p<0.1; p<0.05; p<0.01

3. Verificando los supuestos de normalidad.

3.1 Gráfica preliminar.
ajuste_normal_3 <- fitdist(data = modelo_sueldoinicial$residuals, distr = "norm")
plot(ajuste_normal_3)

De forma preliminar, puede observarse que en los residuos hay una posible presencia de distribución normal.
3.2 Prueba de Jarque-Bera.
jb.norm.test(modelo_sueldoinicial$residuals)
## 
##  Jarque-Bera test for normality
## 
## data:  modelo_sueldoinicial$residuals
## JB = 0.36511, p-value = 0.848
Considerando un α = 5%.Al aplicar la prueba JB, por el método del valor_p, se tiene que, 0.83 > 0.05, así que no se rechaza H0 y se aporta evidencia de que los residuos efectivamente siguen una distribución normal, tal como se consideraba en primera instancia por medio del gráfico.
3.3 Prueba KS (Lillierfors).
lillie.test(modelo_sueldoinicial$residuals)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo_sueldoinicial$residuals
## D = 0.054571, p-value = 0.4123
Teniendo un α = 5%, al aplicar la prueba KS, se obtiene a través del método del valor_p que 0.4123 > 0.05, por lo que no se rechaza H0, la prueba aporta evidencia de que los residuos siguen una distribución normal.
3.4 Prueba Shapiro-Wilk (extendida).
shapiro.test(modelo_sueldoinicial$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo_sueldoinicial$residuals
## W = 0.99282, p-value = 0.7235
# Normalizando W.
## Utilizando W:
W3 <- 0.99282

# Cálculo Miu.
miu3 <- 0.0038915*((log(136))^3)-0.083751*((log(136))^2)-0.31082*(log(136))-1.5861

## cálculo de Sigma.
sigma3 <- exp((0.0030302*(log(136)^2))-0.082676*(log(136))-0.4803)

## Cálculo Wn.
Wn3 <- (log(1-W3)-miu3)/sigma3
print(Wn3)
## [1] -0.5943665
Considerando un α = 5%, se obtiene un VC de 1.644854, aplicando la prueba Shapiro-Wilk (extendida) y a través del método del VC se tiene que -0.5943665 < 1.644854, no se rechaza H0, por lo tanto existe evidencia de que los residuos tienen una distribución normal.
Al evaluar el supuesto de normalidad a través de las 3 pruebas, se tiene un escenario robusto que evidencia que los residuos tienen distribución normal.

4. Evaluando la situación de colinelidad.

4.1 Índice de condición (usando mctest).
my_eigprop(modelo_sueldoinicial)
## 
## Call:
## my_eigprop(mod = modelo_sueldoinicial)
## 
##   Eigenvalues       CI (Intercept)   LSAT    GPA llibvol  lcost   rank
## 1      5.7351   1.0000      0.0000 0.0000 0.0000  0.0001 0.0000 0.0021
## 2      0.2604   4.6930      0.0000 0.0000 0.0002  0.0004 0.0001 0.2884
## 3      0.0021  52.4800      0.0058 0.0030 0.0007  0.8411 0.1155 0.1357
## 4      0.0018  55.7648      0.0002 0.0010 0.3355  0.1095 0.1756 0.0161
## 5      0.0004 123.2068      0.4254 0.0588 0.4407  0.0423 0.6610 0.4700
## 6      0.0002 186.7153      0.5686 0.9371 0.2229  0.0066 0.0478 0.0877
## 
## ===============================
## Row 6==> LSAT, proportion 0.937119 >= 0.50 
## Row 3==> llibvol, proportion 0.841136 >= 0.50 
## Row 5==> lcost, proportion 0.661004 >= 0.50
Calculando el Índice de Condición por medio de la librería mctest, se obtiene un K(x)= 186.7153 > 30, lo que implica un nivel de colinealidad servera, por lo que se considera un problema grave.
4.2 Prueba de Farrar-Glaubar (cálculo manual).
# Otbeniendo la matriz de información (matriz X)
mat_x3 <- model.matrix(modelo_sueldoinicial)

# Calculando el estadístico de prueba.
m <- ncol(mat_x3[,-1]) #Cantidad de variables explicativas K-1.
n <- nrow(mat_x3)      #Número de observaciones.
det_R <- det(cor(mat_x3[,-1])) #Determinante de la matriz R.
Chi_FG3 <- -(n-1-(2*m+5)/6)*log(det_R)
print(Chi_FG3)
## [1] 391.509
# Calculando el valor crítico.
gl_3 <- m*(m-1)/2
VC3<- qchisq(0.05,gl_3,lower.tail = FALSE)
print(VC3)
## [1] 18.30704
# Graficando los resultados.
options(scipen = 0)
library(fastGraph)
shadeDist(xshade = Chi_FG3, ddist = "dchisq", parm1 = gl_3,
          lower.tail = FALSE, sub = paste("VC:", VC3, "FG:", Chi_FG3))

Al aplicar la prueba FG, se tiene que el X2FG > VC, (391.508999 > 18.3070), se rechaza H0 y la prueba aporta evidencia de la existencia de colineadlidad en los regresores.
4.3 Factores Inflacionarios de la Varianza.
- VIF (usando librería car).
VIF_Car3 <- vif(modelo_sueldoinicial)
print(VIF_Car3)
##     LSAT      GPA  llibvol    lcost     rank 
## 3.635214 3.369004 2.110802 1.573583 3.124106
- VIF (usando librería Mctest).
mc.plot(mod = modelo_sueldoinicial, vif = 2)

Considerando un coeficiente de correlación entre los regresores menor o igual a 0.5, se obtiene un umbral de tolerancia para los VIF igual a 2; con el que se detecta que los regresores LSAT, GPA, llibvol y rank, superan el umbral y los que más aumentan la varianza son LSAT, GPA y rank, con 3.63, 3.36 y 3.12 respectivamente.
Al evaluar la situación de colinealidad de los regresores del modelo por medio de las herramientas utilizadas, se tiene un escenario robusto que evidencia la existencia de colinealidad en los mismos.