Random 生成具有所需平均值和标准的经验/用户定义分布

Random 生成具有所需平均值和标准的经验/用户定义分布,random,statistics,simulation,probability-distribution,empirical-distribution,Random,Statistics,Simulation,Probability Distribution,Empirical Distribution,我根据一年的实际需求数据生成了需求分布。该分布为非正态分布或类似于任何理论分布。我使用这种经验需求分布进行模拟研究 In current empirical distribution: mean = 1000 std = 600 Coefficient of variation (CV) = 0.6 我想以当前的经验分布模式/形状为基础,生成四个额外的分布 dist1: Low volume, low variation -> mean:500, std:150, CV:0.3 di

我根据一年的实际需求数据生成了需求分布。该分布为非正态分布或类似于任何理论分布。我使用这种经验需求分布进行模拟研究

In current empirical distribution:
mean = 1000
std = 600
Coefficient of variation (CV) = 0.6
我想以当前的经验分布模式/形状为基础,生成四个额外的分布

dist1: Low volume, low variation   -> mean:500, std:150, CV:0.3
dist2: Low volume, high variation  -> mean:500, std:665, CV:1.33
dist3: High volume, low variation  -> mean:2000, std:600, CV:0.3
dist4: High volume, high variation -> mean:2000, std:2660, CV:1.33

这样做的主要目的是调查需求量和需求变化如何影响模拟系统。创建这样的分布(上面的dist1-4)在统计上是否可行,或者我必须更改为正态分布?

您的问题没有明确说明,但对给定的分布应用适当的线性函数就足够了

由于
E(aX+b)=aE(X)+b
StDev(aX+b)=|a | StDev(X)
,您可以选择
a
b
,以便获得给定的目标参数

假设您有一个函数
f()
,它生成平均值为1000、标准偏差为600的值。以下定义将生成平均值
m
和标准偏差
s
的随机数:

g(m,s) =  (s/600)*f()+m-5*s/3
R中的快速测试:

> f <- function() rnorm(1,1000,600) #mock empirical f()
> g <- function(m,s) (s/600)*f()+m-5*s/3
> x <- replicate(1000,g(2000,300))
> mean(x)
[1] 1988.719
> sd(x)
[1] 300.7044
>fGx平均值(x)
[1] 1988.719
>sd(x)
[1] 300.7044

似乎是一个很好的解决方案。因为我不熟悉R,你能为每一行添加评论吗?或者使用Python或Netlogo作为代码示例?多谢了,R代码只是概念的证明。答案的关键部分是上面的那一行,这应该很容易用Python实现。