Теорія, що стоїть за аргументом ваг у R при використанні lm ()


12

Після року в середній школі моє розуміння "найменш зважених квадратів" таке: нехай yRn , X - якась матриця дизайну n×p , - параметр вектор, бути вектор помилки таким, що , де і . Тоді модель βRpϵRnϵN(0,σ2V)V=diag(v1,v2,,vn)σ2>0

y=Xβ+ϵ
під припущеннями називається модель "найменш зважених квадратів". Проблема WLS виявляється в пошуку Припустимо, \ mathbf {y} = \ початок {bmatrix } y_1 & \ крапки & y_n \ end {bmatrix} ^ {T} , \ boldsymbol \ beta = \ begin {bmatrix} \ beta_1 & \ dots & \ beta_p \ end {bmatrix} ^ {T} , і \ mathbf {X } = \ початок {bmatrix} x_ {11} & \ cdots & x_ {1p} \\ x_ {21} & \ cdots & x_ {2p} \\ \ vdots & \ vdots & \ vdots \\ x_ {n1} & \ cdots & x_ {np} \ end {bmatrix} = \ початок {bmatrix} \ mathbf {x} _ {1} ^ {T} \\ \ mathbf {x} _ {2} ^ {T} \\ \ vdots \\ \ mathbf {x} _ {n} ^ {T} \ end {bmatrix} \ text {.y = [ y 1y n ] T β = [ β 1β p ] T X = [ x 11x 1 px n p ] = [ x T 1 x T
argminβ(yXβ)TV1(yXβ).
y=[y1yn]Tβ=[β1βp]Tx T i β R 1
X=[x11x1px21x2pxn1xnp]=[x1Tx2TxnT].
xiTβR1 , так
yXβ=[y1x1Tβy2x2TβynxnTβ].
Це дає
(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} таким чином
argminβ(yXβ)TV1(yXβ)=argminβi=1nvi1(yixiTβ)2.
β оцінюється за допомогою
β^=(XTV1X)1XTV1y.
Це ступінь знань, з якими я знайомий. Мене ніколи не вчили, як слід вибирати v1,v2,,vn , хоча, мабуть, судячи з того , що зазвичай Var(ϵ)=diag(σ12,σ22,,σn2), що має інтуїтивний сенс. (Надайте ваги в значній мірі меншій вазі в задачі WLS і дайте спостереження з меншою варіабельністю більше ваги.)

Мені особливо цікаво те, як Rобробляє ваги у lm()функції, коли ваги призначаються цілими числами. З використання ?lm:

Невагомі NULLможна використовувати для вказівки на те, що різні спостереження мають різні відхилення (при цьому значення ваг обернено пропорційні відхиленням); або рівнозначно, коли елементи ваги є цілими натуральними числами , що кожна відповідь - це середнє значення одиничних вагових спостережень (включаючи випадок, що є спостереження дорівнює і дані були узагальнені).wiyiwiwiyi

Я перечитав цей параграф кілька разів, і це не має для мене сенсу. Припустимо, використовуючи рамку, яку я розробив вище, маю такі імітовані значення:

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  

Використовуючи рамку, яку я розробив вище, як виводяться ці параметри? Ось моя спроба зробити це вручну: припускаючи, що , у нас є і це робити в дає (зауважте, що в цьому випадку неперетворюваність не працює, тому я використав узагальнену інверсію):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

Вони не відповідають значенням на lm()виході. Що я роблю неправильно?

Відповіді:


4

Матриця повинна бути не Крім того, ваше має бути , ні .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

Дякуємо, що очистили неправильну матрицю дизайну, особливо! Я досить іржавий на цьому матеріалі. Отже, як останнє запитання, чи означає це, що у припущеннях WLS? Var(ϵ)=diag(1/weights)
Кларнетист

Так, хоча ваги повинні бути лише пропорційними 1 / дисперсії, не обов'язково рівними. Наприклад, якщо ви використовуєте weights <- c(50, 85, 75)/2у своєму прикладі, ви отримуєте такий же результат.
mark999

3

Щоб відповісти на це більш стисло, регресія найменш зважених квадратів, що використовується weightsв, Rробить такі припущення: припустимо, у нас є weights = c(w_1, w_2, ..., w_n). Нехай , буде дизайн матриця, є вектор параметрів, а - вектор помилки із середнім та дисперсійною матрицею , де . Тоді Виконуючи ті самі кроки виведення у вихідному дописі, ми маємо yRnXn×pβRpϵRn0σ2Vσ2>0

V=diag(1/w1,1/w2,,1/wn).
& beta ; & beta ; =(ХТV-1X)-1XTV-1г
argminβ(yXβ)TV1(yXβ)=argminβi=1n(1/wi)1(yixiTβ)2=argminβi=1nwi(yixiTβ)2
і оцінюється за допомогою з GLS припущення .β
β^=(XTV1X)1XTV1y
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.