Предикат () и новые данные - Как это работает?

Кто-то недавно разместил вопрос по этой статье здесь: 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,

Другие вопросы по тегам