#Datos para el examen

library(wooldridge)
datos_parcial<-wooldridge::hprice2
head(force(hprice1),n=3)
##   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

ESTIMACION DEL MODELO

Estime el modelo lineal log(price)~log(nox)+log(dist) +rooms +stratio

modelo_price<-lm(log(price) ~ log(nox) + log(dist) + rooms + stratio, data =hprice2)

summary(modelo_price)
## 
## 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

#supuesto de normalidad, a través de las pruebas JB, KS, SW

##Ajuste de los residuos a la Distribución Normal

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_price$residuals,distr = "norm")
plot(fit_normal)

##Prueba de Normalidad de Jarque Bera

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

Para la grafica

library(fastGraph)
alpha_sig<-0.05
JB<-salida_JB$statistic
gl<-salida_JB$parameter
VC<-qchisq(1-alpha_sig,gl,lower.tail = TRUE)
shadeDist(JB,ddist = "dchisq",
          parm1 = gl,
          lower.tail = FALSE,xmin=0,
          sub=paste("VC:",round(VC,2)," ","JB:",round(JB,2)))

##Interpretación: el valor de p-valor es muy pequeño (menor a 2.2e-16), lo que indica una fuerte evidencia en contra de la hipótesis nula de normalidad. Por lo tanto, se puede concluir que los residuos del modelo no siguen una distribución normal.

Prueba de Kolmogorov Smirnov -Lilliefors

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

##Interpretación:

el valor de p-valor es muy pequeño (7.618e-09), lo que indica una fuerte evidencia en contra de la hipótesis nula de normalidad. Por lo tanto, se puede concluir que los residuos del modelo no siguen una distribución normal.

#Prueba de Shapiro - Wilk

salida_SW<-shapiro.test(modelo_price$residuals)
print(salida_SW)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo_price$residuals
## W = 0.91733, p-value = 5.123e-16
Wn_salida<-qnorm(salida_SW$p.value,lower.tail = FALSE)
print(Wn_salida)
## [1] 8.023872

para la grafica

library(fastGraph)
shadeDist(Wn_salida,ddist = "dnorm",lower.tail = FALSE)

##Interpretación: el valor de p-valor es extremadamente pequeño (5.123e-16), lo que indica una fuerte evidencia en contra de la hipótesis nula de normalidad. Por lo tanto, se puede concluir que los residuos del modelo no siguen una distribución normal.

#Indice de condición

library(mctest)
X_mat<-model.matrix(modelo_price)
mctest(mod = modelo_price)
## 
## 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

##Interpretación: el índice de condición de 69.1140 en el resultado indica la presencia de cierta multicolinealidad en el modelo, lo que sugiere la necesidad de abordar el problema y considerar acciones para mejorar la estabilidad y la interpretación de los coeficientes estimados.

Prueba de Farrar-Glaubar

Cálculo de FG usando “mctest”

library(mctest)
mctest::omcdiag(mod = modelo_price)
## 
## Call:
## mctest::omcdiag(mod = modelo_price)
## 
## 
## 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

##Interpretación: la prueba de multicolinealidad de Farrar-Glauber muestra un valor de estadístico de prueba de 808.4964 y un indicador de detección de 1. Esto indica que se ha detectado la presencia de multicolinealidad en el modelo modelo_price.

Factores Inflacionarios de la Varianza (FIV)

Cálculo de los VIF’s usando “car”

library(car)
## Loading required package: carData
VIFs_car<-vif(modelo_price)
print(VIFs_car)
##  log(nox) log(dist)     rooms   stratio 
##  3.975625  3.888603  1.218893  1.173037

##Interpretación: los FIV indican la presencia de multicolinealidad en el modelo, particularmente para las variables log(nox) y log(dist). Si los valores de los FIV son altos, es importante considerar acciones para abordar la multicolinealidad y mejorar la interpretación y estabilidad de los coeficientes estimados en el modelo de regresión.

#matriz de covarianzas

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_price,~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_price
## BP = 141.12, df = 11, p-value < 2.2e-16
library(lmtest)
bgtest(modelo_price,order = 2)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  modelo_price
## LM test = 227.03, df = 2, p-value < 2.2e-16

##Interpretación En la prueba de Breusch-Godfrey para la autocorrelación de orden hasta 2, se obtuvo un valor de estadístico de prueba (LM) de 227.03 con 2 grados de libertad. El valor de p asociado a esta prueba es menor que 0.00000000000000022, lo que indica una fuerte evidencia para rechazar la hipótesis nula.