R fonksiyonundaki ağırlıklar nasıl kullanılır?


21

Herhangi biri weightsR'nin lmfonksiyonundaki argümanı nasıl kullanacağına dair bazı önerilerde bulunabilir mi? Örneğin, trafik verileri üzerinde bir modele uymaya çalışıyordunuz ve her biri bir şehri (farklı bir popülasyona sahip olan) temsil eden birkaç yüz sıranız vardı. Modelin, her gözlemin göreceli etkisini popülasyon büyüklüğüne göre ayarlamasını istiyorsanız, basitçe belirtebilir weights=[the column containing the city's population]misiniz? Bu içine girebilecek bir tür vektör weightsmü? Yoksa tamamen farklı bir R fonksiyonu / paket / yaklaşım kullanmanız mı gerekiyor?

İnsanların bununla nasıl başa çıktıklarını duymak meraklı - orada gördüğüm hiçbir lineer modelleme öğreticisinin içinde olduğunu görmedi. Teşekkürler!

Yanıtlar:


17

Bence R yardım sayfası lmsorunuzu oldukça iyi cevaplıyor. Ağırlıklar için tek şart, verilen vektörün verilerle aynı uzunlukta olması gerektiğidir. Veri setindeki değişkenin sadece adını bile girebilirsiniz, R gerisini halleder, NA yönetimi vb. İle de kullanabilirsiniz weight. İşte örnek:

x <-c(rnorm(10),NA)
df <- data.frame(y=1+2*x+rnorm(11)/2, x=x, wght1=1:11)

## Fancy weights as numeric vector
summary(lm(y~x,data=df,weights=(df$wght1)^(3/4))) 

# Fancy weights as formula on column of the data set
summary(lm(y~x,data=df,weights=I(wght1^(3/4))))

# Mundane weights as the column of the data set
summary(lm(y~x,data=df,weights=wght1))

Ağırlıkların pozitif olması gerektiğini, aksi takdirde R'nin bir hata üreteceğini unutmayın.


Fakat ağırlıklar birer birer toplamalı mıdır? lmÖzetle farklı ölçekler alırsam vs ölçeklendirilirlerse ...
Palace Chan

Hayır, ağırlıklar toplanmamalıdır. lmÖzette farklı olan nedir ? Katsayılar veya standart hatalar?
mpiktas

Artıklar ve standart hataları farklıdır, ancak katsayılar ve hataları da farklı değildir.
Palace Chan,

3

Önerdiğin şey çalışmalı. Bunun mantıklı gelip gelmediğine bakın:

lm(c(8000, 50000, 116000) ~ c(6, 7, 8))
lm(c(8000, 50000, 116000) ~ c(6, 7, 8), weight = c(123, 123, 246))
lm(c(8000, 50000, 116000, 116000) ~ c(6, 7, 8, 8))

İkinci çizgi, üçüncü çizgiyle aynı kesişimi ve eğimi üretir (birinci çizginin sonucundan farklı olarak), üçüncü gözlemin çoğaltılmasının etkisine benzer şekilde, diğer iki gözlemin her birinin ağırlığının iki katı kadar bir gözlem vererek.


Bunu denedim ama summaryçıktının 2. ve 3. satırlar için farklı olduğunu, özellikle katsayının p-değeri için, 2 ifade aynı veri kümesine atıfta bulunursa bunun olacağını merak ediyorum. Bu konuda stackoverflow.com/questions/10268689/weighted-regression-in-r
lokheart
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.