Đây có lẽ là một câu hỏi ngớ ngẩn.Xác định phân phối PyMC tùy chỉnh
Tôi đang cố gắng kết hợp dữ liệu với một tệp PDF rất lạ bằng cách sử dụng đánh giá MCMC trong PyMC. Đối với ví dụ này, tôi chỉ muốn tìm ra cách để phù hợp với phân phối bình thường mà tôi nhập thủ công tệp PDF thông thường. Mã của tôi là:
data = [];
for count in range(1000): data.append(random.gauss(-200,15));
mean = mc.Uniform('mean', lower=min(data), upper=max(data))
std_dev = mc.Uniform('std_dev', lower=0, upper=50)
# @mc.potential
# def density(x = data, mu = mean, sigma = std_dev):
# return (1./(sigma*np.sqrt(2*np.pi))*np.exp(-((x-mu)**2/(2*sigma**2))))
mc.Normal('process', mu=mean, tau=1./std_dev**2, value=data, observed=True)
model = mc.MCMC([mean,std_dev])
model.sample(iter=5000)
print "!"
print(model.stats()['mean']['mean'])
print(model.stats()['std_dev']['mean'])
Ví dụ tôi đã tìm thấy tất cả sử dụng một cái gì đó như mc.Không bình thường hoặc mc.Phụ kiện hoặc không, nhưng tôi muốn phù hợp với chức năng mật độ đã nhận xét.
Mọi trợ giúp sẽ được đánh giá cao.
Tuyệt vời, điều đó rất hữu ích, cảm ơn rất nhiều. – stellographer
@jcrudy. Tôi chạy vào câu trả lời của bạn khi cố gắng xác định đơn giản của riêng tôi trước. Để tránh gây ô nhiễm cho câu hỏi này, tôi bắt đầu của riêng tôi [ở đây] (http://stackoverflow.com/questions/23198247/custom-priors-in-pymc), và tôi đã tự hỏi nếu bạn có thể làm sáng tỏ nó. Cảm ơn. –