Es gibt ein Objekt %code% , das genau das tut.
%Vor%Es gibt einen int zwischen 0 und %code% zurück. Um die 3 Normalen zu modellieren, machen Sie %code% ein %code% -Objekt (es akzeptiert ein %code% length-Array als Hyperparameter. Wenn Sie die Werte im Array so einstellen, dass sie gleich sind, setzen Sie die vorherigen Wahrscheinlichkeiten auf gleich). Der Rest des Modells ist nahezu identisch.
Dies ist eine Verallgemeinerung des oben vorgeschlagenen Modells.
Aktualisierung:
Okay, anstatt andere Mittel zu haben, können wir sie alle in 1 zusammenfassen:
%Vor%Es gibt eine Frage zu CrossValidated wie man PyMC verwendet, um zwei Normalverteilungen an Daten anzupassen. Die Antwort von Cam.Davidson.Pilon war, eine Bernoulli-Verteilung zu verwenden, um Daten einer von ihnen zuzuordnen die zwei Normalen:
%Vor%Nun ist meine Frage: Wie geht es mit drei Normalen?
Grundsätzlich besteht das Problem darin, dass Sie keine Bernoulli-Distribution und 1-Bernoulli mehr verwenden können. Aber wie geht es dann?
edit: Mit dem Vorschlag des CDP habe ich den folgenden Code geschrieben:
%Vor%Die Spuren mit dem folgenden Stichprobenverfahren sehen ebenfalls gut aus. Gelöst!
%Vor%