Como soy un ingeniero de software que intenta aprender más sobre estadísticas, tendrás que perdonarme antes de que empiece, esto es territorio de novatos...
He estado aprendiendo PyMC y trabajando con algunos ejemplos muy (muy) sencillos. Un problema que no consigo que funcione (y para el que no encuentro ningún ejemplo relacionado) es el ajuste de un modelo a datos generados a partir de dos distribuciones normales.
Digamos que tengo 1000 valores; 500 generados a partir de un Normal(mean=100, stddev=20)
y otros 500 generados a partir de un Normal(mean=200, stddev=20)
.
Si quiero ajustar un modelo a ellos, es decir, determinar las dos medias y la desviación estándar única, utilizando PyMC. Sé que es algo en la línea de ...
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)
es decir, el proceso de generación es Normal, pero mu es uno de los dos valores. Sólo que no sé cómo representar la "decisión" entre si un valor proviene de m1
o m2
.
¿Quizás estoy adoptando un enfoque completamente equivocado para modelar esto? ¿Puede alguien indicarme un ejemplo? Puedo leer BUGS y JAGS así que cualquier cosa está bien realmente.