我有一组4个值。我想生成一个随机数,它将添加到每个集合中。但是在添加之后,均值和方差的值不应该改变。 添加前的集合的含义均值和方差应与添加数字后的含义相同。我试图用遗传算法接近它。任何人都可以给我更多的见解吗?
答案 0 :(得分:0)
我们假设您的集合名为 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 向量。