Neden kategorik kod değişkenlerini taklit etmemiz gerekiyor?


22

Neden kod kategorik değişkenlerini kukla ihtiyacımız olduğundan emin değilim. Örneğin, dört olası değeri 0,1,2,3 olan kategorik bir değişkenim varsa, bunu iki boyutla değiştirebilirim. Değişkenin 0 değeri olsaydı, iki boyutta 0,0 olur, 3 olsaydı iki boyutta 1,1 olur ve böyle devam eder.

Bunu neden yapmamız gerektiğinden emin değilim?

Yanıtlar:


21

Dört kategorinizin göz renkleri (kod) olduğunu varsayalım: kahverengi (1), mavi (2), yeşil (3), ela (4) —hızan heterokromya, menekşe, kırmızı, gri vb.

Hiçbir şekilde (şu anda hayal edebileceğim) , ve kodlarına göre yeşil brown veya kodlarımızda belirtildiği gibi ela blue anlamına gelmez .=3x=2x3=3x14=2x2

(Nedense biz sürece nedenle yapmak analizlerde içine kayma için böyle bir anlam istiyorum), biz kodlama çeşit kullanmak gerekir. Kukla kodlama, göz rengiyle ilgili anlatmak istediğimiz istatistiksel hikayelerden bu tür ilişkileri ortadan kaldıran bir örnektir. Efekt kodlama ve Heckman kodlama diğer örneklerdir.

Güncelleme: dört kategori için iki değişken örneğiniz, tipik olarak kategorilerini (4 diyelim) kukla değişkenlerle (gözlemleri kategoriye göre sıralamak ) değiştirmeyi gerektiren "kukla kod" terimini anlamamla eşleşmiyor :kk-1

id  category  dummy1 dummy2 dummy3
 1         1       1      0      0
 2         1       1      0      0
 3         2       0      1      0
 4         2       0      1      0
 5         3       0      0      1
 6         3       0      0      1
 7         4       0      0      0
 8         4       0      0      0

Burada kategori 4, modelinizde aşağıdaki gibi bir sabit olduğu varsayılarak referans kategorisidir:

y=β0+β1d1+β2d2+β3d3+ε

burada , kategori = 4 olduğunda ortalama değeridir ve her bir kukla ile ilişkili terimleri , o kategori için dan ne kadar değiştiğini gösterir .β0yβyβ0

Eğer varsa yok (bir sabit olması modelinde terim), o zaman kukla o sırada yürürlükte bir daha "kukla" öngorücunun (belki daha az sıklıkta adlandırılan "göstergesi değişkenleri"), her bir kategori için bir model sabiti olarak her davranır ihtiyaç :β0

y=β1d1+β2d2+β3d3+β4d4+ε

Yani bu , ilk başta bahsettiğim kategori kodları arasında saçma sapan niceliksel ilişkiler yaratma sorununu çözecekti , ancak neden user12331 kodlamasını kullanmıyorsunuz ? user12331 kodlama adayı A:

id  category   code1  code2
 1         1       0      ?
 2         1       0      ?
 3         2       1      ?
 4         2       1      ?
 5         3       ?      0
 6         3       ?      0
 7         4       ?      1
 8         4       ?      1

birinin 2 ikili değişken (yani iki bit) kullanarak 4 değeri temsil edebileceğini belirtmek için haklısınız . Ne yazık ki, buna bir yaklaşım (kategori 1 ve 2 için kod1 ve kategori 3 ve 4 için kod2) soru işaretlerinin belirlediği belirsizliği bırakır: hangi değerler oraya gider ?!

Peki, ikinci bir yaklaşıma ne dersiniz user12331-kodlama adayı B:

id  category   code1  code2
 1         1       0      0
 2         1       0      0
 3         2       0      1
 4         2       0      1
 5         3       1      0
 6         3       1      0
 7         4       1      1
 8         4       1      1

Orada! Belirsizlik yok, değil mi? Sağ! Ne yazık ki, tüm bu kodlama ikili gösterimde 1–4 (veya 0-3) sayısal miktarları temsil eder, bu da bu istenmeyen nicel ilişkileri kategorilere verme problemini sağlam bırakır.

Bu nedenle, başka bir kodlama şemasına duyulan ihtiyaç.

β


5
Bu cevap, bir değişkeni neden kullanamayacağımızın nedenini gösterirken (yani gerçekten bir çeşit kodlamaya ihtiyacımız olduğunu) göstermesine rağmen, neden iki değişken söyleyerek yapamadığımızı açıklamıyor . OP soruda öne sürüyor.
Glen_b

@Glen_b Teşekkürler. Umarım güncellemem adrese yardımcı olmuştur.
Alexis

2
2 ikili değişkenin 4 kategoriyi temsil etmek için yeterli olduğunu unutmayın [(0,0), (0,1), (1,0), (1,1)], ancak analiz için kukla kod oluşturmanın uygun yolu değildir. OP yanlış kodlanmış gibi görünüyor.
Ellis Valentiner

@ user12202013 Evet. Son örneğimde olduğu gibi.
Alexis

OP tarafından önerildiği gibi iki değişken kullanarak bir ikili kodlama yapsaydım, ancak hedef tahminse, parametrik olmayan, doğrusal olmayan bir sınıflandırıcı / regresör eşit derecede iyi çalışmaz mı?
tool.ish

1

Bu soruyu benim ele alacağım, dört olası durumu sadece iki değişkenle kodlamanın, bazı makine öğrenme algoritmaları ile 4 değişken kullanmaktan daha az anlamlı olduğudur.

Örneğin, doğrusal regresyon yapmak istediğinizi ve gerçek eşlemenizin 0,1 ve 2 ila 0 ve 3 ila 1 değerlerini eşlediğini düşünün. Kodlama sırasında bu eşlemeyi doğrusal regresyon ile öğrenmenin bir yolu olmadığını hızlıca kontrol edebilirsiniz. kategorik değişkeninizi sadece iki ikili değişkenle (sadece ilgili uçağı kafanıza sığdırmaya çalışın). Öte yandan, 1-Of-K kodlaması kullandığınızda bu bir sorun olmaz.


0

Alternatifiniz de sahte bir koddur. Bağımlı değişkeninizle ilişkiyi en iyi ifade eden kukla kodu seçersiniz. Örneğin, renk n'in 1'i olarak ifade edilebilir veya sayısal rgb bileşenlerine dönüştürebilirsiniz ya da kategorize edebilirsiniz: girly / muddy / ... 1 n temelde her örneğin ayrı ayrı öğrenildiği anlamına gelir, bu da bir ilişki yoksa iyidir. .. ancak verilerinizi harcadığınız bir ilişkinin olduğu yerde ... kategorinin her örneği için katsayıyı ayrı ayrı tahmin etmeniz gerekir ... işi kategorik bir değişken olarak düşünün. Pazar sektörü ve kıdem olarak yeniden sınıflandırabilirsiniz.

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.