El Presente laboratorio utiliza el DataSet sobre la demanda de bicicletas en EEUU.

data <- read.csv("hour.csv",na.strings = FALSE,strip.white = TRUE)
str(data)
'data.frame':   17379 obs. of  17 variables:
 $ instant   : int  1 2 3 4 5 6 7 8 9 10 ...
 $ dteday    : Factor w/ 731 levels "2011-01-01","2011-01-02",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ season    : int  1 1 1 1 1 1 1 1 1 1 ...
 $ yr        : int  0 0 0 0 0 0 0 0 0 0 ...
 $ mnth      : int  1 1 1 1 1 1 1 1 1 1 ...
 $ hr        : int  0 1 2 3 4 5 6 7 8 9 ...
 $ holiday   : int  0 0 0 0 0 0 0 0 0 0 ...
 $ weekday   : int  6 6 6 6 6 6 6 6 6 6 ...
 $ workingday: int  0 0 0 0 0 0 0 0 0 0 ...
 $ weathersit: int  1 1 1 1 1 2 1 1 1 1 ...
 $ temp      : num  0.24 0.22 0.22 0.24 0.24 0.24 0.22 0.2 0.24 0.32 ...
 $ atemp     : num  0.288 0.273 0.273 0.288 0.288 ...
 $ hum       : num  0.81 0.8 0.8 0.75 0.75 0.75 0.8 0.86 0.75 0.76 ...
 $ windspeed : num  0 0 0 0 0 0.0896 0 0 0 0 ...
 $ casual    : int  3 8 5 3 0 0 2 1 1 8 ...
 $ registered: int  13 32 27 10 1 1 0 2 7 6 ...
 $ cnt       : int  16 40 32 13 1 1 2 3 8 14 ...

Seleccionar únicamente las columnas necesarias para la solución del laboratorio

data <- dplyr::select(data,season,atemp,hum,cnt)
str(data)
'data.frame':   17379 obs. of  4 variables:
 $ season: int  1 1 1 1 1 1 1 1 1 1 ...
 $ atemp : num  0.288 0.273 0.273 0.288 0.288 ...
 $ hum   : num  0.81 0.8 0.8 0.75 0.75 0.75 0.8 0.86 0.75 0.76 ...
 $ cnt   : int  16 40 32 13 1 1 2 3 8 14 ...

ENTREGABLES

  1. Usando la función de facet_wrap o facet_grid, hacer una gráfica de contorno para cada temporada del año para el dataset de la demanda de bicicletas.
data%>%
    ggplot(aes (atemp,hum))+
    geom_density_2d()+
    facet_grid(season ~.,scales="free")

  1. Crear un heatmap para cada temporada del año.
color <- colorRampPalette(c("black","blue","green","orange","red"))(1000)
spring <- filter(data,season==1)
data_spring <- kde2d(x=spring$atemp,y=spring$hum,n=100)
data_spring$z <-data_spring$z/sum(data_spring$z)
spring <- image(data_spring$z,col = color, zlim=c(min(data_spring$z), max(data_spring$z)))

summer <- filter(data,season==2)
data_summer <- kde2d(x=summer$atemp,y=summer$hum,n=100)
data_summer$z <-data_summer$z/sum(data_summer$z)
summer <- image(data_summer$z,col = color, zlim=c(min(data_summer$z), max(data_summer$z)))

fall <- filter(data,season==3)
data_fall <- kde2d(x=fall$atemp,y=fall$hum,n=100)
data_fall$z <-data_fall$z/sum(data_fall$z)
fall <- image(data_fall$z,col = color, zlim=c(min(data_fall$z), max(data_fall$z)))

winter <- filter(data,season==4)
data_winter <- kde2d(x=winter$atemp,y=winter$hum,n=100)
data_winter$z <-data_winter$z/sum(data_winter$z)
winter <- image(data_winter$z,col = color, zlim=c(min(data_winter$z), max(data_winter$z)))

  1. Calcular la probabilidad de que un punto esté dentro del circulo (x-xi)2+(y-yi)2=r^2 X y Y son atemp y hum, xi, yi Y r son constantes, el punto (xi,yi) es el centro de la circunferencia, R es el radio
