如何根据单独变量的 bin 识别一个变量的最大值
How to identify max value of one variable based on bins of a separate variable
我看到了一些分箱问题,但还没有找到解决这种情况的方法。在 group_by 条件下,我试图确定模式,但挑战在于模式应考虑每个观察值(行)的数量,如另一列所定义。
在我的数据中,每一行代表给定时间的一次观察,一列有 speed
而另一列有 quantity
值。如果我 运行 关于 speed
的统计数据,它会忽略每次观察期间的实际 quantity
。 speed
是一个连续变量,所以我知道我要分箱(比如 0-80 以 5 为增量),然后对每个分箱的 quantity
求和,最后报告 speed
具有最高数量的 bin(将在单独计算中使用的值)。
bin 标签最好是中点(45-50 将列为 47.5)。这将是 运行 通过一组观察。
我看过 count(cut_width())
但这只是观察计数,不确定如何找到最大数量。谢谢。
我的一些同事在这方面提供了一些很好的方向,我在网上找到了更多的内容。最好的方法之一是寻找允许权重影响分布的 kde 或密度函数。在我的例子中,我根据每次速度观察所观察到的车辆数量(数量)分配了一个权重。
那个方向把我带到了这里:https://rmflight.github.io/post/finding-modes-using-kernel-density-estimates/
其中有一个很好的方法可以从密度函数中找到众数,所以我只是修改了密度条件来增加权重,然后设置一个bin width。
density_estimate <- density(data.calc$Speed, weights=data.calc$Quantity, bw=1)
然后是来自 github 站点的其余代码
mode_value <- density_estimate$x[which.max(density_estimate$y)]
mode_value
我的数据是按组评估的,所以我将其置于循环中(我知道人们不喜欢这种循环)并且能够按不同的时间间隔评估模式。也许这一切都是显而易见的,但我仍在学习并且很高兴发现这种方法有效。
我看到了一些分箱问题,但还没有找到解决这种情况的方法。在 group_by 条件下,我试图确定模式,但挑战在于模式应考虑每个观察值(行)的数量,如另一列所定义。
在我的数据中,每一行代表给定时间的一次观察,一列有 speed
而另一列有 quantity
值。如果我 运行 关于 speed
的统计数据,它会忽略每次观察期间的实际 quantity
。 speed
是一个连续变量,所以我知道我要分箱(比如 0-80 以 5 为增量),然后对每个分箱的 quantity
求和,最后报告 speed
具有最高数量的 bin(将在单独计算中使用的值)。
bin 标签最好是中点(45-50 将列为 47.5)。这将是 运行 通过一组观察。
我看过 count(cut_width())
但这只是观察计数,不确定如何找到最大数量。谢谢。
我的一些同事在这方面提供了一些很好的方向,我在网上找到了更多的内容。最好的方法之一是寻找允许权重影响分布的 kde 或密度函数。在我的例子中,我根据每次速度观察所观察到的车辆数量(数量)分配了一个权重。
那个方向把我带到了这里:https://rmflight.github.io/post/finding-modes-using-kernel-density-estimates/
其中有一个很好的方法可以从密度函数中找到众数,所以我只是修改了密度条件来增加权重,然后设置一个bin width。
density_estimate <- density(data.calc$Speed, weights=data.calc$Quantity, bw=1)
然后是来自 github 站点的其余代码
mode_value <- density_estimate$x[which.max(density_estimate$y)]
mode_value
我的数据是按组评估的,所以我将其置于循环中(我知道人们不喜欢这种循环)并且能够按不同的时间间隔评估模式。也许这一切都是显而易见的,但我仍在学习并且很高兴发现这种方法有效。