Cargue todos los paquetes que necesita para trabajar con data.table, modelos de predicción de regresión, árboles de decisión, cluster y Cross-Validation. Además, cargue la base de datos.
install.packages('leaflet.extras')
install.packages('rgdal')
install.packages('KernSmooth')
install.packages('classInt')
install.packages("rpart")
install.packages("rpart.plot")
install.packages("caret")
install.packages("jtools")
install.packages("ggplot2")
install.packages("factoextra")
install.packages("dbscan")
install.packages("margins")
install.packages("moderndive")
install.packages("knitr")
library(data.table)
library(tidyverse)
library(leaflet)
library(leaflet.extras)
library(chilemapas)
library(sp)
library(rgdal)
library(KernSmooth)
library(classInt)
library(rpart.plot)
library(rpart)
library(caret)
library(jtools)
library(ggplot2)
library(factoextra)
library(dbscan)
library(margins)
library(moderndive)
library(knitr)
rm(list=ls())
heart<- fread("/Users/inakeyer/Downloads/Data Science/heart.csv")
class("age")
## [1] "character"
class("sex")
## [1] "character"
class("cp")
## [1] "character"
class("trtbps")
## [1] "character"
class("chol")
## [1] "character"
class("fbs")
## [1] "character"
class("restcg")
## [1] "character"
class("talachh")
## [1] "character"
class("exng")
## [1] "character"
class("oldpeak")
## [1] "character"
class("slp")
## [1] "character"
class("caa")
## [1] "character"
class("thall")
## [1] "character"
class("output")
## [1] "character"
Realice dos modelos de regresión lineal multiple para predecir la Presión arterial en reposo ¿Cuál predice mejor dentro de muestra?.
ggplot(heart, aes(x=age, y=trtbps)) + geom_point() + labs(title="Presion arterial")
heart_1 <- heart[!trtbps>=180,]
ggplot(heart_1, aes(x=age, y=trtbps)) + geom_point() + labs(title="Presion arterial")
reg1<-lm(data=heart_1,formula=trtbps~age+sex+thalachh)
summary(reg1)
reg2<- lm(data=heart_1,formula=trtbps~age+sex+chol)
summary(reg2)
heart_1[,prediccion:=predict(reg1)]
heart_1[,prediccion2:=predict(reg2)]
La que predice mejor la muestra es la regresión 1 (reg1) puesto que los valores estimados se acercan más a los valores reales y el R^2 es mayor que el de la regresión 2.
Realice validación cruzada (CV) a los modelos de la pregunta anterior por el método K-folds con 5 folds. ¿Se mantienen las conclusiones anteriores?.
set.seed(12345)
setupKCV <- trainControl(method = "cv" , number = 5)
predcv1<-train(trtbps~age+sex+thalachh,data=heart_1,method="lm",trControl= setupKCV)
predcv2<-train(trtbps~age+sex+chol,data=heart_1,method="lm",trControl= setupKCV)
print(predcv1)
print(predcv2)
No se mantienen las conclusiones anteriores, puesto que ahora los R^2 cambiaron y el de la predcv1 es menor que el de la predcv2.
Proponga dos variables sobre las cuales segmentar la muestra, en orden de hacer análisis de clusters con el método de kmeans. Muestre sus resultados gráficamente.
set.seed(12345)
segmento<-heart_1[,.(age,trtbps)]
ggplot(data = segmento,aes(x=age,y=trtbps))+
geom_point()
fviz_nbclust(x = segmento, FUNcluster = kmeans, method = "wss", k.max = 15,
diss = get_dist(segmento, method = "euclidean"), nstart = 50)
k1<-kmeans(x=segmento,centers=5,nstart=25)
fviz_cluster(k1,data=segmento,geom = "point")
heart_1$clkme<-k1$cluster
segmento<-heart_1[,.(age,chol)]
ggplot(data = segmento,aes(x=age,y=chol))+
geom_point()
fviz_nbclust(x = segmento, FUNcluster = kmeans, method = "wss", k.max = 15,
diss = get_dist(segmento, method = "euclidean"), nstart = 50)
k1<-kmeans(x=segmento,centers=5,nstart=25)
fviz_cluster(k1,data=segmento,geom = "point")
heart_1$clkme<-k1$cluster
### P5
Realice dos modelos de árboles de clasificación de la variable output. Pruebe cuál modelo clasifica mejor con validación cruzada. Entrene el modelo con un 80% de la muestra y testee con el 20% restante. Explicite qué modelo es mejor y porqué. (12 puntos)
```r
arbol_1 <- rpart(cp~., data=heart_1, method = "class")
rpart.plot(arbol_1, main = "Árbol de Clasificación: Tipo dolor de pecho")
arbol_2 <- rpart(cp~., data =heart_1 , method = "class")
rpart.plot(arbol_2)
prediccion_1 <- predict(arbol_2, newdata = test, type = "class")
matriz <- table(test$cp, prediccion_1)
matriz
Dada la charla del profesor Esteban Lopéz, explique brevemente, ¿Por qué es importante Spatial Analytics?
Para explicar lo requerido, es importante explicar la primera ley de la geografía, que dice que todo está relacionado, pero las cosas que están mas cerca tienen mayor influencia que las que están más lejos. Esta, en función de lo anterior, nos entrega un analisis que va mas allá de hacer un mapa, sino que se crean y combinan metodos para manejar datos y, así, poder desarrollar un análisis complejo en diversas áreas. Esta ciencia nos permite, además, relacionar variables que en otras ciencias economicas (o estudio de estas), no se considera.
Mencioné tres ejemplos del machine learning, intesligencia artificial, que señaló el profesor Alexis Montecinos.
Tres ejemplos del machine learning son, primero, el Reconocimiento de imágenes en medicina, el segundo es el Reconocimiento de voces en un cocktail, juego (brick) y el tercero es que mientras más iteraciones mejor lo hace hasta darse cuenta que tiene que meter la pelotita en los bordes.
Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.