Я использовал Matlab, но я также приветствую Python в качестве решения.
У меня есть предсказанная CDF (т.е. CDF ^) случайной переменной Var
, и я хотел бы сгенерировать N сценариев, используя эту предсказанную CDF (CDF ^). Вот что я сделал. Я хотел бы знать, имеет ли этот метод смысл, а также как я могу автоматически сгенерировать N сценариев на шаге 3.
1) Я подобрал предполагаемую кумулятивную функцию распределения (скажем, Вейбулла), используя MLE на CDF ^, и получил соответствующие параметры подобранной функции.
2) Используя эти параметры, я построил PDF предполагаемого распределения.
3) На этом этапе я не уверен, что и как делать! В основном, я думаю, я должен дискретизировать var
и найти соответствующую вероятность каждого сегмента, вычислив площадь каждого прямоугольника.
4) Как я могу построить свои исходные данные (var) в форме PMF, поскольку они уже находятся в форме CDF ?!
var= [ 0.001 0.01 97 145 150 189 202 183 248 305 492 607 1013];
cdf_prob = [0.01, 0.05, 0.15, 0.25, 0.35, 0.45, 0.50, 0.55, 0.65, 0.75, 0.85, 0.95, 0.99];
% cumulative prob.
a= mle(var, 'distribution', 'wbl');
plot(var, cdf_prob, 'o-') % my data
hold on
xgrid = linspace (0, 1.1*max(var));
plot (xgrid, wblcdf(xgrid,a(1),a(2))); % fitted cdf
figure(2) % fitted PDF
pd= makedist('wbl', 'a', a(1),'b', a(2));
y=pdf(pd, xgrid);
plot(xgrid,y)
Шаг 3:
random()
? Я думаю, что есть множество связанных сообщений, посвященных этому (1, 2, 3). - person SecretAgentMan   schedule 29.01.2020