Lý thuyết đằng sau đối số trọng số trong R khi sử dụng lm ()


11

Sau một năm học ở trường, sự hiểu biết của tôi về "bình phương nhỏ nhất có trọng số" như sau: let , là một số ma trận thiết kế , \ boldsymbol \ beta \ in \ mathbb {R} ^ p là một vectơ tham số, \ boldsymbol \ epsilon \ in \ mathbb {R} ^ n là một vectơ lỗi sao cho \ boldsymbol \ epsilon \ sim \ mathcal {N} (\ mathbf {0}, \ sigma ^ 2 \ mathbf {V}) , trong đó \ mathbf {V} = \ text {diag} (v_1, v_2, \ dot, v_n)\ sigma ^ 2> 0 . Sau đó, mô hình \ mathbf {y} = \ mathbf {X} \ boldsymbol \ beta + \ boldsymbol \ epsilonyRnXn×pβRpϵRnϵN(0,σ2V)V=diag(v1,v2,,vn)σ2>0

y=Xβ+ϵ
theo các giả định được gọi là mô hình "bình phương nhỏ nhất có trọng số". Vấn đề của WLS cuối cùng là tìm
argminβ(yXβ)TV1(yXβ).
Giả sử y=[y1yn]T , β=[β1βp]T
X=[x11x1px21x2pxn1xnp]=[x1Tx2TxnT].
xiTβR1 , vì vậy
yXβ=[y1x1Tβy2x2TβynxnTβ].
Điều này mang lại cho
(yXβ)TV1=[y1x1Tβy2x2TβynxnTβ]diag(v11,v21,,vn1)=[v11(y1x1Tβ)v21(y2x2Tβ)vn1(ynxnTβ)]
v_n ^ {- 1} (y_n- \ mathbf {x} _ {n} ^ {T} \ boldsymbol \ beta) \ end {bmatrix} \ end {align} do đó cho
argminβ(yXβ)TV1(yXβ)=argminβi=1nvi1(yixiTβ)2.
β được ước tính bằng cách sử dụng
β^=(XTV1X)1XTV1y.
Đây là phạm vi kiến ​​thức tôi quen thuộc. Tôi chưa bao giờ được dạy cách chọn v1,v2,,vn , mặc dù có vẻ như, đánh giá ở đây , thường là Var(ϵ)=diag(σ12,σ22,,σn2), mà làm cho ý nghĩa trực quan. (Đưa ra trọng số thay đổi cao ít trọng lượng hơn trong bài toán WLS và đưa ra các quan sát với trọng số ít thay đổi hơn.)

Điều tôi đặc biệt tò mò là cách Rxử lý các trọng số trong lm()hàm khi các trọng số được gán là số nguyên. Từ việc sử dụng ?lm:

Không NULLtrọng số có thể được sử dụng để chỉ ra rằng các quan sát khác nhau có phương sai khác nhau (với các giá trị về trọng số tỷ lệ nghịch với phương sai); hoặc tương đương, khi các yếu tố của trọng số là số nguyên dương , rằng mỗi phản hồi là giá trị trung bình của các quan sát trọng số đơn vị (bao gồm cả trường hợp có các quan sát bằng và dữ liệu đã được tóm tắt).wiyiwiwiyi

Tôi đã đọc lại đoạn này nhiều lần và nó không có ý nghĩa gì với tôi. Sử dụng khung mà tôi đã phát triển ở trên, giả sử tôi có các giá trị mô phỏng sau:

x <- c(0, 1, 2)
y <- c(0.25, 0.75, 0.85)
weights <- c(50, 85, 75)

lm(y~x, weights = weights)

Call:
lm(formula = y ~ x, weights = weights)

Coefficients:
(Intercept)            x  
     0.3495       0.2834  

Sử dụng khung mà tôi đã phát triển ở trên, các tham số này được dẫn xuất như thế nào? Đây là nỗ lực của tôi khi làm điều này bằng tay: giả sử , chúng tôi có và thực hiện điều này trong cung cấp (lưu ý rằng tính không đảo ngược không hoạt động trong trường hợp này, vì vậy tôi đã sử dụng một nghịch đảo tổng quát):V=diag(50,85,75)

[β^0β^1]=([111111]diag(1/50,1/85,1/75)[111111]T)1[111111]Tdiag(1/50,1/85,1/75)[0.250.750.85]
R
X <- matrix(rep(1, times = 6), byrow = T, nrow = 3, ncol = 2)
V_inv <- diag(c(1/50, 1/85, 1/75))
y <- c(0.25, 0.75, 0.85)

library(MASS)
ginv(t(X) %*% V_inv %*% X) %*% t(X) %*% V_inv %*% y

         [,1]
[1,] 0.278913
[2,] 0.278913

Chúng không khớp với các giá trị từ lm()đầu ra. Tôi đang làm gì sai?

Câu trả lời:


3

Ma trận phải là không phải Ngoài ra, bạn nên , không .X

[101112],
[111111].
V_invdiag(weights)diag(1/weights)
x <- c(0, 1, 2)
y <- c(0.25, 0.75, 0.85)
weights <- c(50, 85, 75)
X <- cbind(1, x)

> solve(t(X) %*% diag(weights) %*% X, t(X) %*% diag(weights) %*% y)
       [,1]
  0.3495122
x 0.2834146

Cảm ơn bạn đã xóa ma trận thiết kế không chính xác, đặc biệt! Tôi khá gỉ về vật liệu này. Vì vậy, như một câu hỏi cuối cùng, điều này có nghĩa là trong các giả định của WLS? Var(ϵ)=diag(1/weights)
Clarinetist

Có, mặc dù các trọng số chỉ phải tỷ lệ với 1 / phương sai, không nhất thiết phải bằng nhau. Ví dụ, nếu bạn sử dụng weights <- c(50, 85, 75)/2trong ví dụ của mình, bạn sẽ nhận được kết quả tương tự.
đánh dấu999

2

Để trả lời chính xác hơn, hồi quy bình phương nhỏ nhất có trọng số sử dụng weightstrong Rđưa ra các giả định sau: giả sử chúng ta có weights = c(w_1, w_2, ..., w_n). Đặt , là ma trận thiết kế , là một vectơ tham số và là một vectơ lỗi với mean và ma trận phương sai , trong đó . Sau đó, theo các bước tương tự của đạo hàm trong bài viết gốc, chúng tôi có yRnXn×pβRpϵRn0σ2Vσ2>0

V=diag(1/w1,1/w2,,1/wn).
argminβ(yXβ)TV1(yXβ)=argminβi=1n(1/wi)1(yixiTβ)2=argminβi=1nwi(yixiTβ)2
và được ước tính bằng cách sử dụng từ GLS các giả định .β
β^=(XTV1X)1XTV1y
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.