Предикат () и новые данные - Как это работает?
Кто-то недавно разместил вопрос по этой статье здесь: https://static.googleusercontent.com/media/www.google.com/en//googleblogs/pdfs/google_predicting_the_present.pdf
Код R бумаги можно найти в самом конце статьи. По сути, в статье исследуются прогнозы продаж на один месяц вперед с помощью поисковых запросов. Я думаю, что понял модель и метод, но есть одна деталь, которая озадачивает меня. Это часть:
1 ##### Divide data by two parts - model fitting & prediction
dat1 = mdat[1:(nrow(mdat)-1), ]
dat2 = mdat[nrow(mdat), ]
2 ##### Fit Model;
fit = lm(log(sales) ~ log(s1) + log(s12) + trends1, data=dat1);
summary(fit)
а также:
3 #### Prediction for the next month;
predict.fit = predict(fit, newdata=dat2, se.fit=TRUE);
Я понимаю, что dat2
в (1) только последний ряд из mdat
, (2) означает, что регрессионная модель применяется ко всему, кроме последней строки в наборе данных.
Но почему newdata=dat2
в модели прогнозирования (3) и что это значит? Почему только последний ряд?
1 ответ
Вот описание для каждой строки кода:
dat1 = mdat[1:(nrow(mdat)-1), ]
Создает подмножество всего набора данных, который содержит все, кроме последней строки.
dat2 = mdat[nrow(mdat), ]
Создает подмножество всего набора данных, которое содержит только последнюю строку.
fit = lm(log(sales) ~ log(s1) + log(s12) + trends1, data=dat1)
Для модели примерка только первая подгруппа dat1
используемый. Так что данные без последнего ряда.
predict.fit = predict(fit, newdata=dat2, se.fit=TRUE)
predict
берет подобранную модель и смотрит, что она предсказывает для "невидимых" данных dat2
,
В простейшем случае только с одной независимой переменной мы бы поместили строку dat1
а затем посмотрите, какое значение Y будет предсказано для значения X dat2
,