Lm () kullanırken R'deki ağırlık argümanının ardındaki teori


12

Let: üniversitedeyken bir yıl sonra, "ağırlıklı en küçük kareler" benim anlayış aşağıdaki olan , bazı olmak tasarım matrisi, \ boldsymbol \ beta \ in \ mathbb {R} ^ p bir parametre vektörü, \ boldsymbol \ epsilon \ in \ mathbb {R} ^ n bir hata vektörü olacak, öyle ki \ boldsymbol \ epsilon \ sim \ mathcal {N} (\ mathbf {0}, \ sigma ^ 2 \ mathbf {V}) ; burada \ mathbf {V} = \ text {diag} (v_1, v_2, \ dots, v_n) ve \ sigma ^ 2> 0 . Sonra \ mathbf {y} = \ mathbf {X} \ boldsymbol \ beta + \ boldsymbol \ epsilon modeli X n × pyRnXn×pβRp ϵ N ( 0 , σ 2 V ) V = diag ( v 1 , v 2 , , v n ) σ 2 > 0 y = X β + εϵRnϵN(0,σ2V)V=diag(v1,v2,,vn)σ2>0

y=Xβ+ϵ
varsayımlar altında "ağırlıklı en küçük kareler" modeli denir. WLS sorunu
argminβ(yXβ)TV1(yXβ).
Varsayalım y=[y1yn]T , β=[β1βp]T ve
X=[x11x1px21x2pxn1xnp]=[x1Tx2TxnT].
xiTβR1 , bu yüzden
yXβ=[y1x1Tβy2x2TβynxnTβ].
Bu,
(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} böyleceβ
argminβ(yXβ)TV1(yXβ)=argminβi=1nvi1(yixiTβ)2.
β ,
β^=(XTV1X)1XTV1y.
Bu, aşina olduğum bilginin kapsamıdır. Ben nasıl öğretilir asla v1,v2,,vn o bakılırsa, o görünse de, seçilmelidir burada , genellikle bu Var(ϵ)=diag(σ12,σ22,,σn2)sezgisel mantıklı. (WLS probleminde oldukça değişken ağırlıklar daha az ağırlık verin ve daha az değişkenlik içeren gözlemler daha fazla ağırlık verin.)

Özellikle merak ettiğim şey, Rağırlıklar lm()tamsayı olarak atandığında işlevdeki ağırlıkların nasıl işleneceğidir. Kullanarak ?lm:

Ağırlıksızlıklar NULL, farklı gözlemlerin farklı varyanslara sahip olduğunu belirtmek için kullanılabilir (ağırlıklardaki değerler varyanslarla ters orantılıdır); veya eşdeğer olarak, ağırlıkların elemanları pozitif tamsayıları , her bir cevabı , birim ağırlığı gözlemlerinin ortalamasıdır ( eşit gözlemlerinin ve verilerin özetlenmesi).y i w i w i y iwiyiwiwiyi

Bu paragrafı birkaç kez okudum ve bu benim için bir anlam ifade etmiyor. Yukarıda geliştirdiğim çerçeveyi kullanarak, aşağıdaki simüle edilmiş değerlere sahip olduğumu varsayalım:

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  

Yukarıda geliştirdiğim çerçeveyi kullanarak, bu parametreler nasıl türetilir? Bunu el ile yapma girişimim: varsayarsak , ve bunu yaparak verir ( bu durumda çalışmadığını unutmayın, bu yüzden genelleştirilmiş bir ters kullandım):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

Bunlar lm()çıktıdaki değerlerle eşleşmiyor . Neyi yanlış yapıyorum?

Yanıtlar:


4

Matris olmalıdır değil Ayrıca, olmalı , değil .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

Özellikle yanlış tasarım matrisini temizlediğiniz için teşekkür ederiz! Bu malzeme için oldukça paslıyım. Son soru olarak, bu WLS varsayımlarında mı geliyor? Var(ϵ)=diag(1/weights)
Klarnetçi

Evet, ağırlıklar sadece 1 / varyansla orantılı olmakla birlikte, mutlaka eşit değildir. Örneğin, örneğinizde kullanırsanız weights <- c(50, 85, 75)/2, aynı sonucu alırsınız.
mark999

3

Daha kısaca bu yanıtlamak için kullanılarak ağırlıklı en küçük kareler regresyon weightsiçinde Rmarkaların aşağıdaki varsayımlar: Elimizdeki varsayalım weights = c(w_1, w_2, ..., w_n). Let , olması bir tasarım matrisi, bir parametre vektörü ve ortalama ve varyans matrisi ile bir hata vektörü olmalı , burada . Ardından, Orijinal yayındaki türetmenin aynı adımlarını , yRnXn×pβRpϵRn0σ2Vσ2>0

V=diag(1/w1,1/w2,,1/wn).
β β =(X-TV-1x)-1xTV-1y
argminβ(yXβ)TV1(yXβ)=argminβi=1n(1/wi)1(yixiTβ)2=argminβi=1nwi(yixiTβ)2
ve , gelen GLS varsayımlar .β
β^=(XTV1X)1XTV1y
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.