我有一组 4 个值。 我想生成一个随机数,该随机数将添加到每个集合中。但是相加后,均值和方差的值应该不会改变。添加前集合的含义和方差应与添加数字后相同.我试图用遗传算法接近它.任何人都可以给我更多关于这一点的见解吗?
假设你的集合叫做x。我们还假设您将向 x 添加值以使其成为 y。在 R 中,这可以通过
x <- rnorm(4, mean = 5, sd = 2)
x
[1] 5.124843 3.070105 4.444706 6.657949
rand <- rnorm(0, sd(x))/1000 # Divide by 1000 so rand will have minimum
#impact on the mean and variance of x when added
y <- x + rand
y
[1] 5.124799 3.066977 4.444524 6.656452
mean(x); mean(y)
[1] 4.824401
[1] 4.823188
现在,这将显示一些增量更改,但为了最大程度地减少增量更改,您可以通过将其除以大数(如我所做的)或将其乘以小数来缩放rand
。解决此问题的另一种方法是使用 R 中的 jitter
函数。此函数使用以 0 为中心的小均匀分布对数据进行采样和添加噪声。
x <- c(1, -.5, 2, -1.2)
jitter(x)
[1] 1.1117953 -0.5391391 2.0695948 -1.1145638
jitter
的唯一缺点是您无法从功能外部缩放噪音。它将缩放您的整个 x 向量。