#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
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.
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.
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.
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.