Entiendo el concepto de escalar la matriz de datos para usar en un modelo de regresión lineal. Por ejemplo, en R podrías usar:
scaled.data <- scale(data, scale=TRUE)
Mi única pregunta es, para nuevas observaciones para las que quiero predecir los valores de salida, ¿cómo se escalan correctamente? ¿Sería scaled.new <- (new - mean(data)) / std(data)
?
r
regression
prediction
scales
SamuelNLP
fuente
fuente
y = y_esc * sd(y) + mean(y)
, hazlo , pero supongo que eso alteraría las propiedades del modelo, ¡así que también estoy esperando una respuesta más técnica!Respuestas:
La respuesta corta a su pregunta es sí, esa expresión para scaled.new es correcta (excepto que quería en
sd
lugar destd
).Vale la pena señalar que la escala tiene argumentos opcionales que podría usar:
Además, el objeto devuelto por scale (scaled.data) tiene atributos que contienen el centrado numérico y las escalas utilizadas (si las hay), que podría usar:
La ventaja de esto aparece cuando los datos originales tienen más de una columna, por lo que hay que considerar múltiples medios y / o desviaciones estándar.
fuente
scaled.new <- scale(new, use.attrs = scaled.data)