gpt4 book ai didi

r - 如何在 R 中进行 ma 和 loess 归一化?

转载 作者:行者123 更新时间:2023-12-01 14:01:08 24 4
gpt4 key购买 nike

尝试在 R 中使用 MA 规范化 (http://en.wikipedia.org/wiki/MA_plot) 对两个变量 xy 做 loess,如下所示:

> x = rnorm(100) + 5
> y = x + 0.6 + rnorm(100)*0.8
> m = log2(x/y)
> a = 0.5*log(x*y)

我想以平均 m 为 0 的方式对 x 和 y 进行归一化,就像在标准 MA 归一化中一样,然后反向计算正确的 x 和 y 值。第一次在 MA 上运行黄土:

> l = loess(m ~ a)

那有什么方法可以得到更正的m值呢?这是正确的吗?

> mc <- predict(l, a)
# original MA plot
> plot(a,m)
# corrected MA plot
> plot(a,m-mc)

我不清楚 predictloess 对象的情况下实际上做了什么,以及它与在对象中使用 l$residuals 有何不同lloess 返回 - 有人可以解释一下吗?最后,我如何根据此更正计算新的 xy 值?

最佳答案

首先,是的,您提出的方法得到了更正 m值(value)观。

关于预测功能:是的,l$residuals , m - fitted(l) , 和 m -
predict(l)
都给出相同的结果:修正后的 m 值。然而,predict函数更通用:它将任何新值作为输入。如果您只想使用数据的一个子集来拟合黄土,然后对数据的整体进行预测(例如,使用加标标准时),这将很有用。

最后,你怎么回算新的xy基于此更正的值?如果通过创建两个新变量 x1 <- log2(x) 将数据转换为对数空间和 y1 <- log2(y) , 它变得更容易看到。由于我们在对数空间中,计算 ma更简单:

  • m <- x1 - y1
  • a <- (x1 + y1)/2

现在,为了根据拟合的黄土模型更正您的数据,而不是更新 m由你的变量 mc更正,可以更新x1y1反而。设置:

  • x1 <- x1 - mc / 2
  • y1 <- y1 + mc / 2

本次更新与更新m <- m - mc效果相同(因为 m 将被重新计算为更新后的 x1y1 之间的差异)并且对 a 没有影响值(value)。

要获得更正后的数据,请通过返回 2^x1 来转换它们和 2^y1 .

这是 affy 包中 normalize.loess 函数的作者所使用的方法,正如此处最初描述的那样(并且包括循环查看所有变量对而不是本例中的一对变量的能力): http://web.mit.edu/~r/current/arch/i386_linux26/lib/R/library/limma/html/normalizeCyclicLoess.html

关于r - 如何在 R 中进行 ma 和 loess 归一化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15534287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com