Я понимаю концепцию масштабирования матрицы данных для использования в модели линейной регрессии. Например, в R вы можете использовать:
scaled.data <- scale(data, scale=TRUE)
Мой единственный вопрос: для новых наблюдений, для которых я хочу предсказать выходные значения, как они правильно масштабируются? Это будет scaled.new <- (new - mean(data)) / std(data)
?
r
regression
prediction
scales
SamuelNLP
источник
источник
y = y_esc * sd(y) + mean(y)
, но я думаю, что это испортит свойства модели, поэтому я также жду более технического ответа!Ответы:
Короткий ответ на ваш вопрос: да, это выражение для scaled.new является правильным (за исключением того, что вы хотели
sd
вместоstd
).Возможно, стоит отметить, что у масштаба есть необязательные аргументы, которые вы можете использовать:
Кроме того, объект, возвращаемый функцией scale (scaled.data), имеет атрибуты, содержащие числовое центрирование и используемые масштабирования (если есть), которые вы можете использовать:
Преимущество этого проявляется, когда исходные данные имеют более одного столбца, поэтому необходимо учитывать несколько средних и / или стандартных отклонений.
источник
scaled.new <- scale(new, use.attrs = scaled.data)