Các thông số không có xác định linh mục trong Stan


13

Tôi mới bắt đầu học cách sử dụng Stanrstan. Trừ khi tôi luôn bối rối về cách JAGS / BUGS hoạt động, tôi nghĩ bạn luôn phải xác định phân phối trước của một số loại cho mọi tham số trong mô hình được rút ra. Dường như bạn không phải làm điều này trong Stan dựa trên tài liệu của nó. Đây là một mô hình mẫu mà họ đưa ra ở đây .

data {
  int<lower=0> J; // number of schools 
  real y[J]; // estimated treatment effects
  real<lower=0> sigma[J]; // s.e. of effect estimates 
} 
parameters {
  real theta[J]; 
  real mu; 
  real<lower=0> tau; 
} 
model {
  theta ~ normal(mu, tau); 
  y ~ normal(theta, sigma);
} 

Không có linh mục mucũng không tauđược xác định. Khi chuyển đổi một số mô hình JAGS của tôi sang Stan, tôi đã thấy rằng chúng hoạt động nếu tôi để lại nhiều hoặc hầu hết các tham số với các mục sư không xác định.

Vấn đề là tôi không hiểu Stan đang làm gì khi tôi có các tham số mà không có các mục sư xác định. Là nó mặc định cho một cái gì đó giống như một phân phối thống nhất? Đây có phải là một trong những thuộc tính đặc biệt của HMC, mà nó không yêu cầu xác định trước cho mọi tham số không?

Câu trả lời:


18

Từ (phiên bản cũ hơn) của tài liệu tham khảo Stan:

Không chỉ định trước là tương đương với chỉ định trước đồng phục.

Đồng phục trước chỉ phù hợp nếu tham số bị giới hạn [...]

Linh mục không đúng cũng được cho phép trong các chương trình Stan; chúng phát sinh từ các tham số không giới hạn mà không cần báo cáo lấy mẫu. Trong một số trường hợp, một ưu tiên không phù hợp có thể dẫn đến một hậu thế thích hợp, nhưng người dùng phải đảm bảo rằng các ràng buộc đối với (các) tham số hoặc dữ liệu đảm bảo quyền sở hữu của hậu thế.

(Xem thêm phần C.3 trong phiên bản 1.0.1 ).

Lý do cơ bản điều này không ổn ở Stan nhưng không phải trong BUGS có thể phải làm với thực tế là trong BUGS, "chương trình" mô hình của bạn đang chỉ định một mô hình đồ họa chính thức, trong khi ở Stan, bạn đang viết một hàm nhỏ để tính xác suất chung hàm mật độ. Không chỉ định một ưu tiên thích hợp cho tất cả các biến có thể làm hỏng các thuộc tính chính thức tốt đẹp của các mô hình đồ họa.

Tuy nhiên, đối với MC Hamilton, bạn chỉ cần (tính toán) số hàm mật độ khớp. Một căn hộ (thậm chí không đúng) trước đó chỉ đóng góp một thuật ngữ không đổi cho mật độ, và miễn là hậu thế là đúng (tổng khối lượng xác suất hữu hạn), nó sẽ với bất kỳ chức năng khả năng hợp lý nào mà nó có thể bị bỏ qua hoàn toàn trong HMC kế hoạch.


8

Từ tài liệu tham khảo Stan v1.0.2 (pg 6, chú thích 1)

Nếu không có ưu tiên nào được chỉ định trong khối mô hình, các ràng buộc trên theta đảm bảo nó nằm trong khoảng từ 0 đến 1, cung cấp cho theta một đồng phục ngầm trước đó. Đối với các tham số không có hỗ trợ được chỉ định trước và không bị ràng buộc, kết quả là không đúng trước. Stan chấp nhận các linh mục không phù hợp, nhưng hậu thế phải phù hợp để lấy mẫu thành công.

Cả hai musigmacó linh mục đồng phục không phù hợp.

Dưới mui xe, musigmađược đối xử khác nhau. sigmađược định nghĩa với giới hạn dưới; Stan mẫu từ log(sigma)(với một điều chỉnh Jacobian cho việc chuyển đổi). Để biết thêm chi tiết về các phép biến đổi, xem Chương 27 (trg 153).


Để tôi hiểu rõ về điều này, nếu STAN lấy mẫu ở mức log (sigma), thì căn hộ trước vẫn vượt quá sigma và không quá log (sigma)?
Rasmus Bååth

1
Có, đồng phục trước vẫn còn hơn sigma, không log(sigma). Stan thực hiện điều này bằng cách chuyển đổi tham số và áp dụng thay đổi chính xác các điều chỉnh biến bằng cách sử dụng Jacobian.
syclik
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.