2013-07-01 30 views
5

Tôi muốn thực hiện hồi quy y~x (chỉ 1 biến phụ thuộc và 1 biến độc lập) nhưng tôi có tính không đồng nhất. Biến thiên của y tăng khi x tăng lên. Để giải quyết vấn đề này, tôi muốn sử dụng các ô vuông có trọng số tối thiểu thông qua hàm "gls()" trong R. Nhưng tôi phải thừa nhận rằng tôi không hiểu cách sử dụng nó. Tôi phải áp dụng hàm phương sai cho đối số "trọng số" của hàm gls. Nhưng tôi không chọn cái nào và cách sử dụng nó. Bạn có thể cho tôi một số trợ giúp về điều đó không?Hình vuông tối thiểu trọng số - R

Cảm ơn.

Trả lời

5

Dưới đây là ví dụ về việc chăm sóc số lượng Poisson giống như dữ liệu trong đó biến thể sẽ tỷ lệ thuận với giá trị trung bình (có vẻ như bạn có).

fit = lm (y ~ x, data=dat,weights=(1/dat$x^2)) 

Bạn sử dụng recipricol làm trọng số vì bạn sẽ nhân giá trị. Bạn vuông nó để chăm sóc dữ liệu đếm Poisson vì phương sai có đơn vị bình phương. Bạn có thể làm điều gì đó như:

fit = lm (y ~ x, data=dat,weights=(1/dat$x)) 

Để đơn giản là chia tỷ lệ theo giá trị x và xem cái nào hiệu quả hơn.

+0

Làm cách nào để đánh giá xem nó có hoạt động tốt hơn không. Giá trị được trả về bởi thử nghiệm Bartlett là giống nhau và không có đối số "trọng số". Đây là mã của tôi: a2 = read.table ("total37.txt", tiêu đề = TRUE) m1 = lm (Res ~ ModeF, a2, trọng số = 1/a2 $ ModeF^2) m2 = lm (Res ~ ModeF, a2) bartlett.test (số dư (m1) ~ a2 $ ModeF)) Kiểm tra Bartlett dữ liệu: số dư (m1) và a2 $ ModeF Bartlett's K-squared = 35.2706, df = 11, p- value = 0.0002236 bartlett.test (dư (m2) ~ a2 $ ModeF)) Bartlett kiểm tra dữ liệu: dư (m2) và a2 $ ModeF Bartlett của K-squared = 35,2706, df = 11, p-value = 0,0002236 – user1671537