我有关于人们每周上班次数的数据。随着旅行的距离,我感兴趣的是两个变量之间的关系。 (频率预计会随着距离的增加而下降,基本上是负面关系。)Cor.test支持这一假设:-0.08993444,p值为2.2e-16。
当我来绘制这个时,距离显然会随着更频繁的旅行而减少。为了理解我使用geom_smooth的大量点数。但我不完全理解结果。根据{{3}},它是一个“条件均值”。然而,它似乎永远不会接近真正的意思,
> mean(aggs3$Distance)
[1] 9.766497
在下面的图中,似乎永远不会超过8。 这里发生了什么?我认为我真的想要滚动的意思,但是从动物园包中发现help pages需要实现的麻烦(你需要先对数据进行排序),我想在开始前提出最佳解决方案。非常感谢。
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。)
答案 0 :(得分:1)
曲线geom_smooth
产生的确是对条件均值函数的估计,即它是以英里为单位的平均距离的估计以每周的行程数为条件(这是一个特定的一种叫做LOESS的估算器。相反,您计算的数字是无条件均值的估计值,即所有数据的均值。
如果这是您感兴趣的两个变量之间的关系,那么有很多方法可以对其进行建模。如果你只想要一个线性关系,那么拟合一个线性模型(lm()
)就可以了,如果这是你要绘制的内容,那么将method='lm'
作为参数传递给geom_smooth
会告诉你看起来像什么。但是你的数据看起来并不像两个变量之间只有一个简单的线性关系,所以你可能想要更加想想你想要做什么!