2013-04-30 44 views
22

Có nhiều cách thừa, và đôi khi mâu thuẫn nhau, cách xác định công thức trong R. Có một tham chiếu toàn diện chưa chính xác để ánh xạ một mô hình khái niệm đến cú pháp R hơn ?formula không?Có một tham chiếu tốt hơn cho các công thức r hơn là công thức không?

Tôi quan tâm đến một tầm nhìn rộng, bao gồm cú pháp dùng để xác định công thức trong phi tuyến tính và các mô hình thứ bậc như glm, lmer, gam, earth, bao gồm (/) cho làm tổ, randomfixed tác trong các mô hình hỗn hợp , và ste cho splines, và những người khác được tìm thấy trong các gói đóng góp phổ biến.

Trả lời

23

R đi kèm với một số sách hướng dẫn, có thể truy cập từ menu "Trợ giúp" của vanilla R ở trên cùng bên phải khi chạy R và cũng ở một vài nơi trên mạng.

Chương 11 của "An Introduction to R" có một vài trang trên công thức, ví dụ.

Tôi không biết rằng nó cấu thành tài nguyên "toàn diện" nhưng nó bao gồm nhiều * những gì bạn cần biết về cách thức hoạt động của công thức.

* Trên thực tế, khá nhiều tất cả những gì có lẽ 95% lượt người ghé thăm sẽ sử dụng

Các tài liệu tham khảo kinh điển để công thức bằng ngôn ngữ S có thể là

Chambers J.M., và Hastie T.J., eds. (1992), Mô hình thống kê trong S. Chapman & Hall, London.

mặc dù nguồn gốc của cách tiếp cận đến từ

Wilkinson G.N., và Rogers C.E. (1973). "Mô tả mang tính biểu tượng của các mô hình yếu tố để phân tích phương sai". Applied kê, , 392-399

Một số cuốn sách gần đây liên quan đến R thảo luận về công thức nhưng tôi không biết rằng tôi muốn gọi ai trong số họ toàn diện.

Cũng có nhiều tài nguyên trực tuyến (ví dụ: here) thường có rất nhiều thông tin hữu ích.

Điều đó nói rằng, một khi bạn cảm thấy thoải mái khi sử dụng công thức trong R và do đó có một ngữ cảnh có thể đặt nhiều kiến ​​thức hơn, trang trợ giúp chứa một lượng thông tin đáng ngạc nhiên (cùng với các trang khác liên kết đến). Đó là một chút ngắn gọn và khó hiểu, nhưng một khi bạn có kiến ​​thức rộng hơn về cách làm việc cụ thể của R, nó có thể khá hữu ích.

Các câu hỏi cụ thể liên quan đến công thức R (tùy thuộc vào nội dung của chúng) có thể là chủ đề hoặc tại StackOverflow hoặc tại CrossValidated - thực sự có một số câu hỏi khá tiên tiến liên quan đến công thức được tìm thấy (sử dụng các tìm kiếm như [r] formula có hiệu quả), và sẽ có nhiều câu hỏi như vậy để giúp người dùng đấu tranh với những vấn đề này; nếu bạn có câu hỏi cụ thể, tôi khuyến khích bạn hỏi.

Đối với 'dư thừa' và 'xung đột', tôi giả sử bạn có ý nghĩa là thực tế có nhiều cách để chỉ định mô hình không chặn: y ~ . -1y ~ . +0 cả hai hoạt động, ví dụ, nhưng hơi khác bối cảnh mỗi ý nghĩa.Ngoài ra, có lỗi phổ biến của việc phải tách biệt các bậc bậc bậc và bậc cao hơn từ giao diện công thức (sử dụng I(x^2) làm người dự đoán để nó được truyền qua giao diện công thức không bị tổn hại và sống đủ xa để được hiểu là biểu thức đại số). Một lần nữa, một khi bạn nhận được một hình ảnh của những gì đang xảy ra 'đằng sau hậu trường' có vẻ ít phiền toái hơn nhiều.

Ví dụ cụ thể trong những điều tôi vừa nói:

lm(dist ~ . -1, data=cars) # "remove-intercept-term" form of no-intercept 
lm(dist ~ . +0, data=cars) # "make-intercept-zero" form of no-intercept 
lm(dist ~ speed + speed^2, data=cars) # doesn't do what we want here 
lm(dist ~ speed + I(speed^2), data=cars) # gets us a quadratic term 
lm(dist ~ poly(speed,2), data=cars) # avoid potential multicollinearity 

Tôi đồng ý rằng giao diện công thức ít nhất có thể sử dụng một chút hướng dẫn thêm và các ví dụ tốt hơn trong ?formula giúp đỡ.

+0

Cảm ơn bạn rất nhiều vì câu trả lời hữu ích này. Tôi quan tâm đến một tổng quan rộng hơn, quan tâm đến việc bao gồm các đặc điểm kỹ thuật của các biến lồng nhau và hiệu ứng cố định và ngẫu nhiên. Và, không phải là 'x + I (x^2)' và 'poly (x, 2)' tương đương? Câu trả lời của bạn cho thấy khác. Các khía cạnh quan tâm khác bao gồm chỉ định chức năng spline trong các chức năng như 'gam' (ví dụ: với' s' và 'te'). – Abe

+0

Trong tham chiếu đến đoạn thứ hai đến cuối (về lỗi), việc sử dụng 'I' không giới hạn đặc tả của các thuật ngữ đa thức - nó cũng được yêu cầu để xác định biến đổi biến khác (bao gồm cả phụ gia, phép nhân, log, mũ). – Abe

+0

Đó là chính xác cho phụ gia và nhân, bởi vì chúng có ý nghĩa với giao diện công thức. nhưng 'lm (dist ~ log (tốc độ), dữ liệu = ô tô)' hoạt động như mong muốn. –

Các vấn đề liên quan