2017-01-03 10 views
1

В настоящее время я работаю над университетским проектом, чтобы предсказать количество клиентов, которые прибывают в магазин 24/7. Я использую данные из магазина, который содержит (помимо всего прочего) дату и время, в течение которых обслуживался каждый клиент в течение определенного года.Перекрестная проверка для множественной линейной регрессии в R

Я разделил этот набор данных на обучающий набор и набор кросс-валидации. Кроме того, я собрал и объединил учебный набор с данными о погоде того же года, чтобы узнать, например, если высокие температуры приводят к большему количеству клиентов.

Упрощенная версия объединенных данных выглядит следующим образом:

| ServedCustomers | Month | Day | Hour | Temperature (C°) | Rain(binary) 
| --------------- | ----- | --- | ---- | ---------------- | ------------ 
| 1    | 12 | 31 | 12 | 9.2    | 0 
| 0    | 12 | 31 | 13 | 9.8    | 1 
| 2    | 12 | 31 | 14 | 10.1    | 0 

За каждый час года, у меня есть несколько клиентов, которые подавались, а также соответствующие данные о погоде.

Я создал модель множественной линейной регрессии в R, чтобы предсказать количество клиентов с почти любой другой переменной в качестве предиктора. Используя команду summary(), MSE, R^2 и другие статистические данные выглядят хорошо.

Теперь я хочу проверить, работает ли эта же модель с перекрестной проверкой. Для этого я объединился с одними и теми же данными о погоде, чтобы получить набор данных, который имеет ту же структуру, что и приведенная выше таблица, только с разным количеством клиентов.

Однако, вот где я сейчас застрял. Использование функции predict.lm() с моделью и набором кросс-валидации действительно работает, но дает только прогнозируемые значения и небольшую дополнительную информацию.

Есть ли способ создать резюме того, насколько хорошо модель работает для другого набора данных? Как и в команде summary(), но для набора данных, на котором основана не линейная модель?

ответ

0

Вы можете вычислить среднюю квадратичную ошибку и среднеквадратичную ошибку, чтобы увидеть, насколько хорошо ваша модель.

1) Возьмите свои коэффициенты и умножьте их на свою матрицу ковариатов в ваших данных обучения. yhat = (X * b)

2) Возьмите свой тренировочный комплект y и возьмите разницу между ними и yhat выше.

3) Square ошибки

4) Возьмите квадратный корень ответа = Root Mean Squared Error

Нижних значений означает лучше подходят общий