Carga de datos

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

Estimacion del modelo

library(stargazer)
modelo_estimado<- lm(formula = price~lotsize+sqrft+bdrms, data = hprice1)
stargazer(modelo_estimado,title = 'modelo estimado', type = 'html')
modelo estimado
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

A) Indice de condicion y FG usando mctest

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

Grafica de prueba FG

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.

B) Calculo de VIF’s a traves de car

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

Grafica de VIF´s usando mctest

mc.plot(modelo_estimado, vif = 2)