Neden bir kukla değişkeni atmamız gerekiyor?


16

Bir regresyon modeli oluşturmak için kategorik değişkenleri kukla değişkenlere dönüştürerek halletmemiz gerektiğini öğrendim. Örnek olarak, veri kümemizde konum gibi bir değişken varsa:

Location 
----------
Californian
NY
Florida

Bunları şu şekilde dönüştürmeliyiz:

1  0  0
0  1  0
0  0  1

Bununla birlikte, kaç tane kukla değişken olursa olsun, bir kukla değişkeni atmamız gerektiği önerildi.

Neden bir kukla değişkeni atmamız gerekiyor?


3
Çünkü üçüncü kukla ilk ikisinin doğrusal kombinasyonu olarak açıklanabilir: FL = 1 - (CA + NY).
chainD

@chainD ama üçten fazla kukla değişkenin açıklaması nedir?
Mithun Sarker Shuvro

2
Toplam ne olursa olsun, sahip olduğunuz toplam kategori sayısından sadece 1 daha az olacaktır. Örneğinizi genişlettiğinizde, veri kümesinde 50 durumun da temsil edildiğini varsayalım. Belirli bir birey için, hepsi sıfır olan ilk 49 mankene baktığınızı varsayalım, o zaman son manken bakmadan bile 1 olduğunu biliyorsunuz (veri kümesindeki herkes 50 eyaletten birisini varsayarsa). Başka bir deyişle, son manken bilgileri zaten ilk 49'un sonucunda yer almaktadır.
chainD

@chainD teşekkür ederim
Mithun Sarker Shuvro

1
ilkbahar değilse, yaz değil, sonbahar değilse kış olur!
Stev

Yanıtlar:


10

Basitçe söylemek gerekirse, kategorik özelliğinizin bir düzeyi (burada konum), regresyon için kukla kodlama sırasında referans grubu haline gelir ve gereksizdir. I formunu quoting burada , "K kategorileri veya seviyelerinin kategorik değişken, genellikle K-1 kukla değişkenlerin bir dizisi olarak bir gerileme girer. Bu miktarlarda seviyesi aracı üzerinde doğrusal bir hipoteze."

Bu zaten bu çok güzel istatistiklerde tartışılıyor .

Coursera'da Yandex'in hala şüpheleriniz varsa bu konuyu daha ayrıntılı olarak ele alan ileri bir kurs olduğu söylendi, buraya bakın . Kurs içeriğini her zaman ücretsiz olarak denetleyebileceğinizi unutmayın. ;-)

Bir başka güzel gönderide istatistiksel bakış açısı ile örnekler sürü ile ayrıntılı bir açıklama istiyorum değilse sınırlı olmak sadece kodlama kukla, bkz bu UCLA'de (R)

Kullanıyorsanız pandas.get_dummies, bir parametre olduğunu unutmayın, drop_firstböylece ilk seviyeyi kaldırarak k-1 mankenlerini k kategorik seviyelerden alıp alamayacağınızı unutmayın. Lütfen default = Falsereferansın bırakılmadığını ve k kategorik seviyelerden k aptallar yaratıldığını unutmayın!


4
Bunun yalnızca modelinizde bir kesişme (yani sabit bir terim) varsa doğru olduğuna dikkat edin. Aksi takdirde, bir hot-encoding kullanarak ve bir kukla değişkeni atmadan, dolaylı olarak bir kesme noktası eklersiniz.
Elias Strehle

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.