2

我有关于人们每周上班的次数的数据。除了旅行的距离,我对这两个变量之间的关系感兴趣。(频率预计会随着距离的增加而下降,本质上是负相关。)Cor.test 支持这一假设:-0.08993444,ap 值为 2.2e-16。

当我开始绘制这个时,距离显然会随着更频繁的旅行而减少。为了理解大量的点,我使用了 geom_smooth。但我不完全理解结果。根据帮助页面,这是一个“条件均值”。然而,它似乎永远无法接近真正的平均值,

> mean(aggs3$Distance)
[1] 9.766497

在下面的图中,它似乎永远不会超过 8。这里发生了什么?我想我真的想要滚动均值,但发现zoo 包中的rollmean实现起来很麻烦(您需要先对数据进行排序),并且我想在继续前进之前询问最佳解决方案。非常感谢。

geom_smooth

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 密度层轮廓更平滑?)

(Ps 我知道有更好的方法来可视化这一点 - 例如下面,但为了学习,我需要更好地了解如何使用 geom_smooth。)

直方图

4

1 回答 1

3

曲线geom_smooth产生的确实是条件平均函数的估计值,即它是以英里为单位的平均距离的估计值,条件是每周的旅行次数(它是一种称为 LOESS 的特殊估计量)。相反,您计算的数字是对无条件平均值的估计,即所有数据的平均值。

如果这是您感兴趣的两个变量之间的关系,那么您可以通过多种方式对其进行建模。如果你只想要一个线性关系,拟合一个线性模型 ( lm()) 就可以了,如果这是你想要绘制的,method='lm'作为参数传递给geom_smooth你会告诉你它是什么样子的。但是您的数据看起来并不像两个变量之间只有简单的线性关系,因此您可能需要更加努力地思考您到底想要做什么!

于 2013-05-16T05:49:35.390 回答