##Importación de datos

library(wooldridge)
datos_parcial<-wooldridge::hprice2
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

Estimación del modelo

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
modelo_precio<-lm(log(price)~log(nox)+log(dist) +rooms +stratio, data = hprice2)
stargazer(modelo_precio,type = "html",title = "Modelo Price")
Modelo Price
Dependent variable:
log(price)
log(nox) -0.954***
(0.117)
log(dist) -0.134***
(0.043)
rooms 0.255***
(0.019)
stratio -0.052***
(0.006)
Constant 11.084***
(0.318)
Observations 506
R2 0.584
Adjusted R2 0.581
Residual Std. Error 0.265 (df = 501)
F Statistic 175.855*** (df = 4; 501)
Note: p<0.1; p<0.05; p<0.01
summary(modelo_precio)

Call: lm(formula = log(price) ~ log(nox) + log(dist) + rooms + stratio, data = hprice2)

Residuals: Min 1Q Median 3Q Max -1.05890 -0.12427 0.02128 0.12882 1.32531

Coefficients: Estimate Std. Error t value Pr(>|t|)
(Intercept) 11.083861 0.318111 34.843 < 2e-16 log(nox) -0.953539 0.116742 -8.168 2.57e-15 log(dist) -0.134339 0.043103 -3.117 0.00193 ** rooms 0.254527 0.018530 13.736 < 2e-16 stratio -0.052451 0.005897 -8.894 < 2e-16 — Signif. codes: 0 ‘’ 0.001 ’’ 0.01 ’’ 0.05 ‘.’ 0.1 ’ ’ 1

Residual standard error: 0.265 on 501 degrees of freedom Multiple R-squared: 0.584, Adjusted R-squared: 0.5807 F-statistic: 175.9 on 4 and 501 DF, p-value: < 2.2e-16

##Ajute de residuos

library(fitdistrplus)
## Loading required package: MASS
## 
## Attaching package: 'MASS'
## The following object is masked from 'package:wooldridge':
## 
##     cement
## Loading required package: survival
fit_normal<-fitdist(data =modelo_precio$residuals,distr = "norm")
plot(fit_normal)

summary(fit_normal)
## Fitting of the distribution ' norm ' by maximum likelihood 
## Parameters : 
##          estimate  Std. Error
## mean 6.225592e-18 0.011722460
## sd   2.636902e-01 0.008288494
## Loglikelihood:  -43.49487   AIC:  90.98974   BIC:  99.44282 
## Correlation matrix:
##              mean           sd
## mean 1.000000e+00 3.451871e-13
## sd   3.451871e-13 1.000000e+00

##Prueba JB

library(tseries)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
salida_JB<-jarque.bera.test(modelo_precio$residuals)
print(salida_JB)
## 
##  Jarque Bera Test
## 
## data:  modelo_precio$residuals
## X-squared = 480.14, df = 2, p-value < 2.2e-16

Interpretación: Dado que el valor p es menor que 0.05 (alfa), se rechaza la hipótesis nula. Esto significa que hay una evidencia muy fuerte para concluir que los datos no siguen una distribución normal. ##Prueba KS

library(nortest)
prueba_KS<-lillie.test(modelo_precio$residuals)
print(prueba_KS)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo_precio$residuals
## D = 0.082888, p-value = 7.618e-09

Interpretación: Dado que el valor p es menor que 0.05 (alfa), se rechaza la hipótesis nula.Los residuales no siguen una distribución normal.

##Prueba Shapiro - Wilk

salida_SW<-shapiro.test(modelo_precio$residuals)
print(salida_SW)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo_precio$residuals
## W = 0.91733, p-value = 5.123e-16

Dado que el valor p es inferior al nivel de significancia, se rechaza la hipótesis nula. Esto significa que hay una evidencia de que los residuos no siguen una distribución normal.

##Cálculo del Indice de Condición usando librería “mctest”

library(mctest)
X_mat<-model.matrix(modelo_precio)
mctest(mod = modelo_precio)
## 
## 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.2003         0
## Farrar Chi-Square:       808.4964         1
## Red Indicator:             0.4344         0
## Sum of Lambda Inverse:    10.2562         0
## Theil's Method:            0.0663         0
## Condition Number:         69.1140         1
## 
## 1 --> COLLINEARITY is detected by the test 
## 0 --> COLLINEARITY is not detected by the test

La presencia de multicolinealidad en el modelo, indicada por el índice de condición de 69.1140, significa que algunas de las variables predictoras están correlacionadas entre sí. Esto puede afectar la estabilidad y la interpretación de los coeficientes estimados en el modelo. Es importante tomar medidas para resolver este problema y mejorar la confiabilidad de los resultados obtenidos. ##Cálculo de FG usando “mctest”

library(mctest)
mctest::omcdiag(mod = modelo_precio)
## 
## Call:
## mctest::omcdiag(mod = modelo_precio)
## 
## 
## Overall Multicollinearity Diagnostics
## 
##                        MC Results detection
## Determinant |X'X|:         0.2003         0
## Farrar Chi-Square:       808.4964         1
## Red Indicator:             0.4344         0
## Sum of Lambda Inverse:    10.2562         0
## Theil's Method:            0.0663         0
## Condition Number:         69.1140         1
## 
## 1 --> COLLINEARITY is detected by the test 
## 0 --> COLLINEARITY is not detected by the test

El valor de la estadística de prueba es de 808.4964 y el indicador de detección es de 1, lo que significa que se ha encontrado la presencia de multicolinealidad. Esto implica que algunas de las variables predictoras están correlacionadas entre sí, lo cual puede afectar la interpretación y la fiabilidad de los resultados del modelo. ## Cálculo de los VIF’s usando “performance”

library(performance)
VIFs<-multicollinearity(x = modelo_precio,verbose = FALSE)

##Prueba White

library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
prueba_White<-bptest(modelo_precio,~I(log(nox)^2)+I(log(dist)^2)
                     +I(rooms^2)+I(stratio^2)+log(nox)*log(dist)
                     +log(nox)*rooms+log(nox)*stratio,data 
                     = hprice2)
print(prueba_White)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_precio
## BP = 141.12, df = 11, p-value < 2.2e-16

Dado que el valor p es inferior al nivel de significancia de 0.05), se tiene una evidencia muy fuerte en contra de la hipótesis nula. Por lo tanto, se rechaza la hipótesis nula en favor de la hipótesis alternativa, lo que indica la presencia de heterocedasticidad en los residuos del modelo. ##Prueba del Multiplicador de Lagrange

library(lmtest)
bgtest(modelo_precio,order = 2)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  modelo_precio
## LM test = 227.03, df = 2, p-value < 2.2e-16

En este caso, se rechazaría la hipótesis nula de no autocorrelación y se concluiría que existe evidencia estadística de autocorrelación en los residuos del modelo.