【发布时间】:2013-05-10 11:36:20
【问题描述】:
我有关于人们每周上班的次数的数据。除了旅行的距离,我对这两个变量之间的关系感兴趣。 (预计频率会随着距离的增加而下降,本质上是负相关。)Cor.test 支持这一假设:-0.08993444,p 值为 2.2e-16。
当我开始绘制此图时,距离显然会随着更频繁的旅行而减少。为了理解大量的点,我使用了 geom_smooth。但我不完全理解结果。根据help pages,这是一个“条件均值”。但是,它似乎永远不会接近真正的平均值,
> mean(aggs3$Distance)
[1] 9.766497
在下面的图中,它似乎永远不会超过 8。 这里发生了什么?我想我真的想要滚动平均值,但是从 zoo 包中发现 rollmean 实现起来很麻烦(您需要先对数据进行排序),并且我想在继续前进之前询问最佳解决方案。非常感谢。
p <- ggplot(data=aggs3, aes(x=N.trips.week, y=Distance))
p + geom_point(alpha = 0.1) + geom_smooth() +
ylim(0,30) + xlim(0,25) + ylab("Distance (miles)") +
stat_density2d(aes(fill = ..level..), geom="polygon", alpha=0.5,na.rm=T, se=0.1)
(次要无关问题:如何使 2d 密度层轮廓更平滑?)
(P.s. 我知道有更好的方法来可视化这一点 - 例如下面,但为了学习,我需要更好地了解如何使用 geom_smooth。)
【问题讨论】:
-
假设您使用
geom_smooth的默认设置,您所看到的实际上是“滚动平均值”,因为使用的loess方法本质上是使用本地拟合模型平均。尽管默认值的二次性质可能与您简单的“滚动平均值”预期相冲突。 -
来吧。于并没有真正向我们展示这些数据。你坚持 ylim=c(0,30) 并且很容易在距离值中存在一些怪异的 9999 值,从而扭曲了平均值。黄土估计对这种影响不敏感。向我们展示
max(eggs$Distance)和tail(sort(eggs$Distance))。 -
@DWin:除非条形图被类似地截断,否则不会有超过 100 的值。
-
@RoyalTS:那么,条形图前两列中绘制为深绿色但未显示在图例中且可能高于 100 的值是什么?
-
啊!你的眼睛明显比我好。道歉!
标签: r ggplot2 smooth smoothing