Dengesiz veriler için lojistik regresyona ağırlık ekleme


21

Dengesiz verilerle lojistik bir regresyon modellemek istiyorum (9: 1). glmR işlevindeki ağırlıklar seçeneğini denemek istedim , ancak ne yaptığından% 100 emin değilim.

Çıktı değişkenimin olduğunu söyleyelim c(0,0,0,0,0,0,0,0,0,1). şimdi "1" e 10 kat daha fazla ağırlık vermek istiyorum. bu yüzden ağırlık tartışmasını yapıyorum weights=c(1,1,1,1,1,1,1,1,1,1,1,10).

Bunu yaptığımda, maksimum olasılığın hesaplanmasında dikkate alınacaktır. Haklı mıyım "1" in yanlış sınıflandırılması sadece 10 kat daha kötüdür, ardından "0" yazılır.

Yanıtlar:


11

Ching, Verilerinizi 1 ve 0 açısından dengeli hale getirmeniz gerekmez. İhtiyacınız olan tek şey, yakınsama olasılığı için 1 sayısı yeterli. Veri setinizdeki 1'lerin (100.000) dağılımına bakarken, herhangi bir problem yaşamazsınız. Burada basit bir deney yapabilirsiniz

  1. 1'lerin% 10'unu ve 0'ların% 10'unu örnekleyin ve her ikisi için 10'luk bir ağırlık kullanın
  2. 1'lerin% 100'ünü ve 0'ların% 10'unu örnekleyin ve 0'lar için 10'luk bir ağırlık kullanın

Her iki durumda da aynı tahminleri alacaksınız. Yine ağırlıklandırma fikri örnekleme ile ilgilidir. Tüm veri setini kullanıyorsanız, ağırlıklandırmamalısınız. Senin yerinde olsam, 1'ler ve% 10’ların% 10’unu kullanırdım.

R'de kullanırdın glm. İşte bir örnek kod:

glm(y ~ x1 + x2, weights = wt, data =data, family = binomial("logit"))

Veri setinizde wtağırlıklar için bir değişken olmalıdır .

Hem 0 hem de 1'lerin% 10'unu kullanırsanız, wtdeğişkeniniz 10 değerine sahip olacaktır.

0'ların% 10'unu ve 1'lerin% 100'ünü kullanırsanız: wtdeğişken, y = 0 ve 1 ile yapılan gözlemler için 10 değerine sahip olacaktır;


12

Ağırlıklandırma, örneklem ve popülasyondaki farklılıkları telafi etmek için verileri ağırlıklandıran bir prosedürdür (King 2001). Örneğin, nadir durumlarda (kredi riskinde dolandırıcılık, tıbbi literatürde ölümler gibi), tüm 1'leri (nadir olaylar) ve 0'ların (olay dışı) bir kısmını örnekleme eğilimindeyiz. Bu gibi durumlarda gözlemleri buna göre değerlendirmek zorundayız.

Örnek: Diyelim ki, 500.000 işlem popülasyonunda 50 sahtekarlık işlemi var. Bu durumda

  1. 50 sahtekarlık işleminin tamamını (sahtekarlığın% 100'ü) örnekleme
  2. İyi işlemlerin% 10'u (500.000'in% 10'u 50.000 iyi işlemdir)

Bu durumda, dolandırıcılık işlemleri için 1, iyi işlemler için 10 ağırlık atayacaksınız. Buna Ağırlıklı Maksimum Olabilirlik yöntemi denir. Önemli paket servisi, ağırlıklandırmanın örnekleme oranlarıyla ilgili olmasıdır.

Bakınız: Nadir Olay Verilerinde Lojistik Regresyon (King 2001)


merhaba subra !!! Kral yaklaşımı için çok teşekkür ederim! duymadım! benim durumumda 1 milyon işlemim var! (900.000 "0" ve 100.000 "1" dir). öyleyse "0" değerimin% 10'unu örneklemeli miyim? o zaman neredeyse dengeli bir veri setine sahibim. o zaman "0" ı "1" den on kat daha fazla ağırlıklandırmalı mıyım? ve MASS paketindeki R glm () 'deki işlev tam olarak doğru mu? gözlemlerimi ağırlıklandırırsam, ağırlıklı maksimum olasılığı hesaplayabilir miyim? teşekkür ederim! Gerçekten cevabını ve yardım için teşekkür ederiz
ching

Bu konuda gerçekten çok düşünüyorum. ne söylersem: şimdi bir logit model oluşturmak için tüm verilerimi kullan (9: 1 dengesiz verilerle). ve sonra "1" i on defa tartarım, hatta tho bile daha fazla veriye sahip değilim ve verilerimin% 10'u DEĞİLDİR. Tıpkı benim gibi davrandığım gibi… bu yüzden R modeli hesapladığında, benim "1" in yalnızca% 10'unu kullandığımı ve olasılığı hesapladığımı düşünüyor. bu bir anlam ifade ediyor mu?
ching
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.