Я разработал некоторый код для генерации случайных вариаций из продукта LogNormalDistribution и StableDistribution:
LNStableRV[{\[Alpha]_, \[Beta]_, \[Gamma]_, \[Sigma]_, \[Delta]_},
n_] := Module[{LNRV, SDRV, LNSRV},
LNRV = RandomVariate[LogNormalDistribution[Log[\[Gamma]], \[Sigma]],
n];
SDRV = RandomVariate[
StableDistribution[\[Alpha], \[Beta], \[Gamma], \[Sigma]], n];
LNRV * SDRV + \[Delta]
]
(* Note the delta serves as a location parameter *)
Я думаю, что это работает нормально:
LNStableRV[{1.5, 1, 1, 0.5, 1}, 50000];
Histogram[%, Automatic, "ProbabilityDensity",
PlotRange -> {{-4, 6}, All}, ImageSize -> 250]
ListPlot[%%, Joined -> True, PlotRange -> All]
Теперь я хочу создать TransformedDistribution в том же духе, чтобы может использовать PDF[], CDF[] и т. д. в этом пользовательском дистрибутиве и легко выполнять графики и другой анализ.
Экстраполируя пример из Центра документации → TransformedDistribution:
\[ScriptCapitalD] =
TransformedDistribution[
u v, {u \[Distributed] ExponentialDistribution[1/2],
v \[Distributed] ExponentialDistribution[1/3]}];
Я пробовал это:
LogNormalStableDistribution[\[Alpha]_, \[Beta]_, \[Gamma]_, \
\[Sigma]_, \[Delta]_] := Module[{u, v},
TransformedDistribution[
u * v + \[Delta], {u \[Distributed]
LogNormalDistribution[Log[\[Gamma]], \[Sigma]],
v \[Distributed]
StableDistribution[\[Alpha], \[Beta], \[Gamma], \[Sigma]]}]
];
\[ScriptCapitalD] = LogNormalStableDistribution[1.5, 1, 1, 0.5, 1]
Что дает мне это:
TransformedDistribution[
1 + \[FormalX]1 \[FormalX]2, {\[FormalX]1 \[Distributed]
LogNormalDistribution[0, 0.5], \[FormalX]2 \[Distributed]
StableDistribution[1, 1.5, 1, 1, 0.5]}]
Но когда я пытаюсь построить PDF-файл дистрибутива, кажется, что он никогда не заканчивается (при условии, что я не позволял ему работать более минуты или двух):
Plot[PDF[\[ScriptCapitalD], x], {x, -4, 6}] (* This should plot over the same range as the Histogram above *)
Итак, несколько вопросов:
Имеет ли смысл моя функция LogNormalStableDistribution[] делать такие вещи?
Если да, то я:
- Просто нужно, чтобы Plot[] работал дольше?
- Как-то изменить?
- Что я могу сделать, чтобы он работал быстрее?
Если не:
- Нужно ли подходить к этому по-другому?
- Использовать MixtureDistribution?
- Использовать что-то другое?

Read the FAQs3) Когда вы увидите хорошие вопросы и ответы, проголосуйте за нихusing the gray triangles, так как доверие к системе основано на репутации, которую пользователи получают, делясь своими знаниями. Также не забудьте принять ответ, который лучше решает вашу проблему, если таковой имеется,by pressing the checkmark sign- person Dr. belisarius   schedule 03.03.2011