Actividad 1

Para iniciar establecemos nuestro directorio de trabajo en el proyecto de R previamente creado

wd="D:/Electiva R"       
setwd(wd)

1. Cargar librerias y los datos: BOSTON

library(MASS)
library(ggplot2)
library(car)
## Loading required package: carData
data("Boston")

datos <- Boston
names(datos)
##  [1] "crim"    "zn"      "indus"   "chas"    "nox"     "rm"      "age"    
##  [8] "dis"     "rad"     "tax"     "ptratio" "black"   "lstat"   "medv"
str(datos)
## 'data.frame':    506 obs. of  14 variables:
##  $ crim   : num  0.00632 0.02731 0.02729 0.03237 0.06905 ...
##  $ zn     : num  18 0 0 0 0 0 12.5 12.5 12.5 12.5 ...
##  $ indus  : num  2.31 7.07 7.07 2.18 2.18 2.18 7.87 7.87 7.87 7.87 ...
##  $ chas   : int  0 0 0 0 0 0 0 0 0 0 ...
##  $ nox    : num  0.538 0.469 0.469 0.458 0.458 0.458 0.524 0.524 0.524 0.524 ...
##  $ rm     : num  6.58 6.42 7.18 7 7.15 ...
##  $ age    : num  65.2 78.9 61.1 45.8 54.2 58.7 66.6 96.1 100 85.9 ...
##  $ dis    : num  4.09 4.97 4.97 6.06 6.06 ...
##  $ rad    : int  1 2 2 3 3 3 5 5 5 5 ...
##  $ tax    : num  296 242 242 222 222 222 311 311 311 311 ...
##  $ ptratio: num  15.3 17.8 17.8 18.7 18.7 18.7 15.2 15.2 15.2 15.2 ...
##  $ black  : num  397 397 393 395 397 ...
##  $ lstat  : num  4.98 9.14 4.03 2.94 5.33 ...
##  $ medv   : num  24 21.6 34.7 33.4 36.2 28.7 22.9 27.1 16.5 18.9 ...
# Ajustar la variable chas como factor --> ("No", "Si")
datos$chas <- factor(datos$chas, labels= c("No", "Si"))
str(datos$chas)
##  Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 1 1 ...

Gráfico de dispersión

# Punto 1. Relación entre medv vs lstat: porcentaje de habitantes de estrato bajo ----

ggplot(datos, aes(x= rm, y=medv)) +
  geom_point()+
  theme_bw()

# Limpieza de datos ----

#filtrando medv = 50

datos <- subset(datos, subset= medv<50)
nrow(datos)
## [1] 490

Punto 2. Dar un vistazo a la variable -

iniciamos realizando los histogramas de ambas variables, la variable respuesta y la covariable rm, para observar si los datos cumplen la condición de normalidad. con un alfa = 0.05.

#Histograma
x11()
ggplot(data=datos, mapping= aes(x=medv)) +
  geom_histogram(aes(y= ..density..), color= "black", fill="gray") + 
  geom_density(fill="black", alpha=0.05)+      
  stat_function(fun= dnorm, args= list(mean= mean(datos$medv), sd= sd(datos$medv)))+
  theme_bw()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

x11()
ggplot(data=datos, mapping= aes(x=rm)) +
  geom_histogram(aes(y= ..density..), color= "black", fill="gray") + 
  geom_density(fill="black", alpha=0.05)+      
  stat_function(fun= dnorm, args= list(mean= mean(datos$rm), sd= sd(datos$rm)))+
  theme_bw()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

#Grafico de cuantiles

qqPlot(datos$medv, pch=20)

## [1] 254 198

Podemos concluir que en los histogramas se ve una tendencia a la normalidad, sin embargo, estas no cumple la condicion de simetria, sino que ambas son asimetricas positivas. ademas, el grafico de cuantilas nos comfirma la asimetria de los datos, mostrandonos los datos atipicos.

Por ende, al ser ambas asimetricas usaremos la correlacion de spearman:

#Test de correlación entre medv y  lstat
#H1: correlación < 0 (negativa)

cor.test(x= datos$rm, y= datos$medv, alternative = "less", method = "spearman" )
## Warning in cor.test.default(x = datos$rm, y = datos$medv, alternative =
## "less", : Cannot compute exact p-value with ties
## 
##  Spearman's rank correlation rho
## 
## data:  datos$rm and datos$medv
## S = 7391356, p-value = 1
## alternative hypothesis: true rho is less than 0
## sample estimates:
##       rho 
## 0.6230455

Punto 3

Si es valido construir un modelo lineal simple, ya que la diferencia entre las muestras residuales tiende a siguir una ecuacion lineal.