尝试在R中使用MA标准化(http://en.wikipedia.org/wiki/MA_plot)对两个变量x
和y
进行loess拟合:
> x = rnorm(100) + 5
> y = x + 0.6 + rnorm(100)*0.8
> m = log2(x/y)
> a = 0.5*log(x*y)
我希望将x和y正规化,使平均值m
为0,就像标准MA正规化一样,然后再计算出正确的x和y值。首先,在MA上运行loess:
> l = loess(m ~ a)
什么是获取更正的
m
值的方法?这正确吗?> mc <- predict(l, a)
# original MA plot
> plot(a,m)
# corrected MA plot
> plot(a,m-mc)
我不清楚在loess
对象中,predict
实际上是做什么的,以及它与使用loess
返回的l
对象中的l$residuals
有何不同 - 有人能解释一下吗?
最后,我如何根据这个校正来反推新的x
和y
值?
library(affy)
,它包含了normalize.loess
和ma.plot
函数。为什么不使用这个软件包来控制你的结果呢? - agstudyloess
实现,无需额外的包。我想了解在R中如何使用loess拟合而不依赖于软件包。 - user248237