Como soy un ingeniero de software que intenta obtener más estadísticas, tendrás que perdonarme incluso antes de que comience, este es un nuevo territorio serio ...
He estado aprendiendo PyMC y trabajando con algunos ejemplos muy (muy) simples. Un problema con el que no puedo trabajar (y no puedo encontrar ningún ejemplo relacionado) es ajustar un modelo a los datos generados a partir de dos distribuciones normales.
Digamos que tengo 1000 valores; 500 generados a partir de a Normal(mean=100, stddev=20)
y otros 500 generados a partir de a 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, usando PyMC. Sé que es algo parecido a ...
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. Simplemente no sé cómo representar la "decisión" entre si un valor proviene m1
o no m2
.
¿Quizás solo estoy tomando el enfoque equivocado para modelar esto? ¿Alguien puede señalarme un ejemplo? Puedo leer BUGS y JAGS para que todo esté bien realmente.