通过 abline(lm(y~x)) 在 R 中添加回归线会产生带有 -log10 的奇数结果

Adding regression line via abline(lm(y~x)) in R produces odd result with -log10

在我的研究领域,两个变量 -log10(x) 和 y 之间存在线性关系是公认的。

我在 R 中绘制了以下散点图,代码为:

plot(-log10(LDR2EUR$V5),LDR2EUR$V6,ylab="r2 to rs13169313", xlab="log10(association p-value)",col=ifelse(LDR2EUR$V6==1,'purple',LDR2EUR$V7), pch=20)

然后我尝试通过以下方式添加回归线:

abline(lm(LDR2EUR$V6~-log10(LDR2EUR$V5)))

但是,该线并不像最佳拟合线那样适合数据。

我想知道线条拟合不佳是否与 -log10 有关?

cor(LDR2$V6,-log10(LDR2$V5))

returns 0.9776906 在我看来应该不是水平线,而是类似于 y=x 的线。

任何指导将不胜感激。

这是一个公式问题,与 log10 无关,而是因为 "-" 符号在公式表达式中的解释方式:

lm(LDR2EUR$V6 ~ -log10(LDR2EUR$V5) 

.. 不会针对负 V5 使 V6 回归,而是将 V5 从考虑中移除。 (您最终在 V6 的平均值处绘制了一条线。请改为尝试:

abline( lm( LDR2EUR$V6 ~ I(-log10(LDR2EUR$V5) ) )

您可能真的想要(如果理论支持通过 (0,0) 的线):

abline( lm( LDR2EUR$V6 ~ I(-log10(LDR2EUR$V5) -1 ) )

这也不会从任何东西中减去 1,而是移除 y 截距并强制拟合通过原点。