Como escalar novas observações para fazer previsões quando o modelo foi ajustado com dados escalados?


13

Entendo o conceito de escalar a matriz de dados para usar em um modelo de regressão linear. Por exemplo, em R você pode usar:

scaled.data <- scale(data, scale=TRUE)

Minha única pergunta é, para novas observações para as quais quero prever os valores de saída, como elas são dimensionadas corretamente? Seria scaled.new <- (new - mean(data)) / std(data)?


1
Para recuperar os valores, basta fazer isso y = y_esc * sd(y) + mean(y), mas isso interferiria nas propriedades do modelo, acho, então também estou esperando uma resposta mais técnica!
— Fernando

Não quero os valores de volta, quero saber como novas instâncias podem ser dimensionadas corretamente da mesma maneira. Editei minha pergunta com base no seu comentário.
— precisa saber é o seguinte

Respostas:


13

A resposta curta para sua pergunta é sim - essa expressão para scaled.new está correta (exceto que você queria, em sdvez destd ).

Pode ser interessante notar que a escala possui argumentos opcionais que você pode usar:

scaled.new <- scale(new, center = mean(data), scale = sd(data))

Além disso, o objeto retornado pela escala (scaled.data) possui atributos que mantêm a centralização numérica e as escalas usadas (se houver), que você pode usar:

scaled.new <- scale(new, attr(scaled.data, "scaled:center"), attr(scaled.data, "scaled:scale"))

A vantagem disso aparece quando os dados originais têm mais de uma coluna; portanto, há várias médias e / ou desvios padrão a serem considerados.


Eu gostaria que houvesse uma maneira um pouco mais simples de fazer isso, comoscaled.new <- scale(new, use.attrs = scaled.data)
— wordsforthewise

@wordsforthewise Não seria difícil escrever um wrapper para o scale.default para conseguir isso. Duvido que o R-core lhe daria alta prioridade.
— user20637

Sim. Se eu puder descobrir como contribuir com o R-core e encontrar tempo para fazê-lo, talvez eu faça isso.
— wordsforthewise
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.