Da ich ein Softwareentwickler bin, der versucht, mehr Statistiken zu lernen, müssen Sie mir vergeben, bevor ich überhaupt anfange. Dies ist ein ernstes Neuland ...
Ich habe PyMC gelernt und einige wirklich (wirklich) einfache Beispiele durchgearbeitet . Ein Problem, bei dem ich nicht zur Arbeit kommen kann (und für das ich keine verwandten Beispiele finden kann), ist das Anpassen eines Modells an Daten, die aus zwei Normalverteilungen generiert wurden.
Angenommen, ich habe 1000 Werte. 500 generiert von a Normal(mean=100, stddev=20)
und weitere 500 generiert von a Normal(mean=200, stddev=20)
.
Wenn ich ihnen ein Modell anpassen möchte, dh die beiden Mittelwerte und die einzelne Standardabweichung mithilfe von PyMC bestimmen. Ich weiß, es ist etwas in der Art von ...
mean1 = Uniform('mean1', lower=0.0, upper=200.0)
mean2 = Uniform('mean2', lower=0.0, upper=200.0)
precision = Gamma('precision', alpha=0.1, beta=0.1)
data = read_data_from_file_or_whatever()
@deterministic(plot=False)
def mean(m1=mean1, m2=mean2):
# but what goes here?
process = Normal('process', mu=mean, tau=precision, value=data, observed=True)
Das heißt, der Erzeugungsprozess ist Normal, aber mu ist einer von zwei Werten. Ich weiß nur nicht, wie ich die "Entscheidung" zwischen einem Wert von m1
oder darstellen soll m2
.
Vielleicht gehe ich einfach völlig falsch vor, um dies zu modellieren? Kann mich jemand auf ein Beispiel hinweisen? Ich kann BUGS und JAGS lesen, also ist wirklich alles in Ordnung.