2017-07-16 101 views
0

我试图找出为什么我的lm()估计值与geom_smooth对于相同的数据和公式不同。具体来说,我的分组变量“cat”级别5的斜率在lm()输出中大于0,但geom_smooth中的< 0(因此该图不会反映汇总表)。R中的不同geom_smooth和lm()估计值:忘记将基础斜率和相互作用斜率加在一起

这里是the data。 (比更容易想出行为类似于示例性数据。)

模型:summary(lm(data=df, y~x*cat))

通告x:cat5斜率是> 0。

情节:

library(ggplot2) 
plt <- ggplot(df, aes(x=x, y=y, group=cat)) + 
    geom_smooth(method="lm", show.legend=FALSE) + 
    facet_wrap(~cat, nrow=1) + 
    geom_point(aes(color=color) 

获取geom_smooth估计(以下@Pedro Aphalo的回答here):

library(ggpmisc)  
my.formula <- y~x 
plt + stat_poly_eq(formula = my.formula, 
      aes(label = paste(..eq.label.., ..rr.label.., sep = "~~~")), 
      parse = TRUE) 

请注意,在小5斜率< 0是lm()geom_smooth使用不同的正方形或什么东西?我在报纸上报告哪个版本?如果可能的话,我想让两者达成一致,以便我可以在论文中使用geom_smoothlm()的汇总表。谢谢!

+0

您可以为数据(和模型)添加'summary'的输出,以便我们确信我们已经正确读取了数据。 – Spacedman

+0

@Spacedman,您在下面的输出确认您已正确读取数据。自从你解决了下面的问题之后,我不打算用输出更新问题。 – BonnieM

回答

3

这一切看起来都适合我。对于CAT5摘要行是:

Coefficients: 
      Estimate Std. Error t value Pr(>|t|)  
(Intercept) 1.932248 0.053131 36.368 < 2e-16 *** 
x   -0.006651 0.001962 -3.389 0.000721 *** 
... 
cat5  -1.080554 0.075138 -14.381 < 2e-16 *** 
... 
x:cat5  0.005602 0.002775 2.019 0.043720 * 

这意味着对于CAT5的斜率是x加总斜率为X的斜率:CAT5互动:

> -0.006651+0.005602 
[1] -0.001049 

和我看到的情节 - 0.00105

截距被示出为0.852,其是

> 1.932248+(-1.080554) 
[1] 0.851694 

所以据我所看到的,这两个事情一致。

+0

哦,我的天哪,@Spacedman。 (自额头一巴掌!)谢谢你抓住我简单的错误。我忘了将x斜率添加到交互斜率!非常感谢!!! – BonnieM