【问题标题】:Adding regression line via abline(lm(y~x)) in R produces odd result with -log10在 R 中通过 abline(lm(y~x)) 添加回归线会产生带有 -log10 的奇怪结果
【发布时间】:2015-09-28 13:10:37
【问题描述】:

在我的研究领域中,众所周知,两个变量 -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))

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

任何指导将不胜感激。

【问题讨论】:

    标签: r plot lm


    【解决方案1】:

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

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

    .... 不会将 V6 与负 V5 回归,而是将 V5 排除在考虑之外。 (你最终在 V6 的平均值处绘制了一条线。试试吧:

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

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

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

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

    【讨论】:

    • -1 是否必须是 I(-log10(LDR2EUR$V5)) -1 才能删除拦截?
    • 我不记得看到上面的问题,但我现在想知道为什么会问它,因为我说代码会导致线路通过 (0,0)
    猜你喜欢
    • 2015-11-20
    • 1970-01-01
    • 2021-11-19
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 2015-10-04
    相关资源
    最近更新 更多