boston_test <- read.csv("boston_test.csv")
summary(boston_test)
##        ID             crim                zn            indus      
##  Min.   :  3.0   Min.   : 0.01381   Min.   : 0.00   Min.   : 0.46  
##  1st Qu.:136.0   1st Qu.: 0.08221   1st Qu.: 0.00   1st Qu.: 5.32  
##  Median :268.0   Median : 0.25199   Median : 0.00   Median : 8.56  
##  Mean   :258.4   Mean   : 4.10086   Mean   :12.66   Mean   :10.84  
##  3rd Qu.:381.0   3rd Qu.: 3.67367   3rd Qu.:20.00   3rd Qu.:18.10  
##  Max.   :505.0   Max.   :88.97620   Max.   :95.00   Max.   :27.74  
##       chas              nox              rm             age        
##  Min.   :0.00000   Min.   :0.392   Min.   :4.138   Min.   :  2.90  
##  1st Qu.:0.00000   1st Qu.:0.447   1st Qu.:5.895   1st Qu.: 42.80  
##  Median :0.00000   Median :0.538   Median :6.223   Median : 79.20  
##  Mean   :0.08671   Mean   :0.550   Mean   :6.321   Mean   : 69.25  
##  3rd Qu.:0.00000   3rd Qu.:0.624   3rd Qu.:6.674   3rd Qu.: 94.60  
##  Max.   :1.00000   Max.   :0.871   Max.   :8.780   Max.   :100.00  
##       dis              rad              tax           ptratio     
##  Min.   : 1.178   Min.   : 1.000   Min.   :187.0   Min.   :12.60  
##  1st Qu.: 2.011   1st Qu.: 4.000   1st Qu.:279.0   1st Qu.:17.00  
##  Median : 3.421   Median : 5.000   Median :330.0   Median :19.10  
##  Mean   : 3.959   Mean   : 9.387   Mean   :406.2   Mean   :18.47  
##  3rd Qu.: 5.401   3rd Qu.:24.000   3rd Qu.:666.0   3rd Qu.:20.20  
##  Max.   :12.127   Max.   :24.000   Max.   :711.0   Max.   :22.00  
##      black            lstat      
##  Min.   :  0.32   Min.   : 1.92  
##  1st Qu.:371.72   1st Qu.: 6.87  
##  Median :390.07   Median :12.12  
##  Mean   :351.30   Mean   :12.92  
##  3rd Qu.:396.06   3rd Qu.:17.21  
##  Max.   :396.90   Max.   :34.37
cor(boston_test)
##                  ID        crim          zn      indus        chas        nox
## ID       1.00000000  0.35738248 -0.01072457  0.3552994 -0.02675126  0.3215486
## crim     0.35738248  1.00000000 -0.19661068  0.4106378 -0.07765088  0.3841380
## zn      -0.01072457 -0.19661068  1.00000000 -0.5641558 -0.07550395 -0.5410379
## indus    0.35529940  0.41063782 -0.56415583  1.0000000  0.11256174  0.7918823
## chas    -0.02675126 -0.07765088 -0.07550395  0.1125617  1.00000000  0.1133467
## nox      0.32154861  0.38413798 -0.54103795  0.7918823  0.11334665  1.0000000
## rm      -0.01728381 -0.11018215  0.28074203 -0.2896868  0.05329250 -0.2313390
## age      0.09673532  0.33012609 -0.61844629  0.6616316  0.11487227  0.7257459
## dis     -0.21880014 -0.37108820  0.70547787 -0.7279097 -0.13060026 -0.7730646
## rad      0.64462032  0.59811660 -0.32691160  0.6477944 -0.03046204  0.6100453
## tax      0.62735792  0.56500458 -0.32199990  0.7477097 -0.05829884  0.6637890
## ptratio  0.25463220  0.26918488 -0.41314336  0.3693802 -0.11771377  0.1829672
## black   -0.33648014 -0.28263667  0.19229271 -0.4057231  0.03546857 -0.4036798
## lstat    0.21205833  0.36969851 -0.46055410  0.5889903 -0.06403228  0.5798366
##                  rm         age         dis         rad         tax    ptratio
## ID      -0.01728381  0.09673532 -0.21880014  0.64462032  0.62735792  0.2546322
## crim    -0.11018215  0.33012609 -0.37108820  0.59811660  0.56500458  0.2691849
## zn       0.28074203 -0.61844629  0.70547787 -0.32691160 -0.32199990 -0.4131434
## indus   -0.28968682  0.66163157 -0.72790967  0.64779437  0.74770969  0.3693802
## chas     0.05329250  0.11487227 -0.13060026 -0.03046204 -0.05829884 -0.1177138
## nox     -0.23133896  0.72574592 -0.77306464  0.61004526  0.66378895  0.1829672
## rm       1.00000000 -0.22672279  0.09688527 -0.08566760 -0.16102173 -0.3351298
## age     -0.22672279  1.00000000 -0.73272840  0.47381293  0.49661987  0.2656049
## dis      0.09688527 -0.73272840  1.00000000 -0.52736903 -0.55041918 -0.2377446
## rad     -0.08566760  0.47381293 -0.52736903  1.00000000  0.92396981  0.4535429
## tax     -0.16102173  0.49661987 -0.55041918  0.92396981  1.00000000  0.4486282
## ptratio -0.33512980  0.26560486 -0.23774459  0.45354288  0.44862821  1.0000000
## black    0.08812462 -0.28311413  0.30929030 -0.51457548 -0.50995963 -0.1990410
## lstat   -0.61521030  0.62719864 -0.49166582  0.49836595  0.54521369  0.3726978
##               black       lstat
## ID      -0.33648014  0.21205833
## crim    -0.28263667  0.36969851
## zn       0.19229271 -0.46055410
## indus   -0.40572305  0.58899030
## chas     0.03546857 -0.06403228
## nox     -0.40367981  0.57983664
## rm       0.08812462 -0.61521030
## age     -0.28311413  0.62719864
## dis      0.30929030 -0.49166582
## rad     -0.51457548  0.49836595
## tax     -0.50995963  0.54521369
## ptratio -0.19904099  0.37269779
## black    1.00000000 -0.38093967
## lstat   -0.38093967  1.00000000
modelo <- lm(nox~indus, data=boston_test)
#coeficinete de modelo de regresion
coef(modelo)
## (Intercept)       indus 
##  0.39672219  0.01414459
#Intervalos de confianza
confint(modelo)
##                  2.5 %     97.5 %
## (Intercept) 0.37585179 0.41759260
## indus       0.01249805 0.01579114
#Supuestos del modelo lineal
#1. se distribuyen de manera normal
#2. La media de los errores es cero.
#3. Los errores independientes