xi <- 0
yi <- 0
r <- 0.5
LS0tDQp0aXRsZTogIkxhYm9yYXRvcmlvIDEiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpFbCBQcmVzZW50ZSBsYWJvcmF0b3JpbyB1dGlsaXphIGVsIERhdGFTZXQgc29icmUgbGEgZGVtYW5kYSBkZSBiaWNpY2xldGFzIGVuIEVFVVUuDQoNCmBgYHtyLHdhcm5pbmc9RkFMU0UsZWNobz1GQUxTRX0NCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGdncGxvdDIpDQpgYGANCg0KYGBge3J9DQpkYXRhIDwtIHJlYWQuY3N2KCJob3VyLmNzdiIsbmEuc3RyaW5ncyA9IEZBTFNFLHN0cmlwLndoaXRlID0gVFJVRSkNCnN0cihkYXRhKQ0KYGBgDQoNClNlbGVjY2lvbmFyIPpuaWNhbWVudGUgbGFzIGNvbHVtbmFzIG5lY2VzYXJpYXMgcGFyYSBsYSBzb2x1Y2nzbiBkZWwgbGFib3JhdG9yaW8NCmBgYHtyfQ0KZGF0YSA8LSBkcGx5cjo6c2VsZWN0KGRhdGEsc2Vhc29uLGF0ZW1wLGh1bSxjbnQpDQpzdHIoZGF0YSkNCmBgYA0KKkVOVFJFR0FCTEVTKg0KDQphLiBVc2FuZG8gbGEgZnVuY2nzbiBkZSBmYWNldF93cmFwIG8gZmFjZXRfZ3JpZCwgaGFjZXIgdW5hIGdy4WZpY2EgZGUgY29udG9ybm8gcGFyYSBjYWRhIHRlbXBvcmFkYSBkZWwgYfFvIHBhcmEgZWwgZGF0YXNldCBkZSBsYSBkZW1hbmRhIGRlIGJpY2ljbGV0YXMuDQoNCmBgYHtyfQ0KZGF0YSU+JQ0KICAgIGdncGxvdChhZXMgKGF0ZW1wLGh1bSkpKw0KICAgIGdlb21fZGVuc2l0eV8yZCgpKw0KICAgIGZhY2V0X2dyaWQoc2Vhc29uIH4uLHNjYWxlcz0iZnJlZSIpDQpgYGANCg0KYi4gQ3JlYXIgdW4gaGVhdG1hcCBwYXJhIGNhZGEgdGVtcG9yYWRhIGRlbCBh8W8uDQpgYGB7cn0NCmNvbG9yIDwtIGNvbG9yUmFtcFBhbGV0dGUoYygiYmxhY2siLCJibHVlIiwiZ3JlZW4iLCJvcmFuZ2UiLCJyZWQiKSkoMTAwMCkNCg0Kc3ByaW5nIDwtIGZpbHRlcihkYXRhLHNlYXNvbj09MSkNCmRhdGFfc3ByaW5nIDwtIGtkZTJkKHg9c3ByaW5nJGF0ZW1wLHk9c3ByaW5nJGh1bSxuPTEwMCkNCmRhdGFfc3ByaW5nJHogPC1kYXRhX3NwcmluZyR6L3N1bShkYXRhX3NwcmluZyR6KQ0Kc3ByaW5nIDwtIGltYWdlKGRhdGFfc3ByaW5nJHosY29sID0gY29sb3IsIHpsaW09YyhtaW4oZGF0YV9zcHJpbmckeiksIG1heChkYXRhX3NwcmluZyR6KSkpDQoNCnN1bW1lciA8LSBmaWx0ZXIoZGF0YSxzZWFzb249PTIpDQpkYXRhX3N1bW1lciA8LSBrZGUyZCh4PXN1bW1lciRhdGVtcCx5PXN1bW1lciRodW0sbj0xMDApDQpkYXRhX3N1bW1lciR6IDwtZGF0YV9zdW1tZXIkei9zdW0oZGF0YV9zdW1tZXIkeikNCnN1bW1lciA8LSBpbWFnZShkYXRhX3N1bW1lciR6LGNvbCA9IGNvbG9yLCB6bGltPWMobWluKGRhdGFfc3VtbWVyJHopLCBtYXgoZGF0YV9zdW1tZXIkeikpKQ0KDQpmYWxsIDwtIGZpbHRlcihkYXRhLHNlYXNvbj09MykNCmRhdGFfZmFsbCA8LSBrZGUyZCh4PWZhbGwkYXRlbXAseT1mYWxsJGh1bSxuPTEwMCkNCmRhdGFfZmFsbCR6IDwtZGF0YV9mYWxsJHovc3VtKGRhdGFfZmFsbCR6KQ0KZmFsbCA8LSBpbWFnZShkYXRhX2ZhbGwkeixjb2wgPSBjb2xvciwgemxpbT1jKG1pbihkYXRhX2ZhbGwkeiksIG1heChkYXRhX2ZhbGwkeikpKQ0KDQp3aW50ZXIgPC0gZmlsdGVyKGRhdGEsc2Vhc29uPT00KQ0KZGF0YV93aW50ZXIgPC0ga2RlMmQoeD13aW50ZXIkYXRlbXAseT13aW50ZXIkaHVtLG49MTAwKQ0KZGF0YV93aW50ZXIkeiA8LWRhdGFfd2ludGVyJHovc3VtKGRhdGFfd2ludGVyJHopDQp3aW50ZXIgPC0gaW1hZ2UoZGF0YV93aW50ZXIkeixjb2wgPSBjb2xvciwgemxpbT1jKG1pbihkYXRhX3dpbnRlciR6KSwgbWF4KGRhdGFfd2ludGVyJHopKSkNCmBgYA0KDQpjLiBDYWxjdWxhciBsYSBwcm9iYWJpbGlkYWQgZGUgcXVlIHVuIHB1bnRvIGVzdOkgZGVudHJvIGRlbCBjaXJjdWxvICh4LXhpKV4yKyh5LXlpKV4yPXJeMg0KICAgIFggeSBZIHNvbiBhdGVtcCB5IGh1bSwgeGksIHlpIFkgciBzb24gY29uc3RhbnRlcywgZWwgcHVudG8gKHhpLHlpKSBlcyBlbCBjZW50cm8gZGUgbGEgY2lyY3VuZmVyZW5jaWEsIFIgZXMgZWwgcmFkaW8NCiAgICANCmBgYHtyfQ0KeGkgPC0gMA0KeWkgPC0gMA0KciA8LSAwLjUNCmBgYA0KDQoNCg==