library(wooldridge)
data(hprice1)
head(force(hprice1),n=5)
## price assess bdrms lotsize sqrft colonial lprice lassess llotsize lsqrft
## 1 300 349.1 4 6126 2438 1 5.703783 5.855359 8.720297 7.798934
## 2 370 351.5 3 9903 2076 1 5.913503 5.862210 9.200593 7.638198
## 3 191 217.7 3 5200 1374 0 5.252274 5.383118 8.556414 7.225482
## 4 195 231.8 3 4600 1448 1 5.273000 5.445875 8.433811 7.277938
## 5 373 319.1 4 6095 2514 1 5.921578 5.765504 8.715224 7.829630
library(stargazer)
options(scipen = 999999)
Modelo_Estimado2<-lm(formula = price~llotsize+sqrft+bdrms,data = hprice1)
stargazer(Modelo_Estimado2,title = "Modelo Estimado",type = "html")
| Dependent variable: | |
| price | |
| llotsize | 56.154*** |
| (11.785) | |
| sqrft | 0.110*** |
| (0.013) | |
| bdrms | 15.728* |
| (8.465) | |
| Constant | -484.347*** |
| (101.457) | |
| Observations | 88 |
| R2 | 0.710 |
| Adjusted R2 | 0.700 |
| Residual Std. Error | 56.269 (df = 84) |
| F Statistic | 68.629*** (df = 3; 84) |
| Note: | p<0.1; p<0.05; p<0.01 |
Indice de condición (forma manual)
Xmat2<-model.matrix(Modelo_Estimado2)
head(Xmat2,n=5)
## (Intercept) llotsize sqrft bdrms
## 1 1 8.720297 2438 4
## 2 1 9.200593 2076 3
## 3 1 8.556414 1374 3
## 4 1 8.433811 1448 3
## 5 1 8.715224 2514 4
XXmat2<-t(Xmat2)%*%Xmat2
print(XXmat2)
## (Intercept) llotsize sqrft bdrms
## (Intercept) 88.0000 783.6492 177205 314.000
## llotsize 783.6492 7004.2300 1587280 2802.953
## sqrft 177205.0000 1587279.8995 385820561 654755.000
## bdrms 314.0000 2802.9529 654755 1182.000
# Sn matriz de normalización
Sn2<-diag(1/sqrt(diag(XXmat2)))
print(Sn2)
## [,1] [,2] [,3] [,4]
## [1,] 0.1066004 0.00000000 0.00000000000 0.00000000
## [2,] 0.0000000 0.01194868 0.00000000000 0.00000000
## [3,] 0.0000000 0.00000000 0.00005091049 0.00000000
## [4,] 0.0000000 0.00000000 0.00000000000 0.02908649
# Matriz normalizada
XXmat2_norm<-(Sn2%*%XXmat2)%*%Sn2
print(XXmat2_norm)
## [,1] [,2] [,3] [,4]
## [1,] 1.0000000 0.9981600 0.9617052 0.9735978
## [2,] 0.9981600 1.0000000 0.9655630 0.9741523
## [3,] 0.9617052 0.9655630 1.0000000 0.9695661
## [4,] 0.9735978 0.9741523 0.9695661 1.0000000
# Autovalores
Lambas2<-eigen(XXmat2_norm,symmetric = TRUE)$values
print(Lambas2)
## [1] 3.921439097 0.049178714 0.027669061 0.001713128
#Indice de Condición
K2<-sqrt(max(Lambas2)/min(Lambas2))
print(K2)
## [1] 47.84404
Comentario: El indice de condición es de 47.84404, por lo tanto se concluye que la multicolinealidad es severa por que es mayor a 30.
Indice de condición usando “mctest”
library(mctest)
eigprop(Modelo_Estimado2)
##
## Call:
## eigprop(mod = Modelo_Estimado2)
##
## Eigenvalues CI (Intercept) llotsize sqrft bdrms
## 1 3.9214 1.0000 0.0002 0.0002 0.0031 0.0024
## 2 0.0492 8.9296 0.0174 0.0124 0.5230 0.0341
## 3 0.0277 11.9049 0.0031 0.0051 0.4033 0.9528
## 4 0.0017 47.8440 0.9794 0.9823 0.0706 0.0108
##
## ===============================
## Row 4==> llotsize, proportion 0.982278 >= 0.50
## Row 2==> sqrft, proportion 0.523017 >= 0.50
## Row 3==> bdrms, proportion 0.952803 >= 0.50
Prueba de FG
library(fastGraph)
m2<-ncol(Xmat2[,-1])
n2<-nrow(Xmat2)
determinante2_R<-det(cor(Xmat2[,-1]))
chi_FG2<-(n2-1-(2*m2+5)/6)*log(determinante2_R)
print(chi_FG2)
## [1] -38.65568
#valor Critico
gl2<-m2*(m2-1)/2
VC2<-qchisq(0.05,gl2,lower.tail = FALSE)
print(VC2)
## [1] 7.814728
shadeDist(xshade = chi_FG2,ddist = "dchisq",parm1 = gl2,lower.tail = FALSE,sub = paste("VC:",VC2,"FG",chi_FG2))
Comentario: con los datos en el grafico se puede concluir que el VC es mayor a FG, por lo tanto se rechaza la Ho.
VIF2<-diag(solve(cor(Xmat2[,-1])))
print(VIF2)
## llotsize sqrft bdrms
## 1.129698 1.529185 1.393899
VIF con libreria car
library(car)
VIF2_car<-vif(Modelo_Estimado2)
print(VIF2_car)
## llotsize sqrft bdrms
## 1.129698 1.529185 1.393899
VIF con libreria mctest
library(mctest)
mc.plot(Modelo_Estimado2,vif = 2)
Comentario: Al realizar la prueba con mctest con los VIF, existe un umbral de 2, esto da a conocer que hay un margen de tolerancia de colinealidad del 0.5, siendo Sqrt y bdrms el que más infla la varianza, esto nos permite conocer que existe un margen de colinealidad en los regresores.