plot(boston_test$indus, boston_test$nox, xlab="Proporción de acres de negocios no minoristas por ciudad.", ylab="concentración de óxidos de nitrógeno")
abline(modelo)

residuos <- residuals(modelo)

#Normalidad de los residuos:

hist(residuos, breaks = 10)

shapiro.test(residuos)
## 
##  Shapiro-Wilk normality test
## 
## data:  residuos
## W = 0.94107, p-value = 1.452e-06

Como tiene un P valor casi 0, se rechaza la hipotesis nula de que los residuos provienen de errores normalmente distribuidos, por lo tanto este supuesto no se cumple.

#Media 0
plot(residuos)
abline(h=0)

t.test(residuos,mu=0)
## 
##  One Sample t-test
## 
## data:  residuos
## t = -8.257e-17, df = 172, p-value = 1
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  -0.010798  0.010798
## sample estimates:
##     mean of x 
## -4.517036e-19

R// De acuerdo a los datos obtenidos anteriormente, podemos concluir que la media es significativamente igual a 0

#Supuesto de independencia

plot(residuos[1: length(residuos)-1], residuos[2: length(residuos)], xlab="Residuos", ylab="Residuos resagados")

library(lmtest)
dwtest(modelo, alternative = "two.sided")
## 
##  Durbin-Watson test
## 
## data:  modelo
## DW = 0.71709, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is not 0

R// Se rechaza la hipotesis nula, por lo tanto no son independientes y hay una estructura de correlación

#varianza homogenea

plot(residuos)
abline(h=0)

bptest(modelo)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo
## BP = 19.915, df = 1, p-value = 8.098e-06

R// La hipotesis nula nos dice que no hay homocedesticidad porque se rechaza la hipotesis nula.

En conclusión no todos los supuestos se cumplieron, por lo tanto, no sería factible asignarle un medelo lineal simple