Вы можете объединить несколько измерений, связанных с погодой, в одно с именем кажущаяся температура .
Индекс AT ... основан на математической модели взрослого человека, идущего на улице,в тени ( Стедман 1994 ).AT определяется как;температура, при эталонном уровне влажности, вызывает такое же количество дискомфорта, как и при текущей температуре и влажности окружающей среды.
Пожалуйста, смотрите ниже, как это можно реализовать в вашем случае:
x <- structure(list(datetime = structure(c(2L, 1L, 3L), .Label = c("05:00:00",
"17:00:00", "21:00:00"), class = "factor"), season = structure(c(2L,
3L, 1L), .Label = c("Spring", "Summer", "Winter"), class = "factor"),
holiday = c("Regular day", "Regular day", "Regular day"),
workingday = c("Working day", "Working day", "Working day"
), weather = structure(c(1L, 3L, 2L), .Label = c("Bad", "Good",
"Normal"), class = "factor"), temp = c(19.68, 9.02, 26.24
), atemp = c(23.485, 12.12, 29.545), humidity = c(82L, 93L,
78L), windspeed = c(31.0009, 7.0015, 16.9979), count = c(261L,
3L, 85L), hour = c(17L, 5L, 21L), daytime = c("After Noon",
"Early Morning", "Evening")), row.names = c("2011-09-15",
"2011-02-02", "2012-06-01"), class = "data.frame")
x$e <- x$humidity / 100 * 6.105 * exp(17.27 * x$temp / (237.7 + x$temp)) # vapor pressure
x$windspeed_ms <- 0.4470400 * x$windspeed # windspeed in m/s
x$AT <- x$temp + 0.33 * x$e - 0.7 * x$windspeed_ms - 4.00 # apparent temperature
x[, c("temp", "humidity", "windspeed", "AT")]
Выход
temp humidity windspeed AT
2011-09-15 19.68 82 31.0009 12.166304
2011-02-02 9.02 93 7.0015 6.351849
2012-06-01 26.24 78 16.9979 25.669603
Что касается других ваших переменных, они связаны с сезонностью, и лучше использовать:
- анализ временных рядов с экзогенными переменными;
- машинное обучение (например, случайные лесные регрессии, рекуррентные нейронные сети и т. Д.);
- многомерная (не) линейная регрессия.