Công thức bình phương R được điều chỉnh theo lm trong R là gì và nên diễn giải nó như thế nào?


35

Công thức chính xác được sử dụng trong R lm() cho bình phương R đã điều chỉnh là gì? Làm thế nào tôi có thể giải thích nó?

Công thức r bình phương điều chỉnh

Dường như tồn tại một số công thức để tính bình phương R đã điều chỉnh.

  • Công thức của Wherry:1(1R2)(n1)(nv)
  • Công thức của McNemar:1(1R2)(n1)(nv1)
  • Công thức của Chúa:1-(1-R2)(n+v-1)(n-v-1)
  • Công thức của Stein:1[(n1)(nk1)(n2)(nk2)(n+1)n](1R2)

Mô tả sách giáo khoa

  • Theo sách giáo khoa của Field, Khám phá thống kê sử dụng R (2012, trang 273) R sử dụng phương trình của Wherry, "cho chúng ta biết mức độ chênh lệch trong Y sẽ được tính nếu mô hình được lấy từ dân số mà mẫu được lấy". Anh ta không đưa ra công thức cho Wherry. Ông khuyến nghị sử dụng công thức của Stein (bằng tay) để kiểm tra mức độ hợp lệ của mô hình.
  • Kleiber / Zeileis, Kinh tế lượng ứng dụng với R (2008, trang 59) khẳng định đó là "Bình phương R đã điều chỉnh" và không nói chính xác cách giải thích của nó thay đổi so với nhiều bình phương R.
  • Dalgaard, Số liệu thống kê giới thiệu với R (2008, trang 113) viết rằng "nếu bạn nhân [bình phương R đã điều chỉnh] với 100%, nó có thể được hiểu là '% giảm phương sai'". Ông không nói công thức này tương ứng.

Trước đây tôi đã nghĩ và đọc rộng rãi rằng R bình phương bị phạt vì đã thêm các biến bổ sung vào mô hình. Bây giờ việc sử dụng các công thức khác nhau này dường như kêu gọi các cách hiểu khác nhau. Tôi cũng đã xem xét một câu hỏi liên quan về Stack Overflow ( Sự khác biệt giữa nhiều bình phương R và bình phương R điều chỉnh trong hồi quy bình phương tối thiểu một biến thiên là gì? ), Và từ điển thống kê của trường Wharton tại UPenn .

Câu hỏi

  • Công thức nào được sử dụng để điều chỉnh r-vuông bằng R lm() ?
  • Làm thế nào tôi có thể giải thích nó?

8
từ tóm tắt.lm () : ans$adj.r.squared <- 1 - (1 - ans$r.squared) * ((n - df.int)/rdf), trong đó ans $ r.squared = R ^ 2; n = n, rdf = dư df, df.int = chặn df (0 hoặc 1).
EDi

Tôi sẽ cung cấp một câu trả lời cho vấn đề thực sự ở đây, đó không phải là "loại R ^ 2 ...". Thông tin bạn (và nhiều người khác) thiếu là: tất cả các gói R, thậm chí là lõi, làm cho mã nguồn có sẵn. Ngay cả những thứ được biên dịch trong các bản phân phối cũng có sẵn trong {packagenames} .tar.gz trên CRAN hoặc kho lưu trữ khác.
Carl Witthoft

OP ở đây: Cảm ơn bạn cho đầu vào tuyệt vời này. Làm thế nào về câu hỏi thứ hai của tôi: Làm thế nào tôi có thể giải thích nó? Tôi đã đọc rất nhiều cách hiểu khác nhau về Adj. R bình phương mà đôi khi dường như được dựa trên một công thức có thể không phải là Wherry?

Câu trả lời:


29

1. Công thức nào lmtrong R sử dụng cho r-vuông điều chỉnh?

Như đã đề cập, gõ summary.lmsẽ cung cấp cho bạn mã mà R sử dụng để tính bình phương R đã điều chỉnh. Trích xuất dòng phù hợp nhất bạn nhận được:

ans$adj.r.squared <- 1 - (1 - ans$r.squared) * ((n - df.int)/rdf)

tương ứng trong ký hiệu toán học với:

Radj2=1(1R2)n1np1

df.int=1nprdfn-p-1

npnp1

2. Tại sao có rất nhiều công thức r-vuông điều chỉnh?

Radj2ρ2ρ2

R2Radj2

Radj2

Radj2ρ2ρ2R2

Tài liệu tham khảo

  • R2

9

Về câu hỏi đầu tiên của bạn: Nếu bạn không biết cách tính toán, hãy nhìn vào mã! Nếu bạn gõ summary.lmvào bảng điều khiển, bạn sẽ nhận được mã cho chức năng này. Nếu bạn đọc lướt qua mã, bạn sẽ tìm thấy một dòng : ans$adj.r.squared <- 1 - (1 - ans$r.squared) * ((n - df.int)/rdf). Nếu bạn nhìn vào một số dòng trên của dòng này, bạn sẽ nhận thấy rằng:

  • ans$r.squared: là của bạnR2
  • n là số lượng dư = số lượng quan sát
  • df.int là 0 hoặc 1 (tùy thuộc vào việc bạn có đánh chặn)
  • rdf là df còn lại của bạn

R2R2

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.