转自: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
两个结果是一样的