从R中正态分布的特定部分进行采样

时间:2018-08-13 03:48:18

标签: r random sampling resampling

我正在尝试首先从<= -4正态分布中提取所有值p1(称为mother)。然后,根据p1mother中被选择的概率随机抽取50个p2(称其为50个-4)。例如,-6mother <- rnorm(1e6) p1 <- mother[mother <= -4] p2 <- sample(p1, 50, replace = T) # How can I define probability of being selected here? 更可能被选中,后者更靠近尾部区域。

我想知道我下面的R代码是否正确捕获了我上面描述的内容?

var animals = { "types": [ { "id": "1", "tags": ["cat"] }, { "id": "2", "tags": ["dog"] }, { "id": "3", "tags": ["cat", "bird", "dog"] }, { "id": "4", "tags": [] }, { "id": "5", "tags": ["cat", "bird"] } ] }
var finalRes={};
animals.types.map(function(o, i){
o.tags.map(function(p, j){
    finalRes[p]=(finalRes[p]||0)+1;
});
});
console.log(finalRes);

enter image description here

3 个答案:

答案 0 :(得分:1)

您可以使用函数sample自变量prob。引用help("sample")

  

概率概率权重向量,用于获得的元素   被采样的向量。

Details部分中:

  

可选的prob参数可用于为以下项提供权重向量   获得要采样的向量的元素。他们不需要求和   设为1,但它们应为非负且不全为零。

因此,您必须小心,与平均值的距离越小,概率越小,正态分布会很快下降到较小的概率值。

set.seed(1315)    # Make the results reproducible

mother <- rnorm(1e6)
p1 <- mother[mother <= -4]

p2 <- sample(p1, 50, replace = T, prob = pnorm(p1))

您可以看到它与直方图一起工作。

hist(p2)

答案 1 :(得分:1)

首先从截断后的正态分布采样会更容易吗?

truncnorm::rtruncnorm(50, a = -Inf, b = -4)

答案 2 :(得分:0)

我认为您正在寻找这样的东西:

mother <- rnorm(1e6)
p1 <- mother[mother <= -4]

计算从mother中选择p1的可能性

p2 <- sample(p1, 50, replace = T,prob = pnorm(p1,mean = mean(mother),sd = sd(mother)))