R-来自数据集的自定义概率分布的随机图

R-来自数据集的自定义概率分布的随机图,r,random,empirical-distribution,R,Random,Empirical Distribution,我有一个R数据框my_measurements(这是一个更大的10k+行数据框的子样本),看起来像这样: > glimpse(my_measurements) Observations: 300 Variables: 2 $ measurement_id <int> 2, 27, 36, 39, 41, 44, 118, 121, 125, 127, 132, 134, 148... $ value <dbl> 0.9746835, 1.00000

我有一个R数据框
my_measurements
(这是一个更大的10k+行数据框的子样本),看起来像这样:

> glimpse(my_measurements)
Observations: 300
Variables: 2
$ measurement_id <int> 2, 27, 36, 39, 41, 44, 118, 121, 125, 127, 132, 134, 148...
$ value          <dbl> 0.9746835, 1.0000000, 1.0000000, 1.0000000, 1.0000000, 0...
ggplot(data = my_measurements) + 
    geom_density(mapping = aes(x = value, ..density..))
其中,
measurement\u id
只是每个度量的唯一标识符,
value
是度量本身(正好介于0和1之间,但并不意味着概率意义,在其他情况下可以是任何数字)

我对
值的密度分布做了
ggplot()
,如下所示:

> glimpse(my_measurements)
Observations: 300
Variables: 2
$ measurement_id <int> 2, 27, 36, 39, 41, 44, 118, 121, 125, 127, 132, 134, 148...
$ value          <dbl> 0.9746835, 1.0000000, 1.0000000, 1.0000000, 1.0000000, 0...
ggplot(data = my_measurements) + 
    geom_density(mapping = aes(x = value, ..density..))
看起来是这样的:

> glimpse(my_measurements)
Observations: 300
Variables: 2
$ measurement_id <int> 2, 27, 36, 39, 41, 44, 118, 121, 125, 127, 132, 134, 148...
$ value          <dbl> 0.9746835, 1.0000000, 1.0000000, 1.0000000, 1.0000000, 0...
ggplot(data = my_measurements) + 
    geom_density(mapping = aes(x = value, ..density..))

正如您所看到的,
value
s的范围从0到1,但很多值都接近1

我的问题是:如何使用绘图中的曲线作为概率密度函数(我希望我使用的是正确的术语,如果不是,请纠正我!)从中抽取随机样本

理想情况下,我想创建一个函数,它给我一个介于0到1之间的随机数,概率是曲线的函数。在一个可能的实施例中,该函数将采用两个参数:一个是向量,在这种情况下,包含来自
my_测量值的所有
值;第二个是要选择的随机数。返回值将是从该分布中提取的数字向量

因此,当我针对
my_measurements
dataset运行此函数时,它返回接近1的数字的可能性很高,返回0.25(曲线中的最低点)的可能性很低


希望这有意义,非常感谢您的帮助。

我想知道您为什么需要这个。也许你可以用引导法代替

您可以使用:


mysampler非常感谢@Roland,这太棒了!我也能在我这边运行它,它应该足以满足我的需要。快速提问:(1)我不熟悉你最后一句话中的“内核密度”和“带宽”这两个术语,它们是重要的考虑因素吗?(2) 您的评论是什么意思?可能应该使用不同的分位数类型?很抱歉,我第一次没有看到它,但是我如何按照您在回答中的建议引导它?你的意思是仅仅从
我的测量值$value
中取样吗?对不起,我不能在评论线程中进行统计学讲座。关于分位数类型的评论与R的
分位数
函数有关,该函数实现了七种不同类型的分位数,我不知道哪一种最适合此目的。我必须做一些阅读或模拟,但没有时间。