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
modelo_lineal<-lm(formula = price ~lotsize+sqrft+bdrms, data = hprice1)
summary(modelo_lineal)
##
## Call:
## lm(formula = price ~ lotsize + sqrft + bdrms, data = hprice1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -120.026 -38.530 -6.555 32.323 209.376
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.177e+01 2.948e+01 -0.739 0.46221
## lotsize 2.068e-03 6.421e-04 3.220 0.00182 **
## sqrft 1.228e-01 1.324e-02 9.275 1.66e-14 ***
## bdrms 1.385e+01 9.010e+00 1.537 0.12795
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 59.83 on 84 degrees of freedom
## Multiple R-squared: 0.6724, Adjusted R-squared: 0.6607
## F-statistic: 57.46 on 3 and 84 DF, p-value: < 2.2e-16
#Literal A
library(stargazer)
#matriz x
matriz_x<-model.matrix(modelo_lineal)
#matriz xx
matriz_xx<-t(matriz_x)%*%matriz_x
#matriz de normalizacion
Sn<-diag(1/sqrt(diag(matriz_xx)))
#matriz xx normalizada
matriz_xx_nor<-(Sn%*%matriz_xx)%*%Sn
lamdas<-eigen(matriz_xx_nor,symmetric = TRUE )$values
#Indice de condicion
k<-sqrt(max(lamdas)/min(lamdas))
Salida_K<- c(k)
names(Salida_K)<-c("k")
stargazer(Salida_K, title = "Indice de Condicion", type = "html")
| k |
| 11.868 |
#dado que el indice de condición es menor a 20 podemos concluir que la multicolinealidad es leve y que no se considera un problema.
#prueba Farrer Glaubar FG
#calculo de FG
library(stargazer)
library(fastGraph)
m<-ncol(matriz_x[,-1])
n<-nrow(matriz_x)
determinante_r<-det(cor(matriz_x[,-1]))
Chi_fg<--(n-1-(2*m+5)/6)*log(determinante_r)
print(Chi_fg)
[1] 31.38122
#Calculo de VC
gl<-m*(m-1)/2
VC<-qchisq(0.05,gl,lower.tail = FALSE)
print(VC)
[1] 7.814728
Salida_FG<- c(gl,VC,Chi_fg)
names(Salida_FG)<-c("GL","VALOR CRITICO", "FG")
stargazer(Salida_FG, title = "Resultado Prueba FG", type = "html")
| GL | VALOR CRITICO | FG |
| 3 | 7.815 | 31.381 |
shadeDist( xshade = Chi_fg, ddist = "dchisq", parm1 = gl, lower.tail = FALSE, sub =paste("VC:", VC, "FG:", Chi_fg))
# Dado que el estadistico FG es mayor que el valor critico se rechaza la hipotesis nula por lo que existe evidencia de colinealidad.
#Con libreria Mctest Prueba FG
library(mctest)
mctest(modelo_lineal)
##
## 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
#factores inflacionarios de la varianza #VIF
library(mctest)
VIF<-diag(solve(cor(matriz_x[,-1])))
print(VIF)
lotsize sqrft bdrms 1.037211 1.418654 1.396663
Salida_VIF<- c(VIF)
names(Salida_VIF)<-c("VIF_lotsize" , "VIF_sqrft" , "VIF_bdrms")
stargazer(Salida_VIF, title = "factores inflacionarios de la varianza", type = "html")
| VIF_lotsize | VIF_sqrft | VIF_bdrms |
| 1.037 | 1.419 | 1.397 |
mc.plot(modelo_lineal, vif = 2)
#VIF CON LIBRERIA CAR
library(car)
Vif<-vif(modelo_lineal)
print(Vif)
## lotsize sqrft bdrms
## 1.037211 1.418654 1.396663