Jika variabel faktor (misalnya jenis kelamin dengan level M dan F) digunakan dalam rumus glm, variabel dummy dibuat, dan dapat ditemukan dalam ringkasan model glm bersama dengan koefisien yang terkait (misalnya genderM)
Jika, alih-alih mengandalkan R untuk membagi faktor dengan cara ini, faktor tersebut dikodekan dalam serangkaian variabel 0/1 numerik (misalnya genderM (1 untuk M, 0 untuk F), genderF (1 untuk F, 0 untuk M) dan variabel-variabel ini kemudian digunakan sebagai variabel numerik dalam rumus GLM, apakah hasil koefisien akan berbeda?
Pada dasarnya pertanyaannya adalah: apakah R menggunakan perhitungan koefisien yang berbeda ketika bekerja dengan variabel faktor versus variabel numerik?
Pertanyaan tindak lanjut (mungkin dijawab oleh yang di atas): selain hanya efisiensi membiarkan R membuat variabel dummy, apakah ada masalah dengan pengkodean ulang faktor sebagai serangkaian variabel 0,1 numerik dan menggunakan yang ada dalam model sebagai gantinya?
Jawaban:
Variabel kategorikal (disebut " faktor " dalam R) perlu diwakili oleh kode numerik dalam model regresi berganda. Ada banyak cara yang memungkinkan untuk membuat kode numerik dengan tepat (lihat daftar hebat ini di situs bantuan statistik UCLA). Secara default, R menggunakan pengkodean level referensi (yang disebut R sebagai "contr.treatment"), dan yang merupakan statistik default. Ini dapat diubah untuk semua kontras untuk seluruh sesi R Anda menggunakan ? Opsi , atau untuk analisis / variabel tertentu menggunakan ? Kontras atau ? C (perhatikan modal). Jika Anda memerlukan informasi lebih lanjut tentang pengkodean tingkat referensi, saya jelaskan di sini: Regresi berdasarkan misalnya pada hari dalam seminggu.
Beberapa orang menganggap pengkodean tingkat referensi membingungkan, dan Anda tidak harus menggunakannya. Jika Anda mau, Anda bisa memiliki dua variabel untuk pria dan wanita; ini disebut level berarti pengkodean. Namun, jika Anda melakukan itu, Anda harus menekan intersep atau matriks model akan tunggal dan regresi tidak dapat sesuai dengan catatan @Affine di atas dan seperti yang saya jelaskan di sini: Pengodean variabel kualitatif mengarah ke singularitas . Untuk menekan intersep, Anda memodifikasi rumus Anda dengan menambahkan
-1
atau+0
seperti itu:y~... -1
atauy~... +0
.Menggunakan pengkodean level berarti alih-alih pengkodean level referensi akan mengubah estimasi koefisien dan arti dari tes hipotesis yang dicetak dengan output Anda. Ketika Anda memiliki faktor dua level (misalnya, pria vs wanita) dan Anda menggunakan pengkodean level referensi, Anda akan melihat intersep dipanggilt 0 t 0
(constant)
dan hanya satu variabel yang tercantum dalam output (mungkinsexM
). Intersep adalah rata-rata dari kelompok referensi (mungkin perempuan) dansexM
merupakan perbedaan antara rata-rata laki-laki dan rata-rata perempuan. Nilai p yang terkait dengan intersep adalah uji satu sampel apakah tingkat referensi memiliki rata-rata dan nilai p yang terkait dengansexM
memberi tahu Anda jika jenis kelamin berbeda pada respons Anda. Tetapi jika Anda menggunakan pengkodean level means, Anda akan memiliki dua variabel terdaftar dan masing-masing nilai p akan sesuai dengan -sampel satu-sampel apakah rata-rata level tersebut adalah . Artinya, tidak ada nilai-p yang akan menjadi ujian apakah jenis kelaminnya berbeda.sumber
young F
) & level lainnya akan berbeda dengan level faktor 1 w / level ref dari faktor lain & kedua grup level ref. Misalnyaold
adalahold F
- `muda F, &
m` adalahyoung M
-young F
.R^2
perbedaan besar antara kedua pendekatan. Saya tahu ini hanya sebuahR^2
, tetapi apakah ada penjelasan untuk itu?Koefisien yang diperkirakan akan menjadi subjek yang sama dengan kondisi yang Anda buat variabel dummy Anda (yaitu yang numerik) konsisten dengan R. Misalnya: mari 'buat data palsu dan muat menggunakan Poisson glm menggunakan faktor. Perhatikan bahwa
gl
fungsi menciptakan variabel faktor.Karena hasil memiliki tiga level, saya membuat dua variabel dummy (dummy.1 = 0 jika hasil = 2 dan dummy.2 = 1 jika hasil = 3) dan mereparasi dengan menggunakan nilai-nilai numerik ini:
Seperti yang Anda lihat, koefisien yang diperkirakan sama. Tetapi Anda harus berhati-hati saat membuat variabel dummy Anda jika Anda ingin mendapatkan hasil yang sama. Sebagai contoh jika saya membuat dua variabel dummy sebagai (dummy.1 = 0 jika hasil = 1 dan dummy.2 = 1 jika hasil = 2) maka hasil estimasi berbeda seperti berikut:
Ini karena ketika Anda menambahkan
outcome
variabel di glm.1, R secara default membuat dua variabel dummy yaituoutcome2
danoutcome3
dan mendefinisikannya sama dengandummy.1
dandummy.2
di glm.2 yaitu tingkat hasil pertama adalah ketika semua variabel dummy lainnya (outcome2
danoutcome3
) ditetapkan menjadi nol.sumber