İkili bir sonucun kategorik belirleyicileri kümesinin tahmin gücü nasıl değerlendirilir? Olasılıkları mı yoksa lojistik regresyonu mu hesaplıyorsunuz?


10

Basit olasılıkların sorunum için işe yarayıp yaramayacağını ya da lojistik regresyon gibi daha sofistike yöntemleri kullanmanın (ve öğrenmenin) daha iyi olup olmayacağını belirlemeye çalışıyorum.

Bu problemdeki yanıt değişkeni bir ikili yanıttır (0, 1). Tüm kategorik ve sırasız birçok öngörücü değişkenim var. Hangi belirteç değişkenlerinin kombinasyonlarının 1'lerin en yüksek oranını verdiğini belirlemeye çalışıyorum. Lojistik regresyona ihtiyacım var mı? Kategorik öngörücülerin her bir kombinasyonu için sadece örnek setimdeki oranları hesaplamak nasıl bir avantaj sağlar?


1'den fazla öngörücünüz varsa, bunu bir tür regresyon modeli olmadan yapmak zor olabilir. Aklında ne var? Sadece büyük bir -boyutlu bitişiklik tablosu ( k yordayıcı sayısıdır)? kk
Makro

Tahmin kategorileri birden fazla faktöre gruplandırılmış mı ve eğer öyleyse bunlar çapraz mı iç içe mi? Ayrıca, yalnızca açıklayıcı bir açıklama yapmakla ilgileniyor musunuz? Verileriniz karmaşıksa, bir LR modeli daha uygun olabilir ve çıkarım yapmak istiyorsanız LR'nin çok tercih edilir olduğunu düşünüyorum.
gung - Monica'yı eski durumuna döndürün

@Macro - Evet, büyük bir tablo olacağını düşünüyordum, bir sütun senaryoya karşılık gelen örnek noktaları ve 1'lerin oranını gösteren başka bir sütun. Her biri 10-30 olası değere sahip beş kategorik tahmin edicim var, bu yüzden senaryo listesinin yüksek olacağını biliyorum. Her biri geçer ve önemli sonuçlar (senaryo 1 örnek artı büyük # büyük oranı) çıktı R bir döngü script düşünüyordum.
Rachel

@gung - Faktörler sadece kısmen kesişir. Faktörlerin hiçbiri iç içe sayılmaz. Yanıt değişkeninin 1'e eşit olma olasılığı yüksek olan faktör kombinasyonlarını (örneğin Devlet, Müşteri, Çalışan) bulmak istiyorum.
Rachel

1
@EmreA - Ne yazık ki kategorik değişkenler tamamen bağımsız değildir. Bazı kombinasyonlar diğerlerinden daha muhtemel ...
Rachel

Yanıtlar:


11

Lojistik regresyon, sayısal belirsizliğe kadar, tablolanmış yüzdelerle tam olarak aynı uyumu sağlayacaktır. Bu nedenle, bağımsız değişkenleriniz faktör nesneleri factor1vb. İse ve bağımlı sonuçlar (0 ve 1) ise x, efektleri aşağıdaki gibi bir ifadeyle elde edebilirsiniz.

aggregate(x, list(factor1, <etc>), FUN=mean)

Bunu şununla karşılaştır:

glm(x ~ factor1 * <etc>, family=binomial(link="logit"))

Örnek olarak, bazı rastgele veriler üretelim:

set.seed(17)
n <- 1000
x <- sample(c(0,1), n, replace=TRUE)
factor1 <- as.factor(floor(2*runif(n)))
factor2 <- as.factor(floor(3*runif(n)))
factor3 <- as.factor(floor(4*runif(n)))

Özet ile elde edilir

aggregate.results <- aggregate(x, list(factor1, factor2, factor3), FUN=mean)
aggregate.results

Çıktısı şunları içerir:

   Group.1 Group.2 Group.3         x
1        0       0       0 0.5128205
2        1       0       0 0.4210526
3        0       1       0 0.5454545
4        1       1       0 0.6071429
5        0       2       0 0.4736842
6        1       2       0 0.5000000
...
24       1       2       3 0.5227273

