Biến đổi hộp Cox cho hồi quy


9

Tôi đang cố gắng điều chỉnh mô hình tuyến tính trên một số dữ liệu chỉ bằng một công cụ dự đoán (giả sử (x, y)). Dữ liệu sao cho các giá trị nhỏ của x, các giá trị y phù hợp chặt chẽ với một đường thẳng, tuy nhiên khi giá trị x tăng lên, các giá trị y trở nên biến động hơn. Dưới đây là một ví dụ về dữ liệu đó (mã R)

y = c(3.2,3.4,3.5,3.8,4.2,5.5,4.5,6.8,7.4,5.9)
x = seq(1,10,1)

Tôi tò mò muốn biết liệu có tồn tại bất kỳ biến đổi sức mạnh nào không (Box cox có lẽ?) Cho phép tôi có được sự phù hợp tốt hơn cho dữ liệu hơn là chỉ thực hiện một sự phù hợp tuyến tính như dưới đây.

fit = lm(y ~ x)

Theo tôi hiểu, mục đích của các phép biến đổi như Box Cox không phải để có được sự phù hợp tốt hơn, mà là để đáp ứng các giả định của mô hình. Điều đó có thể có được sự phù hợp tốt hơn, phù hợp tồi tệ hơn hoặc không có nhiều thay đổi, nhưng nó sẽ là một sự phù hợp không vi phạm các giả định.
Peter Flom

một phép biến đổi phi tuyến sẽ tạo ra một mối quan hệ tuyến tính phi tuyến (mặc dù đôi khi bạn cũng có thể chuyển đổi x và sửa nó). Tuy nhiên, phép biến đổi cũng có thể làm thẳng một đường cong và đồng thời làm giảm độ không đồng nhất (mặc dù không phải lúc nào cũng có thể thực hiện cả hai với cùng một phép biến đổi). Đối với dữ liệu đó, một chuyển đổi log giúp phần nào.
Glen_b -Reinstate Monica

4
Sử dụng hai giá trị cực trị và trung bình (thứ năm) của , phương thức được hiển thị tại stats.stackexchange.com/questions/35711/ gợi ý một logarit (phép biến đổi Box-Cox với tham số 0) sẽ phù hợp để tuyến tính hóa mối quan hệ. Sử dụng các giá trị đầu tiên, thứ sáu và cuối cùng cho thấy đối ứng (tham số -1) sẽ tốt. Điều này cho thấy hầu hết mọi tham số từ 0 đến -1 có thể hoạt động. Phạm vi không có gì ngạc nhiên khi có ít dữ liệu. Không có biểu thức lại đơn điệu sẽ ổn định biến thể cho các dữ liệu này. y
whuber

Câu trả lời:


6

Gói MASS đi kèm với R của bạn đã được cài đặt, có boxcox()chức năng mà bạn có thể sử dụng: Sau khi đọc dữ liệu, hãy thực hiện:

library(MASS)
boxcox(y ~ x)

Sau đó nhìn vào biểu đồ mà nó tạo ra, cho thấy đồ họa khoảng tin cậy 95% cho tham số biến đổi boxcox. Nhưng bạn không thực sự có đủ dữ liệu (n = 10) để thực hiện việc này, khoảng tin cậy kết quả sẽ gần như từ -2 đến 2!, Với ước tính khả năng tối đa là khoảng 0 (một biến đổi log, như đã nói trước đó). Nếu dữ liệu thực của bạn có nhiều quan sát hơn, bạn nên thử điều này.

Như những người khác đã nói, sự chuyển đổi này thực sự đang cố gắng ổn định phương sai. Điều này không thực sự rõ ràng từ lý thuyết, những gì nó làm, là cố gắng tối đa hóa một hàm khả năng dựa trên phân phối bình thường, giả định phương sai không đổi. Người ta có thể nghĩ rằng tối đa hóa khả năng dựa trên bình thường sẽ cố gắng bình thường hóa phân phối phần dư, nhưng trên thực tế, đóng góp chính trong việc tối đa hóa khả năng đến từ việc ổn định phương sai. Điều này có lẽ không quá ngạc nhiên, vì khả năng chúng tôi tối đa hóa dựa trên một gia đình phân phối bình thường không đổi!

Tôi đã từng viết một bản demo dựa trên thanh trượt trong XLispStat, điều này đã thể hiện rõ điều này!


3

Khi bạn có mối quan hệ tuyến tính, nhưng phương sai không bằng nhau thì bạn thường cần phải chuyển đổi cả x và y để có được mối quan hệ tuyến tính với phương sai bằng nhau (hoặc chỉ sử dụng hồi quy bình phương nhỏ nhất có trọng số trên các biến không được dịch).

Thủ tục AVAS có thể được sử dụng để đề xuất các phép biến đổi có thể.


yx15x510y

Đồng ý với @whuber
bông cải xanh

1
Tôi đồng ý với @whuber cho bộ dữ liệu cụ thể này, tôi chỉ cho rằng dữ liệu này nhanh chóng được tạo ra để minh họa (và do đó cho thấy sự thiếu ngẫu nhiên / thực tế của con người). Phản ứng của tôi là lời khuyên chung hơn cho trường hợp chung về phương sai không bằng nhau.
Greg Snow

Cho rằng phương sai tăng theo x, một glmkhung có hàm liên kết Poisson có cắt được không?
Roman Luštrik

3
y

1

Chà, trong R bạn có thể thử điều này:

library(MASS)
boxcox(y~x)
plot(1/y^2~x) # since the profile likelihood has a maximum near 2

nhập mô tả hình ảnh ở đây

Nhưng nó thực sự phụ thuộc vào ý của bạn là 'phù hợp hơn với dữ liệu'


-2

tốt nếu tất cả dữ liệu của bạn cho x không âm thì bạn có thể sử dụng phép biến đổi hộp cox ... để ước tính giá trị lý tưởng của tham số lambda của phép chuyển đổi mà bạn có thể sử dụng matlab ... http://www.mathworks.in/ trợ giúp / tài chính / boxcox.html


1
"Lý tưởng" ở đây có nghĩa là một cái gì đó ngoài yêu cầu trong câu hỏi. Câu hỏi tìm cách ổn định phương sai, trong khi giải pháp Matlab tìm cách làm cho chúng càng gần phân phối bình thường càng tốt.
whuber
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.