Генерация эмпирического / определенного пользователем распределения с желаемым средним и стандартным значением

Я сгенерировал распределение спроса на основе фактических данных о спросе за один год. Это распределение ненормально или похоже на любые теоретические распределения. Я использую это эмпирическое распределение спроса для имитационного исследования.

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 выше), или я должен перейти на нормальное распределение?

1 ответ

Ваша проблема недостаточно конкретизирована, но может быть достаточно применить соответствующую линейную функцию к вашему распределению.

поскольку 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
Другие вопросы по тегам