Cuốn sách của John Fox Một người bạn đồng hành R với hồi quy ứng dụng là một nguồn tài nguyên tuyệt vời về mô hình hồi quy ứng dụng với R
. Gói car
mà tôi sử dụng xuyên suốt trong câu trả lời này là gói đi kèm. Cuốn sách cũng có trang web với các chương bổ sung.
Chuyển đổi phản hồi (còn gọi là biến phụ thuộc, kết quả)
Các phép biến đổi Box-Cox cung cấp một cách có thể để chọn một phép biến đổi của đáp ứng. Sau khi điều chỉnh mô hình hồi quy có chứa các biến chưa được dịch với R
hàm lm
, bạn có thể sử dụng hàm boxCox
từ car
gói để ước tính (tức là tham số công suất) theo khả năng tối đa. Vì biến phụ thuộc của bạn không hoàn toàn tích cực, các phép biến đổi Box-Cox sẽ không hoạt động và bạn phải chỉ định tùy chọn sử dụng các phép biến đổi Yeo-Johnson (xem bài báo gốc ở đây và bài đăng liên quan này ):λfamily="yjPower"
boxCox(my.regression.model, family="yjPower", plotit = TRUE)
Điều này tạo ra một cốt truyện như sau:
Ước tính tốt nhất của là giá trị tối đa hóa khả năng hồ sơ mà trong ví dụ này là khoảng 0,2. Thông thường, ước tính của được làm tròn thành một giá trị quen thuộc vẫn nằm trong khoảng tin cậy 95%, chẳng hạn như -1, -1/2, 0, 1/3, 1/2, 1 hoặc 2.λλλ
Để chuyển đổi biến phụ thuộc của bạn bây giờ, hãy sử dụng hàm yjPower
từ car
gói:
depvar.transformed <- yjPower(my.dependent.variable, lambda)
Trong hàm, lambda
phải là tròn mà bạn đã tìm thấy trước khi sử dụng . Sau đó phù hợp với hồi quy một lần nữa với biến phụ thuộc được chuyển đổi.λboxCox
Quan trọng: Thay vì chỉ chuyển đổi log biến phụ thuộc, bạn nên xem xét để phù hợp với GLM với liên kết nhật ký. Dưới đây là một số tài liệu tham khảo cung cấp thêm thông tin: thứ nhất , thứ hai , thứ ba . Để làm điều này trong R
, sử dụng glm
:
glm.mod <- glm(y~x1+x2, family=gaussian(link="log"))
y
biến phụ thuộc của bạn ở đâu và x1
, x2
vv là các biến độc lập của bạn.
Biến đổi của các yếu tố dự đoán
Các biến đổi của các yếu tố dự đoán tích cực nghiêm ngặt có thể được ước tính bằng khả năng tối đa sau khi biến đổi biến phụ thuộc. Để làm như vậy, sử dụng chức năng boxTidwell
từ car
gói (đối với giấy gốc xem tại đây ). Sử dụng nó như thế : boxTidwell(y~x1+x2, other.x=~x3+x4)
. Điều quan trọng ở đây là tùy chọn other.x
chỉ ra các điều khoản của hồi quy không được chuyển đổi. Đây sẽ là tất cả các biến phân loại của bạn. Hàm tạo ra một đầu ra có dạng sau:
boxTidwell(prestige ~ income + education, other.x=~ type + poly(women, 2), data=Prestige)
Score Statistic p-value MLE of lambda
income -4.482406 0.0000074 -0.3476283
education 0.216991 0.8282154 1.2538274
income
λincome
incomenew=1/incomeold−−−−−−−−√
Một bài viết rất thú vị trên trang web về sự biến đổi của các biến độc lập là bài này .
Nhược điểm của biến đổi
1/y√λλ
Mô hình hóa các mối quan hệ phi tuyến
Hai phương pháp khá linh hoạt để phù hợp với các mối quan hệ phi tuyến là đa thức phân số và spline . Ba bài báo này cung cấp một giới thiệu rất tốt cho cả hai phương pháp: Thứ nhất , thứ hai và thứ ba . Ngoài ra còn có một cuốn sách về đa thức phân số và R
. Các R
góimfp
dụng cụ đa biến đa thức phân đoạn. Bài trình bày này có thể là thông tin liên quan đến đa thức phân số. Để phù hợp với splines, bạn có thể sử dụng hàm gam
(mô hình phụ gia tổng quát, xem ở đây để có phần giới thiệu tuyệt vời với R
) từ góimgcv
hoặc các hàmns
(splines khối tự nhiên) và bs
( spline khối B) từ gói splines
(xem ở đây để biết ví dụ về việc sử dụng các chức năng này). Sử dụng gam
bạn có thể chỉ định dự đoán nào bạn muốn phù hợp bằng cách sử dụng s()
hàm splines bằng hàm:
my.gam <- gam(y~s(x1) + x2, family=gaussian())
ở đây, x1
sẽ được trang bị bằng cách sử dụng một spline và x2
tuyến tính như trong hồi quy tuyến tính bình thường. Bên trong gam
bạn có thể chỉ định họ phân phối và chức năng liên kết như trong glm
. Vì vậy, để phù hợp với một mô hình với một hàm log-liên kết, bạn có thể chỉ định các tùy chọn family=gaussian(link="log")
trong gam
như trong glm
.
Có một cái nhìn vào bài viết này từ trang web.