나는 시작하기 전에 더 많은 통계를 배우려고 노력하는 소프트웨어 엔지니어이기 때문에, 이것은 새로운 영역입니다.
PyMC를 배우고 실제로 (실제로) 간단한 예제를 통해 작업했습니다. 내가 일할 수없는 한 가지 문제 (및 관련 예제를 찾을 수 없음)는 두 정규 분포에서 생성 된 데이터에 모델을 피팅하는 것입니다.
1000 개의 값이 있다고 가정합니다. a에서 생성 된 500 Normal(mean=100, stddev=20)
과 a에서 생성 된 다른 500 Normal(mean=200, stddev=20)
.
모델을 적합하게하려면 PyMC를 사용하여 두 평균과 단일 표준 편차를 결정하십시오. 나는 그것이 라인을 따라 무언가라는 것을 알고있다 ...
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)
즉, 생성 프로세스는 정상이지만 mu는 두 값 중 하나입니다. 나는 값이에서 오는지 m1
또는 에서 오는지 "결정"을 나타내는 방법을 모른다 m2
.
아마도 나는 이것을 모델링하는 데 완전히 잘못된 접근법을 취하고 있습니까? 누구든지 예를들 수 있습니까? 버그와 JAGS를 읽을 수 있으므로 실제로는 아무 문제가 없습니다.