与规定的平均样品整数值

问题描述 投票:2回答:1

我想生成整数的R中的样本与规定的平均。我用mu+sd*scale(rnorm(n))生成n值的样品具有完全相同的平均值= mu但这产生浮点值;我想生成整数值代替。例如,我想生成平均= 4的样品。我的样本大小n = 5,生成的值的一个例子将是{2,6,4,3,5}。如何做到这一点R中,同时满足均值的特定值的约束任何想法?

r random mean
1个回答
5
投票

n的平均采摘m值相当于采摘n值那笔m*n。根据抽样分区(集,加起来所需的总价值)均匀下面是一个解决方案,但我不是 - (否则事情就变得更难我假设你要坚持正整数!)相信这是你想要的,因为它不随值均匀采样,但在分区......也许别人可以做的更好,或者找出如何reweight样本。

这蛮力解决方案也可能会失败情况下比你的榜样大得多(有总共20,5604的共计30,37338共40 627个分区...)

m <- 4
n <- 5
library("partitions")    
pp <- parts(m*n) ## all sets of integers that sum to m*n (=20 here)
## restrict to partitions with exactly n (=5) non-zero values.
pp5 <- pp[1:5,colSums(pp>0)==n]
set.seed(101) ## for reproducibility
## sample uniformly from this set
pp5[,sample(ncol(pp5),size=1)]  ## 9, 5, 4, 1, 1
© www.soinside.com 2019 - 2024. All rights reserved.