Saya ingin menambahkan semua kemungkinan interaksi di antara delapan variabel, yang semuanya kategoris. Dataset saya terlihat seperti berikut masukkan deskripsi gambar di sini

Saya menggunakan as.formula untuk memasukkan semua interaksi. Kode saya di bawah

f = as.formula(y ~ .^8)
x = model.matrix(f, data)[, -1]
y = data$y

Namun, x saya menjadi berikut masukkan deskripsi gambar di sini

Dan ada total 6560 kolom. Saya tidak tahu mengapa menjadi ini. Bukankah seharusnya masih 1, 2, 3 dalam variabel x? Bolehkah saya bertanya bagaimana saya harus memperbaiki ini atau menafsirkan ini?

Terima kasih!

1
JWRebecca 8 Maret 2020, 23:06

1 menjawab

Jawaban Terbaik

Anda memiliki delapan variabel masing-masing dengan tiga tingkat. Anda ingin memasukkan setiap kemungkinan interaksi, yaitu setiap kemungkinan kombinasi dari delapan faktor.

Ada 3^8 kemungkinan kombinasi nilai yang berbeda untuk prediktor Anda. Jadi ada 3^8=6561 kemungkinan efek dan interaksi utama (termasuk intersep) dalam matriks desain Anda.

Untuk melihat bagaimana mereka dikodekan, pertimbangkan prediktor 3-tingkat tunggal:

> model.matrix(lm(y ~ x1))
  (Intercept) x12 x13
1           1   0   0
2           1   1   0
3           1   0   1

Sebuah faktor 3 tingkat tunggal dikodekan sebagai 3 kolom, sebuah intersep ditambah dua variabel dummy.

Sekarang tambahkan prediktor 3 tingkat kedua dan interaksinya:

> model.matrix(lm(y ~ (x1+x2)^2))
  (Intercept) x12 x13 x22 x23 x12:x22 x13:x22 x12:x23 x13:x23
1           1   0   0   0   1       0       0       0       0
2           1   1   0   1   0       1       0       0       0
3           1   0   1   0   0       0       0       0       0

Jadi di sini ada 9 kombinasi yang diizinkan dari variabel biner tersebut. Saat Anda mendapatkan hingga 8 variabel, masing-masing dari 6561 kemungkinan kombinasi prediktor diwakili oleh kombinasi yang diizinkan dari variabel biner ini. (jelas Anda tidak dapat memiliki x12 dan x13 positif secara bersamaan).

0
George Savva 8 Maret 2020, 21:53