İleride referans olması için, çıktının 6. satırındaki düzeylerdeki (1,2,0) faktörler için tahmin 0,5'tir.

Lojistik regresyon katsayılarını şu şekilde bırakır:

model <- glm(x ~ factor1 * factor2 * factor3, family=binomial(link="logit"))
b <- model$coefficients

Bunları kullanmak için lojistik fonksiyona ihtiyacımız var:

logistic <- function(x) 1 / (1 + exp(-x))

Örneğin, (1,2,0) seviyelerdeki faktörler için tahmin elde etmek

logistic (b["(Intercept)"] + b["factor11"] + b["factor22"] + b["factor11:factor22"])

(Doğru bir tahmin elde etmek için tüm etkileşimlerin modele nasıl dahil edilmesi gerektiğine ve ilişkili tüm katsayıların uygulanması gerektiğine dikkat edin.) Çıktı

(Intercept) 
        0.5

sonuçlarını kabul etmek aggregate. (Çıktıdaki "(Kesme)" başlığı, girdinin bir kalıntısıdır ve bu hesaplama için etkili bir şekilde anlamsızdır.)


Aynı bilgi başka bir biçimde çıktısında görünürtable . Örneğin, (uzun) çıktı

table(x, factor1, factor2, factor3)

bu paneli içerir:

, , factor2 = 2, factor3 = 0

   factor1
x    0  1
  0 20 21
  1 18 21

Sütun factor1seviyeleri (1,2,0) ve gösteriler üç faktöre = 1 tekabül olduğu değerlerinin eşit biz okuma ne kabul, ve .21/(21+21)=0.5x1aggregateglm


Son olarak, veri kümesinde en yüksek oranı veren faktörlerin bir kombinasyonu, aşağıdakilerin çıktısından kolayca elde edilir aggregate:

> aggregate.results[which.max(aggregate.results$x),]
  Group.1 Group.2 Group.3         x
4       1       1       0 0.6071429

1
Bu çok fazla bilgi ve sindirmem için biraz zaman alacaktır, ancak tablolanmış yüzdelerin ve lojistik regresyonların aslında aynı sonuçları vereceğini duyduğuma sevindim. Toplama işlevini iki yordayıcıda çalıştırdım ve hemen bitti ... lojistik uyumun sonuçları birkaç dakika sürdü ve henüz bitmedi. Bir şeyleri düzeltmeye devam edeceğim, ancak sadece tablolanmış yüzdeleri kullanarak sonuçlanabilirim. Teşekkür ederim!
Rachel

(+1), Manşet kapalı Bu bağlamda lojistik regresyondaki standart hataların önerdiğim grafik mozaik çizim özetine dahil edilip edilemeyeceğini merak ediyorum . Ben de (bunlar olsa sadece benim derin düşünceler vardır!) Bu ilginç etkileşimleri için hızlı "filtre" sonuçlarına için iyi bir yol olabilir şüpheli
Andy W

"Lojistik regresyon, sayısal belirsizliğe kadar, tablolaştırılmış yüzdelerle tam olarak aynı uyumu sağlayacaktır": Her bir öngörücü yapılandırması için yüzdeleri tablolaştırmıyor mu? Bu durumda, lojistik regresyon olası tüm ilişkileri kodlayamaz.
Neil G

@Neil Tabii tüm "ilişkileri" (faktör kombinasyonları) kodlayabilir: olası tüm etkileşimleri kullanın. Örnek için R koduna bakın. Faktörler çok olduğunda, pratikte birçok boş kombinasyon olacaktır, ancak iyi yazılımların bununla ilgili herhangi bir problemi olmayacaktır. Daha da iyi bir yazılım, yanıtlarda hiçbir değişiklik olmadan kombinasyonları ele alacaktır.
whuber

@ Grafikler hakkındaki cevabınızı seviyorum - tam olarak doğru cevabın olduğu bir konu oluşturmanın bir yolunu bulmalıyız! Belki de hata tahminlerini mozaik çizimlere dahil etme konusundaki düşünceniz ona yaklaşmanın bir yolu olacaktır: lojistik tahminleri, gerçek verileri ve / veya hatayı aynı anda nasıl temsil edersiniz?
whuber

