library(readxl)
library(stargazer)
ejemploregresion <-
read_excel("C:/Users/Abigail/Desktop/econometria/ejercicios_de_clase/normalidad/ejemploregresion.xlsx")
#Corriendo el modelo de regresión
regresion <- lm(fomula = Y ~ X1 + X2, data = ejemploregresion)
stargazer(regresion, title = "Modelo estimado", type = "html")
| Dependent variable: | |
| NA | |
| X2 | 0.001*** |
| (0.0001) | |
| Y | 1.910*** |
| (0.447) | |
| Constant | -3.031*** |
| (0.727) | |
| Observations | 25 |
| R2 | 0.937 |
| Adjusted R2 | 0.932 |
| Residual Std. Error | 0.151 (df = 22) |
| F Statistic | 164.631*** (df = 2; 22) |
| Note: | p<0.1; p<0.05; p<0.01 |
#Conocer el tamaño de muestra para saber que prueba aplicar
formula_normalidad <- function(muestra, alpha) {
Tamano_muestra <- muestra
#Si la muestra es grande
if (Tamano_muestra > 50) {
library(nortest)
Prueba_KS = lillie.test(regresion$residuals)
pvalue = Prueba_KS$p.value
significancia = alpha
rechazo = if (pvalue <= alpha) {
rechazo = "Rechazar Ho" }
if (pvalue > alpha) {
rechazo = "NO Rechazar Ho" }
soluciones <- c(pvalue, significancia, rechazo)
names(soluciones) <- c("p-value", "significancia", "Conclusion")
}
#Si la muestra es pequeña
if (Tamano_muestra <= 50) {
Prueba_Sw = shapiro.test(regresion$residuals)
pvalue = Prueba_Sw$p.value
significancia = alpha
rechazo = if (pvalue <= alpha) {
rechazo = "Rechazar Ho" }
if (pvalue > alpha) {
rechazo = "NO Rechazar Ho" }
soluciones <- c(pvalue, significancia, rechazo)
names(soluciones) <- c("p-value", "significancia", "Conclusion")
}
return(soluciones)
}
formula_normalidad(muestra = 25, alpha = 0.05)
## p-value significancia Conclusion
## "0.562707227417497" "0.05" "NO Rechazar Ho"
#En muestra tambien puede ponerse: nrow(model.matrix(regresion)) para obtener el tamaño de muestra
En el caso que se aplique alguna de las dos formulas:
#Prueba KS
library(nortest)
Prueba_KS_Comp <- lillie.test(regresion$residuals)
print(Prueba_KS_Comp)
Lilliefors (Kolmogorov-Smirnov) normality test
data: regresion$residuals D = 0.089675, p-value = 0.8701
#Prueba SW
options(scipen = 999)
Prueba_Sw <- shapiro.test(regresion$residuals)
print(Prueba_Sw)
##
## Shapiro-Wilk normality test
##
## data: regresion$residuals
## W = 0.96669, p-value = 0.5627