Importación de datos.

library(wooldridge)
## Warning: package 'wooldridge' was built under R version 4.2.3
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

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
mod_estimado<-lm("price~lotsize+sqrft+bdrms", data = hprice1)
stargazer(mod_estimado,
          title = "Modelo para ejercicio de prueba de normalidad",
          type = "html")
## 
## <table style="text-align:center"><caption><strong>Modelo para ejercicio de prueba de normalidad</strong></caption>
## <tr><td colspan="2" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"></td><td><em>Dependent variable:</em></td></tr>
## <tr><td></td><td colspan="1" style="border-bottom: 1px solid black"></td></tr>
## <tr><td style="text-align:left"></td><td>NA</td></tr>
## <tr><td colspan="2" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">lotsize</td><td>0.002<sup>***</sup></td></tr>
## <tr><td style="text-align:left"></td><td>(0.001)</td></tr>
## <tr><td style="text-align:left"></td><td></td></tr>
## <tr><td style="text-align:left">sqrft</td><td>0.123<sup>***</sup></td></tr>
## <tr><td style="text-align:left"></td><td>(0.013)</td></tr>
## <tr><td style="text-align:left"></td><td></td></tr>
## <tr><td style="text-align:left">bdrms</td><td>13.853</td></tr>
## <tr><td style="text-align:left"></td><td>(9.010)</td></tr>
## <tr><td style="text-align:left"></td><td></td></tr>
## <tr><td style="text-align:left">Constant</td><td>-21.770</td></tr>
## <tr><td style="text-align:left"></td><td>(29.475)</td></tr>
## <tr><td style="text-align:left"></td><td></td></tr>
## <tr><td colspan="2" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Observations</td><td>88</td></tr>
## <tr><td style="text-align:left">R<sup>2</sup></td><td>0.672</td></tr>
## <tr><td style="text-align:left">Adjusted R<sup>2</sup></td><td>0.661</td></tr>
## <tr><td style="text-align:left">Residual Std. Error</td><td>59.833 (df = 84)</td></tr>
## <tr><td style="text-align:left">F Statistic</td><td>57.460<sup>***</sup> (df = 3; 84)</td></tr>
## <tr><td colspan="2" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"><em>Note:</em></td><td style="text-align:right"><sup>*</sup>p<0.1; <sup>**</sup>p<0.05; <sup>***</sup>p<0.01</td></tr>
## </table>

#Ajuste de los residuos

library(fitdistrplus)
## Warning: package 'fitdistrplus' was built under R version 4.2.3
## Loading required package: MASS
## 
## Attaching package: 'MASS'
## The following object is masked from 'package:wooldridge':
## 
##     cement
## Loading required package: survival
fit_normal<-fitdist(data = mod_estimado$residuals,distr = "norm")
plot(fit_normal)

summary(fit_normal)
## Fitting of the distribution ' norm ' by maximum likelihood 
## Parameters : 
##          estimate Std. Error
## mean 9.992007e-16   6.231624
## sd   5.845781e+01   4.406424
## Loglikelihood:  -482.8775   AIC:  969.7549   BIC:  974.7096 
## Correlation matrix:
##      mean sd
## mean    1  0
## sd      0  1

Verificación del supesto de normalidad a traves de:

Prueba de JB

library(tseries)
## Warning: package 'tseries' was built under R version 4.2.3
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
salida_JB<-jarque.bera.test(mod_estimado$residuals)
salida_JB
## 
##  Jarque Bera Test
## 
## data:  mod_estimado$residuals
## X-squared = 32.278, df = 2, p-value = 9.794e-08

De forma gráfica

library(fastGraph)
## Warning: package 'fastGraph' was built under R version 4.2.3
sig<-0.05
JB<-salida_JB$statistic
gl<-salida_JB$parameter
VC<-qchisq(1-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)))

Prueba de KS

library(nortest)
prueba_KS<-lillie.test(mod_estimado$residuals)
prueba_KS
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  mod_estimado$residuals
## D = 0.075439, p-value = 0.2496

De forma tabular

tabla_KS<-data.frame(distribucion = "Normal",
                     Estadistico = prueba_KS$statistic,
                     Valr_p = prueba_KS$p.value)
summary(tabla_KS)
##  distribucion        Estadistico          Valr_p      
##  Length:1           Min.   :0.07544   Min.   :0.2496  
##  Class :character   1st Qu.:0.07544   1st Qu.:0.2496  
##  Mode  :character   Median :0.07544   Median :0.2496  
##                     Mean   :0.07544   Mean   :0.2496  
##                     3rd Qu.:0.07544   3rd Qu.:0.2496  
##                     Max.   :0.07544   Max.   :0.2496

Pueba de SW

salida_SW<-shapiro.test(mod_estimado$residuals)
print(salida_SW)
## 
##  Shapiro-Wilk normality test
## 
## data:  mod_estimado$residuals
## W = 0.94132, p-value = 0.0005937
# Wn 
Wn_salida<-qnorm(salida_SW$p.value,lower.tail = FALSE)
print(Wn_salida)
## [1] 3.241867

De forma tabular

tabla_SW<-data.frame(Estadistico= salida_SW$statistic,
                     Valor_p = salida_SW$p.value,
                     Metodo = "shapro-Wlk")
summary(tabla_SW)
##   Estadistico        Valor_p             Metodo         
##  Min.   :0.9413   Min.   :0.0005937   Length:1          
##  1st Qu.:0.9413   1st Qu.:0.0005937   Class :character  
##  Median :0.9413   Median :0.0005937   Mode  :character  
##  Mean   :0.9413   Mean   :0.0005937                     
##  3rd Qu.:0.9413   3rd Qu.:0.0005937                     
##  Max.   :0.9413   Max.   :0.0005937

De forma gráfica

Wn_salida<-qnorm(salida_SW$p.value,
                 lower.tail = FALSE)
print(Wn_salida)
## [1] 3.241867
library(fastGraph)
shadeDist(Wn_salida, ddist = "dnorm",lower.tail = FALSE)