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

时间:2015-07-09 22:55:26

标签: r plot lm

在我的研究领域,已经确定两个变量-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)))

enter image description here

但是,该行不适合数据,如最佳拟合线。

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

由于

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

返回0.9776906,在我看来不应该产生水平线,而是一条类似于y = x的线。

非常感谢任何指导。

1 个答案:

答案 0 :(得分:4)

这是一个公式问题,与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轴截距并强制拟合穿过原点。