2013-01-08 46 views
14

Tôi cần phải tạo một mô hình probit mà không bị chặn. Vì vậy, làm thế nào tôi có thể loại bỏ các đánh chặn từ một mô hình probit trong R?Làm thế nào để loại bỏ đánh chặn trong R

+3

Xem '? formula'. –

+3

Chỉ cần thêm một '-1' vào công thức của bạn như:' glm (y ~ x1 + x2 - 1, gia đình = nhị thức (link = "probit"), dữ liệu = yourdata) 'điều này sẽ ước tính mô hình probit không bị chặn. –

Trả lời

27

Bạn không nói cách bạn đang có ý định để phù hợp với mô hình probit, nhưng nếu nó sử dụng ký hiệu công thức R để mô tả các mô hình sau đó bạn có thể cung cấp một trong hai + 0 hoặc - 1 như là một phần của công thức để ngăn chặn đánh chặn:

mod <- foo(y ~ 0 + x1 + x2, data = bar) 

hoặc

mod <- foo(y ~ x1 + x2 - 1, data = bar) 

(cả hai sử dụng pseudo code R dĩ nhiên - thay thế chức năng xây dựng mô hình và dữ liệu/biến.)

0.123.

Nếu đây là một mô hình phù hợp bởi glm() sau đó một cái gì đó như:

mod <- glm(y ~ x1 + x2 - 1, data = bar, family = binomial(link = "probit")) 

nên làm điều đó (một lần nữa thay vào dữ liệu của bạn và tên biến cho phù hợp.)

+1

Có sự khác biệt nào giữa việc sử dụng + 0 hoặc -1 không? –

+1

@NiekdeKlein Không, không có sự khác biệt nào mà tôi biết –

11

Ngoài ra, nếu bạn có một công thức hiện có đối tượng, foo, bạn có thể xóa chặn bằng update như sau:

foo <- y ~ x1 + x2 
bar <- update(foo, ~ . -1) 
# bar == y ~ x1 + x2 - 1 
Các vấn đề liên quan