Короткий ответ на ваш вопрос: да, это выражение для scaled.new является правильным (за исключением того, что вы хотели sd
вместо std
).
Возможно, стоит отметить, что у масштаба есть необязательные аргументы, которые вы можете использовать:
scaled.new <- scale(new, center = mean(data), scale = sd(data))
Кроме того, объект, возвращаемый функцией scale (scaled.data), имеет атрибуты, содержащие числовое центрирование и используемые масштабирования (если есть), которые вы можете использовать:
scaled.new <- scale(new, attr(scaled.data, "scaled:center"), attr(scaled.data, "scaled:scale"))
Преимущество этого проявляется, когда исходные данные имеют более одного столбца, поэтому необходимо учитывать несколько средних и / или стандартных отклонений.
y = y_esc * sd(y) + mean(y)
, но я думаю, что это испортит свойства модели, поэтому я также жду более технического ответа!