R密度()函数
R density() function
抱歉,如果这个问题很简单,但我看不到解决方案:我一直在频繁使用 density()
函数,总是没有问题,但现在我使用一些数据集 - 让我们称之为选项卡 - 与(很多)相对较小的值突然 density(tab)
给出了类似绝对频率的东西 - 知道我做错了什么吗?
(注意:hist(tab, freq = FALSE)
也为制表符提供了一些奇怪的东西。)
备注:summary(tab)
给出:
Min. / 1st Qu. / Median / Mean / 3rd Qu. / Max.
-0.0042810 /0.0002679 / 0.0011750 / 0.0071690 / 0.0049510 /0.5839000
我也非常感谢任何一般提示,在这种情况下 density()
不提供相对频率作为 y 值。
虽然我无法完全重现您的示例,但在我看来您的数据集中有一个巨大的异常值。即,您的第三个四分位数是 0.005,但最大值是 0.584。在实轴上,从第三个四分位数到最小值的距离为 0.01。从第三个四分位数到最大值的距离超过 0.583。那是 58 倍远!根据我的理解,density
尝试选择适用于所有值的带宽。在这种情况下,带宽可能非常小,因为大多数值聚集在一起接近于 0。在这种情况下,您可能会得到一个非常退化的密度图,有两条垂直线,一条在左边,一条在右边正确的。我能够使用以下方法生成一个这样的图:
plot(density(c(rnorm(100, 0, 0.001), 100)))
我所做的就是从标准差为 0.001 的正态分布中抽取样本,然后向该分布中添加一个离群值 100。然后密度看起来像这样:
密度值看起来肯定会与频率混淆,但事实并非如此。当然,如果我删除离群值,那么估计的密度函数会变成漂亮的钟形:
因此,您似乎需要从数据中删除异常值。
抱歉,如果这个问题很简单,但我看不到解决方案:我一直在频繁使用 density()
函数,总是没有问题,但现在我使用一些数据集 - 让我们称之为选项卡 - 与(很多)相对较小的值突然 density(tab)
给出了类似绝对频率的东西 - 知道我做错了什么吗?
(注意:hist(tab, freq = FALSE)
也为制表符提供了一些奇怪的东西。)
备注:summary(tab)
给出:
Min. / 1st Qu. / Median / Mean / 3rd Qu. / Max.
-0.0042810 /0.0002679 / 0.0011750 / 0.0071690 / 0.0049510 /0.5839000
我也非常感谢任何一般提示,在这种情况下 density()
不提供相对频率作为 y 值。
虽然我无法完全重现您的示例,但在我看来您的数据集中有一个巨大的异常值。即,您的第三个四分位数是 0.005,但最大值是 0.584。在实轴上,从第三个四分位数到最小值的距离为 0.01。从第三个四分位数到最大值的距离超过 0.583。那是 58 倍远!根据我的理解,density
尝试选择适用于所有值的带宽。在这种情况下,带宽可能非常小,因为大多数值聚集在一起接近于 0。在这种情况下,您可能会得到一个非常退化的密度图,有两条垂直线,一条在左边,一条在右边正确的。我能够使用以下方法生成一个这样的图:
plot(density(c(rnorm(100, 0, 0.001), 100)))
我所做的就是从标准差为 0.001 的正态分布中抽取样本,然后向该分布中添加一个离群值 100。然后密度看起来像这样:
因此,您似乎需要从数据中删除异常值。