6

Bir İçin Hızlı birden çok kategoride üzerinde her kategori ve / veya Koşullu içinde ikili yanıtların oranda bakışta, grafik araziler hizmet olabilir. Özellikle, birçok kategorik bağımsız değişken üzerinde koşullu orantıları aynı anda görselleştirmek için Mozaik Grafikleri öneririm .

Aşağıda bir blog yazısı alınan bir örnek, anlama alan bazlı araziler: Mozaik araziler gelen İstatistiksel grafikler ve daha blogda. Bu örnek, yolcu sınıfına bağlı olarak Titanik'teki hayatta kalanların oranını mavi renkte göstermektedir. Alt grupların her birindeki toplam yolcu sayısını takdir ederken aynı zamanda hayatta kalanların oranını da değerlendirmek mümkündür (özellikle belirli alt grupların sayısı seyrek olduğunda ve daha rasgele bir değişim beklediğimizden emin olmak için yararlı bilgiler).

Titanik'in mozaik çizimi
(kaynak: theusrus.de )

Daha sonra müteakip mozaik grafikleri birden fazla kategorik bağımsız değişken üzerinde koşullu hale getirilebilir. Hızlı ve görsel bir özetle aynı blog yazısından bir sonraki örnek , birinci ve ikinci sınıftaki tüm çocuk yolcuların hayatta kaldığını, üçüncü sınıfta ise çocukların neredeyse hiç ücret ödemediğini göstermektedir. Ayrıca, sınıflar arasındaki kadın hayatta kalanların oranı birinci sınıftan ikinci sınıfa üçüncü sınıfta önemli ölçüde azalmasına rağmen, kadın yetişkinlerin her sınıftaki erkeklere kıyasla çok daha yüksek bir hayatta kalma oranına sahip olduğunu açıkça göstermektedir (ve daha sonra mürettebat için nispeten yüksekti) yine bara ne kadar dar olduğu göz önüne alındığında, çok sayıda kadın mürettebat üyesi olmadığını unutmayın.

Üçüncü değişken üzerinde mozaik şartlı
(kaynak: theusrus.de )

Ne kadar bilginin gösterilmesi şaşırtıcı, bu dört boyuttaki oranlardır (Sınıf, Yetişkin / Çocuk, Cinsiyet ve Hayatta Kalanların Oranı)!

Tahmin ya da genel olarak daha nedensel bir açıklama ile ilgileniyorsanız, daha resmi bir modele geçmek isteyeceğinize katılıyorum. Grafiksel grafikler, verilerin doğası gereği çok hızlı görsel ipuçları olabilir ve sadece regresyon modellerini tahmin ederken (özellikle farklı kategorik değişkenler arasındaki etkileşimleri dikkate alırken) sıklıkla gözden kaçan diğer bilgileri sağlayabilir.


+1, hedefimin basit bir açıklama veya çıkarım olup olmadığı konusunda yukarıdaki yorumumda yapmaya çalıştığım nokta bu. Nb, nokta daha net ve daha iyi yapılmış w / rakamlar!
gung - Monica'yı eski durumuna döndürün

@gung teşekkürler, ne anlama geliyor Nb? Rakamlarla da daima daha iyi söylerim!
Andy W

2
İstatistiklerle ilgili herhangi bir şey değil, "nb" nota bene anlamına gelir , bu da "iyi not" (kelimenin tam anlamıyla) veya "/" bildirimi "(daha çok sözlü olarak) için Latince'dir.
gung - Monica'yı eski durumuna döndürün

3

İhtiyaçlarınıza bağlı olarak, yinelemeli ayrıştırma işleminin bir sonuç değişkenini tahmin etmek için yorumlanması kolay bir yöntem sağladığını görebilirsiniz. Bir İçin Ar bu yöntemlere giriş, Hızlı R'ın bkz Ağaç tabanlı bir model sayfasını. ctree()Budama konusunda endişelenmek zorunda olmadığı ve varsayılan olarak güzel grafikler ürettiği için R'nin parti paketinde uygulamayı tercih ederim .

