Étant donné que je suis un ingénieur logiciel essayant d'apprendre plus de statistiques, vous devrez me pardonner avant même de commencer, c'est un nouveau territoire sérieux ...
J'ai appris PyMC et travaillé à travers des exemples vraiment (vraiment) simples. Un problème pour lequel je ne peux pas travailler (et je ne trouve aucun exemple connexe) est l'ajustement d'un modèle aux données générées à partir de deux distributions normales.
Disons que j'ai 1000 valeurs; 500 générés à partir d'un Normal(mean=100, stddev=20)
et 500 autres générés à partir d'un Normal(mean=200, stddev=20)
.
Si je veux leur adapter un modèle, c'est-à-dire déterminer les deux moyennes et l'écart-type unique, en utilisant PyMC. Je sais que c'est quelque chose comme ...
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)
c'est-à-dire que le processus de génération est Normal, mais mu est l'une des deux valeurs. Je ne sais tout simplement pas comment représenter la "décision" entre le fait qu'une valeur provienne de m1
ou m2
.
Peut-être que je prends complètement la mauvaise approche pour modéliser cela? Quelqu'un peut-il me donner un exemple? Je peux lire les BUGS et JAGS donc tout va bien vraiment.