R,scale,归一化,反归一化

转自:http://bbs.pinggu.org/thread-4468874-1-1.html

scale是减掉平均值再除以标准差;得到拟合数据之后,乘以标准差再加上平均值就可以了。

例子:

set.seed(1)
x <- runif(20)
y <- 2 * x + 0.1 * rnorm(20)
plot(x, y)

dat <- data.frame(y, x)
scaled.dat <- scale(dat)
scaled.dat <- as.data.frame(scaled.dat)

scaled.fit <- lm(y ~ x, data = scaled.dat)

(scaled.fit$fitted.values * sd(y)) + mean(y) # 先scale再变回去

fit <- lm(y ~ x)
fit$fitted.values  # 不用scale

两个结果是一样的


你可能感兴趣的:(R)