Після року в середній школі моє розуміння "найменш зважених квадратів" таке: нехай y∈Rn , 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 1 … y n ] T β = [ β 1 … β p ] T X = [ x 11 ⋯ x 1 p ⋯ x n p ] = [ x T 1 x Targminβ(y−Xβ)TV−1(y−Xβ).
y=[y1…yn]Tβ=[β1…βp]Tx T i β∈ R 1X = ⎡⎣⎢⎢⎢⎢⎢х11х21⋮хn 1⋯⋯⋮⋯х1 сх2 с⋮хп р⎤⎦⎥⎥⎥⎥⎥= ⎡⎣⎢⎢⎢⎢⎢хТ1хТ2⋮хТн⎤⎦⎥⎥⎥⎥⎥.
хТiβ ∈ R1 , так
y - X β= ⎡⎣⎢⎢⎢⎢⎢у1- хТ1βу2- хТ2β⋮ун- хТнβ⎤⎦⎥⎥⎥⎥⎥.
Це дає
( у - X β )ТV- 1= [ у1- хТ1βу2- хТ2β⋯ун- хТнβ] діагностувати( v- 11, v- 12, … , V- 1н)= [ v- 11(у1- хТ1β )v- 12( у2- хТ2β )⋯v- 1н( ун- хТнβ )]
v_n ^ {- 1} (y_n- \ mathbf {x} _ {n} ^ {T} \ boldsymbol \ beta) \ end {bmatrix} \ end {align}
таким чином
аргхвβ( у - X β )ТV- 1( у - X β ) = аргхвβ∑i = 1нv- 1i( уi- хТiβ )2.
β оцінюється за допомогою
β^= ( XТV- 1X )- 1ХТV- 1у .
Це ступінь знань, з якими я знайомий. Мене ніколи не вчили, як слід вибирати
v1, v2, … , Vн , хоча, мабуть, судячи з
того , що зазвичай
Var ( ϵ ) = diag ( σ)21, σ22, … , Σ2н), що має інтуїтивний сенс. (Надайте ваги в значній мірі меншій вазі в задачі WLS і дайте спостереження з меншою варіабельністю більше ваги.)
Мені особливо цікаво те, як R
обробляє ваги у lm()
функції, коли ваги призначаються цілими числами. З використання ?lm
:
Невагомі NULL
можна використовувати для вказівки на те, що різні спостереження мають різні відхилення (при цьому значення ваг обернено пропорційні відхиленням); або рівнозначно, коли елементи ваги є цілими натуральними числами , що кожна відповідь - це середнє значення одиничних вагових спостережень (включаючи випадок, що є
спостереження дорівнює і дані були узагальнені).шiуiшiшiуi
Я перечитав цей параграф кілька разів, і це не має для мене сенсу. Припустимо, використовуючи рамку, яку я розробив вище, маю такі імітовані значення:
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 =діагноз(50,85,75)
[ β^0β^1] =⎛⎝⎜⎜⎡⎣⎢111111⎤⎦⎥Diag ( 1 / 50 , 1 / 85 , 1 / 75 ) ⎡⎣⎢111111⎤⎦⎥Т⎞⎠⎟⎟- 1⎡⎣⎢111111⎤⎦⎥ТDiag ( 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()
виході. Що я роблю неправильно?