Bu, önceki bir cevapta önerilen özellik seçim algoritmaları kategorisine girer ve genellikle lojistik regresyon kadar iyi olmasa da iyi tahminler verir.


2

205

Verileriniz daha azsa, daha az parametre öğrenmek istersiniz. Örneğin, tek tek öngörücülerin yapılandırmalarının yanıt değişkeni üzerinde tutarlı etkileri olduğunu varsayarak parametre sayısını azaltabilirsiniz.

Tahmincilerinizin birbirinden bağımsız olduğuna inanıyorsanız, lojistik regresyon doğru şeyi yapan eşsiz algoritmadır. (Bağımsız olmasalar bile, yine de oldukça iyi yapabilirler.)

Özetle, lojistik regresyon, öngörücülerin bağımsız etkisi hakkında bir varsayım yapar, bu da model parametrelerinin sayısını azaltır ve öğrenmesi kolay bir model verir.


1

Özellik seçim algoritmalarına bakmalısınız. Durumunuz için uygun olanı (ikili sınıflandırma, kategorik değişkenler) "minimum Artıklık Maksimum Alaka Düzeyi" (mRMR) yöntemidir. Hemen çevrimiçi olarak http://penglab.janelia.org/proj/mRMR/ adresinden deneyebilirsiniz.


Bu programı birden fazla kategorik öngörücü ile çalıştırmak mümkün müdür? Yükleme sayfasında sadece ilk sütun veri "sınıfı" olabilir gibi görünüyor ... Belki de verilerin nasıl biçimlendirilmesi gerekiyordu anlamıyorum.
Rachel

Yoksa "sınıf" çıktı değişkeni mi, bu durumda 0 veya 1 mi? Öyleyse, kategorik değişkenleri her biri için göstergeleri göstermek için kukla değişkenlere dönüştürmek önemli mi?
Rachel

İstediğiniz kadar yordayıcıya sahip olabilirsiniz. Veri dosyanızın ilk satırı özellik adları olmalı ve ilk sütun, örnekler için sınıflar (yanıt değişkeni) olmalıdır. Yani, bir örnek: response,predictor1,predictor2,predictor3 <line break here> 1,5,4,3 <line break here> 0,5,3,-1 <line break here> 1,1,2,3
2012'de

1

Kredi puanlama alanında çalışıyorum, burada garip bir durum olarak sunulan şey norm.

Lojistik regresyon kullanıyoruz ve hem kategorik hem de sürekli değişkenleri daha sonra regresyonda yordayıcılar olarak kullanılan kanıt ağırlıklarına (WOE) dönüştürüyoruz. Kategorik değişkenlerin gruplandırılması ve sürekli değişkenlerin ayrıklaştırılması (binning / sınıflandırma) için çok zaman harcanır.

Kanıt ağırlığı basit bir hesaplamadır. Sınıf için olan oranların günlüğüdür, nüfus için oranların günlüğü daha azdır:
WOE = ln (İyi (Sınıf) / Kötü (Sınıf)) - ln (İyi (ALL) / Kötü (ALL)) lojistik regresyon kullanılarak oluşturulan hemen hemen tüm kredi puanlama modelleri için standart dönüşüm metodolojisi. Parçalı bir yaklaşımda aynı sayıları kullanabilirsiniz.

Bunun güzelliği, her bir WOE'ye atanan katsayıların anlamlı olup olmadığını her zaman bileceğinizdir. Negatif katsayılar verilerdeki örüntülere aykırıdır ve genellikle çoklu doğrusallıktan kaynaklanır; ve 1.0'ın üzerindeki katsayılar aşırı telafiyi gösterir. Çoğu katsayı sıfır ile bir arasında ortaya çıkacaktır.


İlginç ve bilgilendirici bir gönderi için teşekkürler. Yine de, bu konudaki soruya nasıl yanıt verdiğini anlayamıyorum. Bahsettiğiniz "tuhaf dava" nedir? Belki bunu başka bir yerde başka bir soruya cevap vermek için kullanmayı düşündünüz mü?
whuber
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.