options(scipen = 999999)
R<-matrix(data = c(1,0.96,0.96,1),nrow = 2,ncol = 2,byrow = FALSE)
VIF<-diag(solve(R))
print(VIF)
## [1] 12.7551 12.7551
##R/ VIF = 12.7551
##R/ La prueba Jarque Bera.
#Calculando el determinante
#si chi_FG=-(n-1-(2*m+5)/6)*log(determinante)
#entonces 40/-(59-1-(2*4+5)/6)=ln(determinante)
det<-40/-(59-1-(2*4+5)/6)
determinante<-exp(det)
print(determinante)
## [1] 0.488499
##R/ El determinante de la matriz de correlacion es igual a 0.488499
#VIF= 1/1-coeficiente de correlacion
#2.5= 1/1-cof
#(1-cof=1/2.5)*-1
#-1+cof=-(1/2.5)
#cof=1-(1/2.5)
cof<- 1-(1/2.5)
print(cof)
## [1] 0.6
##R/ El coeficiente de correlacion entre la variable y el resto de regresores es de (0.6)
options(scipen = 999999)
#Ingresando matriz de residuos
Residuos<-matrix(data = c(10,15,-10,-15,4,-4),nrow = 6,ncol = 1,byrow = FALSE)
library(nortest)
lillie.test(Residuos)
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: Residuos
## D = 0.1374, p-value = 0.9763
##R/ El estadístico de prueba KS, es D = 0.1374
#calculo de grados de libertad
gl<-4*(4-1)/2
#calculando el valor critico
VC<-qchisq(0.043,gl,lower.tail = FALSE)
print(VC)
## [1] 13.00226
library(normtest)
jb.norm.test(Residuos)
##
## Jarque-Bera test for normality
##
## data: Residuos
## JB = 0.51072, p-value = 0.5925
##R/ El estadistico de prueba JB = 0.51072
#VIF = 1/tolerancia
VIF<- 1/0.05
print(VIF)
## [1] 20
##R/ VIF = 20
shapiro.test(Residuos)
##
## Shapiro-Wilk normality test
##
## data: Residuos
## W = 0.96164, p-value = 0.8323
#Calculando Wn
#Normalisando W
W<-0.96164
n<- 6
U<-(0.0038915%*%log(n)^3)-(0.083751%*%log(n)^2)-(0.31082%*%log(n))-1.5861
V<-exp((0.0030302%*%log(n)^2)-(0.082676%*%log(n))-0.4803)
Wn<-(log(1-W)-(U))/V
print(Wn)
## [,1]
## [1,] -1.617473
##R/ El estadistico de prueba SW es W = 0.96164 y Wn = -1.617473
#VIF= 1/tolerancia
#2.5= 1/tolerancia
tolerancia<-1/2.5
print(tolerancia)
## [1] 0.4
##R/ La tolerancia es igual a 0.4
#carga de datos
library(readxl)
library(stargazer)
ventas_empresa <- read_excel("C:/Users/walte/OneDrive/Escritorio/ventas_empresa.xlsx")
#generar el modelo
myformula<-as.formula("V~C+P+M")
modelo<-lm(formula = myformula,data = ventas_empresa)
stargazer(modelo,title='Modelo Estimado',type= 'html')
| Dependent variable: | |
| V | |
| C | 0.923*** |
| (0.223) | |
| P | 0.950*** |
| (0.156) | |
| M | 1.298*** |
| (0.431) | |
| Constant | 107.444*** |
| (18.057) | |
| Observations | 24 |
| R2 | 0.980 |
| Adjusted R2 | 0.977 |
| Residual Std. Error | 9.506 (df = 20) |
| F Statistic | 323.641*** (df = 3; 20) |
| Note: | p<0.1; p<0.05; p<0.01 |
library(fitdistrplus)
ajuste_normal<-fitdist(data = modelo$residuals,distr = 'norm')
plot(ajuste_normal)
library(normtest)
jb.norm.test(modelo$residuals)
##
## Jarque-Bera test for normality
##
## data: modelo$residuals
## JB = 1.4004, p-value = 0.2785
##No Rechazar Ho si JB ≤ V.C o si el p-value ≥ α, en este caso nuestro valor p-value ≥ α, por lo que No rechazamos Ho, hay evidencia de que los residuales tienen una distribución normal.
library(nortest)
lillie.test(modelo$residuals)
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: modelo$residuals
## D = 0.13659, p-value = 0.2935
#No Rechazar Ho si D ≤ V.C o si el p-value ≥ α, en este caso nuestro valor p-value ≥ α, por lo que no rechazamos Ho, hay evidencia de que los residuales tienen una distribución normal.
shapiro.test(modelo$residuals)
##
## Shapiro-Wilk normality test
##
## data: modelo$residuals
## W = 0.95315, p-value = 0.3166
##No Rechazar Ho si Wn ≤ V.C o si el p-value ≥ α, en este caso nuestro valor p-value ≥ α, por lo que no rechazamos Ho, hay evidencia de que los residuales tienen una distribución normal.
n<-24
U<-(0.0038915%*%log(n)^3)-(0.083751%*%log(n)^2)-(0.31082%*%log(n))-1.5861
V<-exp((0.0030302%*%log(n)^2)-(0.082676%*%log(n))-0.4803)
Wn<-(log(1-0.95315)-(U))/V
print(Wn)
## [,1]
## [1,] 0.4772707
###Si Wn (0.4772707) < V.c (1.644854) No se rechaza la hipótesis nula (hay evidencia de que los residuales tienen una distribución normal)
library(mctest)
source(file = "C:/Users/walte/OneDrive/Escritorio/correccion_eigprop.R")
my_eigprop(mod = modelo)
##
## Call:
## my_eigprop(mod = modelo)
##
## 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
###Si K(x) ≥ 30 la multicolinealidad es severa. En nuestro caso K(x) = 71.1635 por lo que la multicolinealidad se considera severa.
library(mctest)
mctest(modelo)
##
## Call:
## omcdiag(mod = mod, Inter = TRUE, detr = detr, red = red, conf = conf,
## theil = theil, cn = cn)
##
##
## Overall Multicollinearity Diagnostics
##
## MC Results detection
## Determinant |X'X|: 0.0346 0
## Farrar Chi-Square: 71.2080 1
## Red Indicator: 0.8711 1
## Sum of Lambda Inverse: 20.9196 1
## Theil's Method: 0.5430 1
## Condition Number: 105.2299 1
##
## 1 --> COLLINEARITY is detected by the test
## 0 --> COLLINEARITY is not detected by the test
gl<-3*(3-1)/2
#calculando el valor critico
VC<-qchisq(0.05,gl,lower.tail = FALSE)
print(VC)
## [1] 7.814728
##Como chi_FG (71.2080) ≥ V.C(7.814728) ,,Se rechaza Ho, por lo tanto hay evidencia de colinealidad en los regresores; podemos tener una certeza de que en el 95% de las veces que realicemos esta prueba, terminaríamos rechazando la Ho por lo tanto aseguramos que hay evidencia de colinealidad en los regresores.
library(psych)
#Generar matriz x
Xmat<-model.matrix(modelo)
FG_test<-cortest.bartlett(Xmat[,-1])
#calculo del valor critico
VC_1<-qchisq(0.05,FG_test$df,lower.tail = FALSE)
print(FG_test)
## $chisq
## [1] 71.20805
##
## $p.value
## [1] 0.000000000000002352605
##
## $df
## [1] 3
print(VC_1)
## [1] 7.814728
library(fastGraph)
shadeDist(xshade = FG_test$chisq,ddist = "dchisq",parm1 = FG_test$df, lower.tail = FALSE,sub=paste("VC:",VC_1,"FG:",FG_test$chisq))
##Como,p-value ≤ α ,Se rechaza Ho, por lo tanto hay evidencia de colinealidad en los regresores; podemos tener una certeza de que en el 95% de las veces que realicemos esta prueba, terminaríamos rechazando la Ho por lo tanto aseguramos que hay evidencia de colinealidad en los regresores.
library(mctest)
#calculo usando el modelo
mc.plot(modelo, vif = 2)
##En este caso dependerá del umbral de tolerancia que se haya establecido para los VIF un umbral entre 2 y 5 es considerado un valor aceptable de colinealidad, si VIF > 5 O VIF > 10 se consideran variables altamente colineales. En nuestro caso las variables C y M se encuentran por arriba de VIF = 5. por lo que las variables se consideran altamente colineales, mientras que la variable P su VIF esta entre 2 y5 por lo que su colinealidad se considera un valor aceptable.
load("C:/Users/walte/OneDrive/Escritorio/wage2.RData")
#construccion del modelo
myformula1<-as.formula("educ~sibs+meduc+feduc")
modelo1<-lm(formula = myformula1,data = wage2)
library(stargazer)
stargazer(modelo1,title='Modelo Estimado',type= 'html')
| Dependent variable: | |
| educ | |
| sibs | -0.094*** |
| (0.034) | |
| meduc | 0.131*** |
| (0.033) | |
| feduc | 0.210*** |
| (0.027) | |
| Constant | 10.364*** |
| (0.359) | |
| Observations | 722 |
| R2 | 0.214 |
| Adjusted R2 | 0.211 |
| Residual Std. Error | 1.987 (df = 718) |
| F Statistic | 65.198*** (df = 3; 718) |
| Note: | p<0.1; p<0.05; p<0.01 |
library(fitdistrplus)
ajuste_normal1<-fitdist(data = modelo1$residuals,distr = 'norm')
plot(ajuste_normal1)
library(normtest)
jb.norm.test(modelo1$residuals)
##
## Jarque-Bera test for normality
##
## data: modelo1$residuals
## JB = 35.655, p-value = 0.0005
##Rechazar Ho si JB ≥ V.C o si el p-value ≤ α, en este caso nuestro valor p-value ≤ α, por lo que se Rechaza la Ho, no hay evidencia de distribución normal en los residuos.
library(nortest)
lillie.test(modelo1$residuals)
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: modelo1$residuals
## D = 0.089992, p-value = 0.000000000000003394
##Rechazar Ho si D ≥ V.C o si el p-value ≤ α, en este caso nuestro valor p-value ≤ α, por lo que Rechazamos Ho, no hay evidencia de distribución normal en los residuos.
shapiro.test(modelo1$residuals)
##
## Shapiro-Wilk normality test
##
## data: modelo1$residuals
## W = 0.96692, p-value = 0.00000000001058
##Rechazar Ho si Wn ≥ V.C o si el p-value ≤ α, en este caso nuestro valor p-value ≤ α, por lo que Rechazamos Ho, no hay evidencia de distribución normal en los residuos.
n1<-722
U1<-(0.0038915%*%log(n1)^3)-(0.083751%*%log(n1)^2)-(0.31082%*%log(n1))-1.5861
V1<-exp((0.0030302%*%log(n1)^2)-(0.082676%*%log(n1))-0.4803)
Wn1<-(log(1-0.96692)-(U1))/V1
print(Wn1)
## [,1]
## [1,] 6.697959
##En nuestro caso Wn (6.697959) ≥ V.c (1.644854) por lo que Se rechazar la hipótesis nula (no hay evidencia de que los residuales tienen una distribución normal)
library(mctest)
source(file = "C:/Users/walte/OneDrive/Escritorio/correccion_eigprop.R")
my_eigprop(mod = modelo1)
##
## Call:
## my_eigprop(mod = modelo1)
##
## 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
##Si K(x) es inferior a 20, la multicolinealidad es leve, no se considera un problema. En nuestro caso K(s) es inferior a 20 es (11.9094) por lo que la multicolinealidad se califica como leve.
library(mctest)
mctest(modelo1)
##
## Call:
## omcdiag(mod = mod, Inter = TRUE, detr = detr, red = red, conf = conf,
## theil = theil, cn = cn)
##
##
## Overall Multicollinearity Diagnostics
##
## MC Results detection
## Determinant |X'X|: 0.6075 0
## Farrar Chi-Square: 358.3897 1
## Red Indicator: 0.3952 0
## Sum of Lambda Inverse: 4.1666 0
## Theil's Method: 0.3575 0
## Condition Number: 11.2768 0
##
## 1 --> COLLINEARITY is detected by the test
## 0 --> COLLINEARITY is not detected by the test
gl<-3*(3-1)/2
#calculando el valor critico
VC<-qchisq(0.05,gl,lower.tail = FALSE)
print(VC)
## [1] 7.814728
##Como el indicador FG (358.38) ≥ V.C(7.81) , por lo que Rechazamos Ho, por lo tanto hay evidencia de colinealidad en los regresores; podemos tener una certeza de que en el 95% de las veces que realicemos esta prueba, terminaríamos rechazando la Ho por lo tanto aseguramos que hay evidencia decolinealidad en los regresores.
library(psych)
#Generar matriz x
Xmat1<-model.matrix(modelo1)
FG_test2<-cortest.bartlett(Xmat1[,-1])
#calculo del valor critico
VC_2<-qchisq(0.05,FG_test2$df,lower.tail = FALSE)
print(FG_test2)
## $chisq
## [1] 358.3897
##
## $p.value
## [1] 0.0000000000000000000000000000000000000000000000000000000000000000000000000000227501
##
## $df
## [1] 3
print(VC_2)
## [1] 7.814728
library(fastGraph)
shadeDist(xshade = FG_test2$chisq,ddist = "dchisq",parm1 = FG_test2$df, lower.tail = FALSE,sub=paste("VC:",VC_2,"FG:",FG_test2$chisq))
##Como,p-value ≤ α ,Se rechaza Ho, por lo tanto hay evidencia de colinealidad en los regresores; podemos tener una certeza de que en el 95% de las veces que realicemos esta prueba, terminaríamos rechazando la Ho por lo tanto aseguramos que hay evidencia de colinealidad en los regresores.
library(mctest)
#calculo usando el modelo
mc.plot(modelo1, vif = 2)
##En este caso dependerá del umbral de tolerancia que se haya establecido para los VIF un umbral entre 2 y 5 es considerado un valor aceptable de colinealidad, si VIF > 5 O VIF > 10 se consideran variables altamente colineales. En nuestro caso las variables sibs, meduc y feduc se encuentran por debajo de VIF inferior a 2. por lo que la colinealidad de las variables es un valor aceptable.
#carga de datos
load("C:/Users/walte/OneDrive/Escritorio/LAWSCH85.RData")
#generando el modelo
library(stargazer)
myformula2<-as.formula("lsalary~LSAT+GPA+llibvol+lcost+rank")
modelo2<-lm(formula = myformula2,data = LAWSCH85 )
stargazer(modelo2,title='Modelo Estimado',type= 'html')
| Dependent variable: | |
| lsalary | |
| LSAT | 0.005 |
| (0.004) | |
| GPA | 0.248*** |
| (0.090) | |
| llibvol | 0.095*** |
| (0.033) | |
| lcost | 0.038 |
| (0.032) | |
| rank | -0.003*** |
| (0.0003) | |
| Constant | 8.343*** |
| (0.533) | |
| Observations | 136 |
| R2 | 0.842 |
| Adjusted R2 | 0.836 |
| Residual Std. Error | 0.112 (df = 130) |
| F Statistic | 138.230*** (df = 5; 130) |
| Note: | p<0.1; p<0.05; p<0.01 |
library(fitdistrplus)
ajuste_normal2<-fitdist(data = modelo2$residuals,distr = 'norm')
plot(ajuste_normal2)
library(normtest)
jb.norm.test(modelo2$residuals)
##
## Jarque-Bera test for normality
##
## data: modelo2$residuals
## JB = 0.36511, p-value = 0.8305
##No Rechazar Ho si JB ≤ V.C o si el p-value ≥ α, en este caso nuestro valor p-value (0.8265) ≥ (0.05), por lo que no se rechaza Ho, hay evidencia de que los residuales tienen una distribución normal.
library(nortest)
lillie.test(modelo2$residuals)
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: modelo2$residuals
## D = 0.054571, p-value = 0.4123
##No Rechazar Ho si D ≤ V.C o si el p-value ≥ α, en este caso nuestro valor p-value (0.4123) ≥ (0.05), por lo que hay evidencia de que los residuales tienen una distribución normal.
shapiro.test(modelo2$residuals)
##
## Shapiro-Wilk normality test
##
## data: modelo2$residuals
## W = 0.99282, p-value = 0.7235
#No Rechazar Ho si Wn ≤ V.C o si el p-value ≥ α, en este caso nuestro valor p-value (0.7235) ≥ (0.05), por lo que no se rechaza Ho, hay evidencia de que los residuales tienen una distribución normal.
n2<-136
U2<-(0.0038915%*%log(n2)^3)-(0.083751%*%log(n2)^2)-(0.31082%*%log(n2))-1.5861
V2<-exp((0.0030302%*%log(n2)^2)-(0.082676%*%log(n2))-0.4803)
Wn2<-(log(1-0.99282)-(U2))/V2
print(Wn2)
## [,1]
## [1,] -0.5943665
##Si Wn (-0.5943665) < V.c (1.644854) No se rechaza la hipótesis nula (hay evidencia de que los residuales tienen una distribución normal)
library(mctest)
source(file = "C:/Users/walte/OneDrive/Escritorio/correccion_eigprop.R")
my_eigprop(mod = modelo2)
##
## Call:
## my_eigprop(mod = modelo2)
##
## 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
##Si K(x) ≥ 30 la multicolinealidad es severa. En nuestro caso K = 186.7153 por lo que la multicolinealidad se considera severa
library(mctest)
mctest(modelo2)
##
## Call:
## omcdiag(mod = mod, Inter = TRUE, detr = detr, red = red, conf = conf,
## theil = theil, cn = cn)
##
##
## Overall Multicollinearity Diagnostics
##
## MC Results detection
## Determinant |X'X|: 0.0521 0
## Farrar Chi-Square: 391.5090 1
## Red Indicator: 0.5819 1
## Sum of Lambda Inverse: 13.8127 0
## Theil's Method: -0.3680 0
## Condition Number: 181.9505 1
##
## 1 --> COLLINEARITY is detected by the test
## 0 --> COLLINEARITY is not detected by the test
#calculo de grados de libertad
gl<-5*(5-1)/2
#calculando el valor critico
VC<-qchisq(0.05,gl,lower.tail = FALSE)
print(VC)
## [1] 18.30704
##Como chi_FG (391.5090) ≥ V.C(18.30704) ,Se rechaza Ho, por lo tanto hay evidencia de colinealidad en los regresores; podemos tener una certeza de que en el 95% de las veces que realicemos esta prueba, terminaríamos rechazando la Ho por lo tanto aseguramos que hay evidencia de colinealidad en los regresores.
library(psych)
#Generar matriz x
Xmat2<-model.matrix(modelo2)
FG_test3<-cortest.bartlett(Xmat2[,-1])
#calculo del valor critico
VC_3<-qchisq(0.05,FG_test3$df,lower.tail = FALSE)
print(FG_test3)
## $chisq
## [1] 391.509
##
## $p.value
## [1] 0.000000000000000000000000000000000000000000000000000000000000000000000000000006031929
##
## $df
## [1] 10
print(VC_3)
## [1] 18.30704
library(fastGraph)
shadeDist(xshade = FG_test3$chisq,ddist = "dchisq",parm1 = FG_test3$df, lower.tail = FALSE,sub=paste("VC:",VC_3,"FG:",FG_test3$chisq))
##Como,p-value ≤ α ,Se rechaza Ho, por lo tanto hay evidencia de colinealidad en los regresores; podemos tener una certeza de que en el 95% de las veces que realicemos esta prueba, terminaríamos rechazando la Ho por lo tanto aseguramos que hay evidencia de colinealidad en los regresores.
library(mctest)
#calculo usando el modelo
mc.plot(modelo2, vif = 2)
##En este caso dependerá del umbral de tolerancia que se haya establecido para los VIF un umbral entre 2 y 5 es considerado un valor aceptable de colinealidad, si VIF > 5 O VIF > 10 se consideran variables altamente colineales. En nuestro caso las variables LSAT, GPA, llibvol y rank; sus VIF se encuentran entre 2 y 5. por lo que la colinealidad de las variables es un valor aceptable. Mientras que la variable lcost su VIF esta por debajo de 2, lo que representa una colinealidad muy leve.