Mengapa kita perlu mengubah variabel kategori kode

22

Saya tidak yakin mengapa kita perlu membuat dummy variabel kode. Misalnya, jika saya memiliki variabel kategori dengan empat kemungkinan nilai 0,1,2,3, saya dapat menggantinya dengan dua dimensi. Jika variabel memiliki nilai 0, itu akan memiliki 0,0 di dua dimensi, jika itu memiliki 3, itu akan memiliki 1,1 di dua dimensi dan seterusnya.

Saya tidak yakin mengapa kita perlu melakukan ini?

pengguna12331
sumber

Jawaban:

21

Misalkan empat kategori Anda adalah warna mata (kode): coklat (1), biru (2), hijau (3), hazel (4) —memulihkan heterokromia, violet, merah, abu-abu, dll. Untuk saat ini.

Sama sekali tidak (yang saat ini dapat saya bayangkan) akan kita maksudkan bahwa hijau coklat, atau hazel = 2 × biru seperti yang disiratkan oleh kode kita, meskipun 3 = 3 × 1 dan 4 = 2 × 2 .=3×=2×3=3×14=2×2

Karena itu (kecuali kami karena beberapa alasan memang ingin makna seperti itu masuk ke dalam analisis kami), kami perlu menggunakan semacam pengkodean. Dummy coding adalah salah satu contoh, yang menghilangkan hubungan seperti itu dari cerita statistik yang ingin kami ceritakan tentang warna mata. Pengkodean efek dan pengkodean Heckman adalah contoh lain.

Pembaruan: contoh Anda dari dua variabel untuk empat kategori tidak sesuai dengan pemahaman saya tentang istilah "kode dummy" yang biasanya mencakup penggantian k kategori (misalnya 4) dengan variabel dummy (mengurutkan pengamatan berdasarkan kategori):k-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

Di sini kategori 4 adalah kategori referensi, dengan asumsi bahwa ada konstanta dalam model Anda, seperti:

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

di mana adalah nilai rata-rata y ketika kategori = 4, dan istilah β yang terkait dengan setiap dummy menunjukkan dengan jumlah apa y berubah dari β 0 untuk kategori itu.β0yβyβ0

Jika Anda tidak memiliki istilah konstanta ( ) dalam model, maka Anda memerlukan satu lagi prediktor "dummy" (mungkin lebih jarang disebut "variabel indikator"), sehingga boneka-boneka tersebut kemudian masing-masing berperilaku sebagai konstanta model untuk setiap kategori :β0

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

Jadi ini akan membuat orang sekitar masalah menciptakan hubungan kuantitatif tidak masuk akal antara kode kategori yang saya sebutkan pada awalnya, tapi mengapa tidak menggunakan user12331-coding seperti yang Anda sarankan? kandidat pengguna-coding12121 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

Anda benar untuk menunjukkan bahwa seseorang dapat mewakili 4 nilai menggunakan 2 variabel biner (yaitu dua-bit). Sayangnya, satu pendekatan untuk ini (kode1 untuk kategori 1 dan 2, dan kode2 untuk kategori 3 dan 4) meninggalkan ambiguitas yang ditunjukkan oleh tanda tanya: nilai apa yang akan ada di sana ?!

Nah, bagaimana dengan pendekatan kedua, sebut saja user12331-coding kandidat 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

Sana! Tidak ada ambiguitas, kan? Kanan! Sayangnya, semua pengkodean ini mewakili jumlah numerik 1-4 (atau 0-3) dalam notasi biner , yang membuat masalah untuk memberikan hubungan kuantitatif yang tidak diinginkan ke dalam kategori.

Oleh karena itu, perlu skema pengkodean lain.

β

Alexis
sumber
5
Sementara jawaban ini menunjukkan alasan mengapa kita tidak dapat menggunakan satu variabel (yaitu bahwa kita memang membutuhkan 'semacam pengkodean'), itu tidak (belum) menjelaskan mengapa kita tidak dapat melakukannya dengan mengatakan dua variabel, seperti OP menyarankan dalam pertanyaan.
Glen_b -Reinstate Monica
@Glen_b Terima kasih. Saya harap pembaruan saya telah membantu mengatasi.
Alexis
2
Perhatikan bahwa 2 variabel biner cukup untuk mewakili 4 kategori [(0,0), (0,1), (1,0), (1,1)], tetapi bukan cara yang tepat untuk membuat dummy kode untuk analisis. OP tampaknya salah coding.
Ellis Valentiner
@ user12202013 Ya. Seperti dalam contoh terakhir saya.
Alexis
Bagaimana jika saya melakukan pengkodean biner menggunakan dua variabel seperti yang disarankan oleh OP, tetapi kemudian jika tujuannya adalah prediksi, maka bukankah sebuah non-parametrik, non-linear classifier / regressor bekerja sama baiknya?
tool.ish
1

Saya mengambil pertanyaan ini adalah, bahwa pengkodean empat keadaan yang mungkin dengan hanya dua variabel kurang ekspresif dengan beberapa algoritma pembelajaran mesin daripada menggunakan 4 variabel.

Misalnya, bayangkan Anda ingin melakukan regresi linier dan pemetaan sejati Anda memetakan nilai 0,1 dan 2 ke 0 dan nilai 3 hingga 1. Anda dapat dengan cepat memeriksa bahwa tidak ada cara mempelajari pemetaan ini dengan regresi linier saat mengkode variabel kategori Anda hanya dengan dua yang biner (hanya mencoba menyesuaikan bidang yang sesuai di kepala Anda). Di sisi lain, ketika Anda menggunakan kode 1-Of-K, ini tidak akan menjadi masalah.

Tobias
sumber
0

Alternatif Anda juga merupakan kode dummy. Anda memilih kode dummy yang paling mengekspresikan hubungan dengan variabel dependen Anda. Misalnya warna dapat dinyatakan sebagai 1 dari n, atau Anda dapat berubah menjadi komponen rgb numerik, atau Anda dapat mengkategorikan: girly / muddy / ... 1 dari n pada dasarnya berarti setiap contoh dipelajari secara terpisah yang baik jika tidak ada hubungan. .. tetapi di mana ada hubungan yang Anda buang-buang data Anda..Anda harus secara terpisah memperkirakan koefisien untuk setiap contoh kategori ... menganggap pekerjaan sebagai variabel kategori. Anda mungkin dikategorikan sebagai sektor pasar dan senioritas.

seanv507
sumber