library(wooldridge)
data("hprice1")
# Mostrar las primeras 5 observaciones
head(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)
modelo_estimado<- lm(formula = price~lotsize+sqrft+bdrms, data = hprice1)
stargazer(modelo_estimado,title = 'modelo estimado', type = 'html')
| Dependent variable: | |
| price | |
| lotsize | 0.002*** |
| (0.001) | |
| sqrft | 0.123*** |
| (0.013) | |
| bdrms | 13.853 |
| (9.010) | |
| Constant | -21.770 |
| (29.475) | |
| Observations | 88 |
| R2 | 0.672 |
| Adjusted R2 | 0.661 |
| Residual Std. Error | 59.833 (df = 84) |
| F Statistic | 57.460*** (df = 3; 84) |
| Note: | p<0.1; p<0.05; p<0.01 |
mat.x<- model.matrix(modelo_estimado)
m<- ncol(mat.x[,-1])
gl<- m*(m-1)/(2)
VC<- qchisq(p=0.05,df=gl,lower.tail = FALSE)
library(mctest)
mctest(modelo_estimado)
##
## 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.6918 0
## Farrar Chi-Square: 31.3812 1
## Red Indicator: 0.3341 0
## Sum of Lambda Inverse: 3.8525 0
## Theil's Method: -0.7297 0
## Condition Number: 11.8678 0
##
## 1 --> COLLINEARITY is detected by the test
## 0 --> COLLINEARITY is not detected by the test
print(VC)
## [1] 7.814728
options(scipen = 999999)
FG<- 31.3812
library(fastGraph)
shadeDist(xshade = FG, ddist = "dchisq",parm1 = gl, lower.tail = FALSE, sub=paste("VC:",VC))
Como el FG es mayor que el valor critico se rechaza la hipotesis nula por lo que hay evidencia de multicolinealidad leve ya que el indice de condición es menor que 20.
library(car)
## Loading required package: carData
VIF_car<- vif(modelo_estimado)
print(VIF_car)
## lotsize sqrft bdrms
## 1.037211 1.418654 1.396663
Los VIF´s de las variables explicativas son menores que un umbral de 2, por lo que no es necesario que se retire alguna variable
mc.plot(modelo_estimado, vif = 2)