Model multilevel untuk grup yang memiliki prediktor berbeda

Aug 20 2020

Bayangkan saya mencoba menyesuaikan model multilevel pada produk, dan ingin mengelompokkan menurut jenis produk.

Dalam kasus di mana jenis produk memiliki semua prediktor yang sama, ini sangat mudah. Misalnya, Anda mungkin memperkirakan pengaruh warna pada penjualan atau yang serupa.

Tetapi bagaimana jika beberapa prediktor hanya masuk akal untuk beberapa jenis produk? Seperti fitur "panjang kaki" mungkin masuk akal untuk celana pendek jika orang memiliki preferensi seberapa jauh di atas atau di bawah lutut mereka menyukai celana pendek mereka, tetapi tidak untuk celana yang selalu panjang penuh. Dan mungkin ini masuk akal untuk kemeja, karena sama sekali tidak memiliki panjang kaki.

Dalam hal ini, adakah cara untuk mengatasinya atau yang terbaik adalah memiliki model yang berbeda per grup? Untuk fitur-fitur yang dibagikan dan diharapkan diambil dari distribusi yang sama, saya rasa kami kehilangan beberapa keuntungan di sana, jadi saya bertanya-tanya apakah modelnya dapat dibuat sebagai model tunggal.

Saya telah memikirkan sejumlah hal (misalnya untuk produk yang tidak memiliki fitur, menyetelnya ke nilai konstan, atau ke nilai acak yang diambil dari distribusi nilai fitur dari produk yang fitur tersebut masuk akal, dll. ) tetapi semua tampaknya memiliki masalah yang sangat jelas.

Jawaban

2 Eoin Aug 24 2020 at 20:52

Ada cara yang cukup masuk akal untuk melakukan ini jika Anda memusatkan semua prediktor Anda dengan mengurangi nilai rata-rata.

Menggunakan contoh Anda, katakanlah Anda memiliki celana pendek atletik, celana pendek, dan jeans, dan prediktor numerik Anda adalah a) kecerahan (ditentukan untuk semua kategori), dan b) panjang pendek (ditetapkan untuk celana pendek saja, NAuntuk celana panjang). Sekarang, jika Anda memusatkan kedua prediksi numerik Anda, Anda mendapatkan ukuran a) apakah item lebih gelap atau lebih terang dari rata-rata, dan b) apakah celana pendek lebih pendek atau lebih panjang dari rata-rata. Anda dapat dengan aman mengatakan bahwa celana panjang itu$\pm0$cm lebih pendek atau lebih panjang dari rata-rata, dan karenanya berikan nilai 0 untuk prediktor ini untuk semua item yang bukan celana pendek (tidak lebih pendek atau lebih panjang dari rata-rata). Anda kemudian dapat menyesuaikan multilevel seperti biasa, memungkinkan semua prediktor bervariasi di seluruh kategori:

lmer(sales ~ 1 + centred_colour + centred_leg_length + 
             (1 + centred_colour + centred_leg_length | category),
     data=sales_data)

Karena prediktor ini hanya bervariasi untuk jenis celana pendek yang berbeda, hanya penjualan item tersebut yang akan berpengaruh pada parameter ini. Karena disetel ke 0 untuk semua produk lain, prediktor ini tidak akan memengaruhi kesimpulan atau prediksi tentang produk tersebut.

Jika kebetulan Anda hanya memiliki satu kategori celana pendek dalam data Anda, jika tidak memungkinkan untuk memasukkannya sebagai efek acak, dan Anda harus mengubah model Anda sesuai dengan itu:

lmer(sales ~ 1 + centred_colour + centred_leg_length + 
             (1 + centred_colour | category),
     data=sales_data)
1 Alex.C-L-ReinstateMonica Aug 24 2020 at 15:46

Cobalah untuk membuat variabel dummy yaitu 0 jika produk tidak memiliki fitur (yaitu tidak memiliki kaki), dan 1 jika memiliki fitur ini. Ubah variabel dummy ini menjadi faktor.

Jika dummy tidak memiliki fitur, ganti nilai yang hilang dengan nol.

Kemudian dalam model Anda, interaksikan variabel minat berkelanjutan Anda dengan variabel dummy faktor. Tambahkan juga variabel faktor dummy.


Catatan: Saya senang membaca dari orang yang lebih tahu mengapa ini berhasil (atau tidak berfungsi dalam kasus umum).