1. Modelo estimado

library(stargazer)
## 
## Please cite as:
##  Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.
##  R package version 5.2.3. https://CRAN.R-project.org/package=stargazer
library(wooldridge)
data(hprice1)

modelo_estimado <- lm(price ~ lotsize + sqrft + bdrms, data = hprice1)
stargazer(modelo_estimado, type = "text", title = "Modelo Estimado")
## 
## 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

#2. Índice de Condición

X_mat <- model.matrix(modelo_estimado)
XX_matrix <- t(X_mat) %*% X_mat

# Normalización
options(scipen = 999)
Sn <- solve(diag(sqrt(diag(XX_matrix))))
XX_norm <- (Sn %*% XX_matrix) %*% Sn

# Autovalores y K
lambdas <- eigen(XX_norm, symmetric = TRUE)
K <- sqrt(max(lambdas$values) / min(lambdas$values))

# Presentación Tabular (IMPORTANTE: results='asis')
stargazer(as.matrix(lambdas$values), type = "text", title = "Autovalores de X'X Normalizada")
## 
## Autovalores de X'X Normalizada
## =====
## 3.482
## 0.455
## 0.039
## 0.025
## -----
# El texto simple no necesita 'asis'
print(paste("Índice de Condición (K):", round(K, 4)))
## [1] "Índice de Condición (K): 11.8678"

3. Prueba de Farrar-Glaubar (FG)

library(psych)
## Warning: package 'psych' was built under R version 4.5.3
library(fastGraph)
## Warning: package 'fastGraph' was built under R version 4.5.3
# Matriz de Correlación R
Zn <- scale(X_mat[, -1])
n <- nrow(Zn); m <- ncol(Zn)
R <- (t(Zn) %*% Zn) * (1 / (n - 1))

# Estadístico Chi-cuadrado FG
determinante_R <- det(R)
chi_FG <- -(n - 1 - (2 * m + 5) / 6) * log(determinante_R)
gl <- m * (m - 1) / 2
VC <- qchisq(p = 0.95, df = gl)

# Tablas 
stargazer(R, type = "text", title = "Matriz de Correlación (R)", digits = 4)
## 
## Matriz de Correlación (R)
## =============================
##         lotsize sqrft  bdrms 
## -----------------------------
## lotsize    1    0.1838 0.1363
## sqrft   0.1838    1    0.5315
## bdrms   0.1363  0.5315   1   
## -----------------------------
resultados_fg <- data.frame(Estadistico = chi_FG, GL = gl, Valor_Critico = VC)
stargazer(resultados_fg, summary = FALSE, type = "text", title = "Resultados Prueba FG", rownames = FALSE)
## 
## Resultados Prueba FG
## ============================
## Estadistico GL Valor_Critico
## ----------------------------
## 31.381      3      7.815    
## ----------------------------
# Gráfico 
shadeDist(chi_FG, "dchisq", gl, col = c("black", "red"), 
          main = "Prueba de Farrar-Glaubar (Bartlett)")

#4. Factores Inflacionarios de la Varianza (VIF)

library(car)
## Warning: package 'car' was built under R version 4.5.3
## Cargando paquete requerido: carData
## 
## Adjuntando el paquete: 'car'
## The following object is masked from 'package:psych':
## 
##     logit
vifs_modelo <- vif(modelo_estimado)
vifs_tabla <- as.data.frame(vifs_modelo)
colnames(vifs_tabla) <- "VIF"

stargazer(vifs_tabla, type = "text", summary = FALSE, title = "Factores Inflacionarios de la Varianza")
## 
## Factores Inflacionarios de la Varianza
## =============
##          VIF 
## -------------
## lotsize 1.037
## sqrft   1.419
## bdrms   1.397
## -------------
library(performance)
## Warning: package 'performance' was built under R version 4.5.3
vifs_perf <- multicollinearity(modelo_estimado)
plot(vifs_perf)