r - backtransform `scale()` 用于绘图

标签 r

我有一个使用 scale() 居中的解释变量,用于预测响应变量:

d <- data.frame(
  x=runif(100),
  y=rnorm(100)
)

d <- within(d, s.x <- scale(x))

m1 <- lm(y~s.x, data=d)

我想绘制预测值,但使用 x 的原始比例而不是中心比例。有没有办法进行反向变换或反向缩放s.x

谢谢!

最佳答案

看一下:

attributes(d$s.x)

您可以使用属性来取消缩放:

d$s.x * attr(d$s.x, 'scaled:scale') + attr(d$s.x, 'scaled:center')

例如:

> x <- 1:10
> s.x <- scale(x)

> s.x
            [,1]
 [1,] -1.4863011
 [2,] -1.1560120
 [3,] -0.8257228
 [4,] -0.4954337
 [5,] -0.1651446
 [6,]  0.1651446
 [7,]  0.4954337
 [8,]  0.8257228
 [9,]  1.1560120
[10,]  1.4863011
attr(,"scaled:center")
[1] 5.5
attr(,"scaled:scale")
[1] 3.02765

> s.x * attr(s.x, 'scaled:scale') + attr(s.x, 'scaled:center')
      [,1]
 [1,]    1
 [2,]    2
 [3,]    3
 [4,]    4
 [5,]    5
 [6,]    6
 [7,]    7
 [8,]    8
 [9,]    9
[10,]   10
attr(,"scaled:center")
[1] 5.5
attr(,"scaled:scale")
[1] 3.02765

关于r - backtransform `scale()` 用于绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10287545/

相关文章:

javascript - 根据另一个向量设置 Shiny tableOutput 中列的背景颜色

r - 使用 R 下载 Excel 文件

r - 使用两列的模糊逻辑连接

r - 在 R 中保存 str_which 循环的输出

r - Shiny 的应用程序 : Keep panels consistent in several views

r - Overpass 未找到所有电影院 - Overpass API 文档

r - 如何将多个类添加到 Rcpp 中的对象?

javascript - R 中的 Highcharts 依赖轮

r - 使用 tryCatch 在出错时跳到循环的下一个值?

r - 在 R 中绘制逻辑回归曲线