Como sou um engenheiro de software tentando aprender mais estatísticas, você terá que me perdoar antes mesmo de começar, esse é um território novo e sério ...
Estou aprendendo PyMC e trabalhando com alguns exemplos realmente (realmente) simples. Um problema para o qual não consigo trabalhar (e não consigo encontrar exemplos relacionados) é ajustar um modelo aos dados gerados a partir de duas distribuições normais.
Digamos que tenho 1000 valores; 500 gerados de um Normal(mean=100, stddev=20)
e outros 500 gerados de um Normal(mean=200, stddev=20)
.
Se eu quiser ajustar um modelo a eles, ou seja, determine as duas médias e o único desvio padrão, usando PyMC. Eu sei que é algo do tipo ...
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)
ou seja, o processo de geração é Normal, mas mu é um dos dois valores. Só não sei como representar a "decisão" entre se um valor vem m1
ou m2
.
Talvez eu esteja apenas adotando completamente a abordagem errada para modelar isso? Alguém pode me indicar um exemplo? Eu posso ler BUGS e JAGS, então tudo está realmente bom.