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

1 ESTIMACION DEL MODELO:

price = ˆα + ˆα1(lotsize) + ˆα2(sqrft) + ˆα3(bdrms) + E

modelo <- lm(price ~ lotsize + sqrft + bdrms, data = hprice1)  # Modelo

2. Verifique si hay evidencia de la independencia de los regresores (no colinealidad), a través de:

a) Indice de condición y prueba de FG, presente sus resultados de manera tabular en ambos casos y para la prueba de FG presente también sus resultados de forma gráfica usando la librería fastGraph

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(gt)

X <- model.matrix(modelo)[,-1]   # Matriz de regresores sin intercepto

XtX <- t(X) %*% X                # Producto X'X

autovalores <- eigen(XtX)$values   # Eigenvalores

IC <- sqrt(max(autovalores)/autovalores)   # Índice de condición

FG <- autovalores / sum(autovalores)       # Factores generales

tabla_ic <- data.frame(
  Autovalores = autovalores,
  Indice_Condicion = IC,
  Factores_Generales = FG
)

tabla_ic %>%
  gt() %>%
  tab_header(title = "Índice de Condición y Factores Generales") %>%
  tab_source_note(source_note = "Fuente: Elaboración propia")
Índice de Condición y Factores Generales
Autovalores Indice_Condicion Factores_Generales
1.634461e+10 1.000000 9.875313e-01
2.063685e+08 8.899499 1.246866e-02
7.041295e+01 15235.651533 4.254307e-09
Fuente: Elaboración propia
library(fastGraph)

barplot(FG, main = "Factores Generales", ylab = "Proporción")

b) Factores inflacionarios de la varianza, presente sus resultados de forma tabular y de forma gráfica.

library(car)   # Para VIF
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
vif_valores <- vif(modelo)   # Calcula VIF
vif_valores
##  lotsize    sqrft    bdrms 
## 1.037211 1.418654 1.396663
tabla_vif <- data.frame(
  Variable = names(vif_valores),
  VIF = vif_valores
)

tabla_vif %>%
  gt() %>%
  tab_header(title = "Factores Inflacionarios de la Varianza (VIF)") %>%
  tab_source_note(source_note = "Fuente: Elaboración propia")
Factores Inflacionarios de la Varianza (VIF)
Variable VIF
lotsize 1.037211
sqrft 1.418654
bdrms 1.396663
Fuente: Elaboración propia
barplot(vif_valores,
        main = "VIF por variable",
        ylab = "Valor VIF")

INTERPRETACION:

El índice de condición permite evaluar la presencia de multicolinealidad en el modelo. Valores superiores a 30 indican problemas severos de colinealidad, mientras que valores entre 10 y 30 sugieren colinealidad moderada.

Por otro lado, los factores inflacionarios de la varianza (VIF) miden cuánto se incrementa la varianza de los coeficientes debido a la colinealidad. Valores de VIF mayores a 10 indican problemas serios de multicolinealidad.

Con base en los resultados obtenidos, se concluye que [existe / no existe] evidencia de multicolinealidad en el modelo.