用于绘图的反向变换 `scale()` [英] backtransform `scale()` for plotting
本文介绍了用于绘图的反向变换 `scale()`的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个使用 scale()
居中的解释变量,用于预测响应变量:
I have a explanatory variable that is centered using scale()
that is used to predict a response variable:
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
进行反向转换或反向缩放?
I'd like to plot the predicted values, but using the original scale of x
rather than the centered scale. Is there a way to sort of backtransform or reverse scale s.x
?
谢谢!
推荐答案
看一看:
attributes(d$s.x)
您可以使用属性来取消缩放:
You can use the attributes to unscale:
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
这篇关于用于绘图的反向变换 `scale()`的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文