Я видел несколько примеров использования tidy
, dplyr
и purrr
для использования линейных регрессий из таблиц для прогнозирования одного значения. Вместо того, чтобы предсказывать только одно значение, я хотел бы предсказать целый новый фрейм данных. Итак, у меня есть следующие данные:
library(tidyverse)
y <- rep(seq(0, 240, by = 40), each = 7)
x <- rep(1:7, times = 7)
vol <- c(300, 380, 430, 460, 480, 485, 489,
350, 445, 505, 540, 565, 580, 585,
380, 490, 560, 605, 635, 650, 655,
400, 525, 605, 655, 690, 710, 715,
415, 555, 655, 710, 740, 760, 765,
420, 570, 680, 740, 775, 800, 805,
422, 580, 695, 765, 805, 830, 835)
df <- as.data.frame(cbind(y, x, vol))
Который я использовал для создания таких моделей:
df.1 <- df %>%
group_by(y) %>%
do(mod = lm(vol ~ poly(x, 5), data = .))
df.1
выглядит так:
# A tibble: 7 x 2
y mod
* <int> <list>
1 0 <S3: lm>
2 40 <S3: lm>
3 80 <S3: lm>
4 120 <S3: lm>
5 160 <S3: lm>
6 200 <S3: lm>
7 240 <S3: lm>
Теперь я хотел бы использовать новый фрейм данных и использовать модели выше для прогнозирования новых значений vol
newx <- data.frame(x = seq(1, 7, 0.001))
Обновление: предполагается, что ответом будут 7 таблиц с измерениями 6001x2 со значениями x от 1 до 7 на 0,001 и значениями 'vol' с прогнозом из x.