Bagaimana Anda menangani variabel "bersarang" dalam model regresi?

11

Pertimbangkan masalah statistik di mana Anda memiliki responsevariabel yang ingin Anda jelaskan kondisional pada explanatoryvariabel dan nestedvariabel, di mana variabel bersarang hanya muncul sebagai variabel yang bermakna untuk nilai-nilai tertentu dari variabel penjelas . Dalam kasus di mana variabel penjelas tidak mengakui variabel bertingkat yang berarti, yang terakhir biasanya dikodekan baik seperti NAdalam kumpulan data, atau jika dikodekan dengan nilai, nilai itu hanyalah pengganti yang tidak memiliki interpretasi yang berarti.

Situasi ini cenderung muncul setiap kali Anda memiliki variabel penjelas yang menunjukkan keberadaan sesuatu, dan satu atau lebih variabel bertingkat yang menggambarkan karakteristik benda itu. Beberapa contoh situasi semacam ini dalam masalah statistik adalah sebagai berikut:

  • Variabel penjelas adalah indikator apakah seorang peserta survei married, dan variabel bertingkat adalah beberapa characteristic of the spouse(misalnya, pendidikan, usia, dll.);

  • Variabel penjelas adalah indikator presence of an itemdalam ruang, dan variabel bersarang adalah ukuran dari beberapa characteristic of the item(misalnya, ukuran, jarak, dll.);

  • Variabel penjelas adalah indikator terjadinya suatu eventdan variabel bertingkat adalah deskripsi dari beberapa characteristic of the event(misalnya, durasi, besarnya, dll.).

Dalam situasi seperti ini, kita sering ingin membangun model tipe regresi (dalam arti luas yang mencakup GLM, GLMM, dll.) Yang menggambarkan hubungan antara variabel respons dan variabel lainnya. Tidak jelas bagaimana menangani variabel bersarang dalam tipe model ini.

Pertanyaan: Bagaimana kita menangani nestedvariabel dalam model jenis ini?


Catatan: Pertanyaan ini dirancang untuk memberikan jawaban umum untuk pertanyaan berulang pada CV.SE mengenai variabel bersarang dalam regresi (lihat misalnya, di sini , di sini , di sini dan di sini ). Pertanyaan ini dirancang untuk memberikan contoh umum-independen dari masalah ini.

Ben - Pasang kembali Monica
sumber
1
Saya akan meninggalkan ini sebagai komentar tetapi saya tidak memiliki reputasi yang cukup. Saya mengalami masalah dalam menggunakan solusi ini di R - glm () atau lm (). Saya menggunakan model: y ~ x1 + x1: x2 Sayangnya jika saya menyandikan data yang hilang sebagai NA, default na.action menghapus baris dengan NAs dan meninggalkan x1 dengan hanya satu tingkat - membuat model setara dengan hanya: y ~ x2 Jika saya menggunakan argumen untuk glm: na.action = na.pass saya mendapatkan kesalahan: Kesalahan di glm.fit (x = c (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 , 1, 1, 1, 1, 1,: NA / NaN / Inf di 'x' Jika sebaliknya saya menyandikan variabel yang hilang sebagai 0, model bersarang: y ~ x1 + x1: x2 Memberikan yang tepat
Adam Waring

Jawaban:

9

Nilai yang tidak berarti dari variabel bersarang tidak boleh memengaruhi model Anda: Desideratum penting dengan jenis analisis data ini adalah bahwa nestedvariabel tersebut tidak boleh memengaruhi model jika explanatoryvariabel asli tidak mengakuinya sebagai variabel bermakna. Dengan kata lain, model harus berupa bentuk yang mengabaikan nilai yang tidak berarti dari variabel bersarang . Ini adalah persyaratan penting untuk model yang valid dengan variabel bersarang, karena memastikan bahwa output model tidak terpengaruh oleh pilihan pengkodean sewenang-wenang.


Pemodelan dengan variabel bersarang: Persyaratan ini dicapai dengan menempatkan nestedvariabel ke dalam model hanya sebagai interaksi dengan explanatoryvariabel asli , tanpa memasukkannya sebagai efek utama. (Lebih khusus, variabel bertingkat harus berinteraksi dengan pernyataan logis pada variabel penjelas yang menunjukkan bahwa itu adalah variabel yang bermakna.) Perhatikan bahwa ini merupakan pengecualian terhadap aturan umum bahwa istilah tidak boleh dimasukkan sebagai interaksi tanpa istilah efek utama .

Pertimbangkan kasus umum di mana nestedvariabel hanya bermakna ketika explanatoryvariabel dalam beberapa set nilai A. Dalam hal ini, Anda akan menggunakan formulir model seperti ini:

response ~ 1 + explanatory + (explanatory %in% A):nested + ...

Dalam kasus umum di mana explanatoryvariabel Anda adalah variabel indikator (dengan nilai satu menimbulkan variabel bersarang bermakna), bentuk model ini menyederhanakan ini:

response ~ 1 + explanatory + explanatory:nested + ...

Perhatikan bahwa dalam pernyataan model ini tidak ada istilah efek utama untuk nestedvariabel. Ini dengan desain --- variabel bertingkat seharusnya tidak memiliki istilah efek utama, karena itu bukan variabel yang berarti tanpa adanya kondisi pada variabel penjelas. Dengan bentuk model seperti ini, Anda akan mendapatkan perkiraan untuk pengaruh variabel penjelas dan perkiraan lain untuk pengaruh variabel bersarang.


Mengkode variabel bersarang dalam data Anda: Ketika berhadapan dengan frame data yang mencantumkan variabel untuk regresi, praktik yang baik untuk nilai-nilai nestedvariabel yang akan dikodekan seperti NAdalam kasus-kasus di mana ia tidak bermakna muncul dari variabel penjelas. Ini memberitahu pembaca bahwa tidak ada variabel yang berarti di sini. Beberapa analis mengkode variabel-variabel ini dengan nilai-nilai lain, seperti nol, tetapi itu umumnya merupakan praktik buruk, karena dapat disalahartikan sebagai kuantitas yang bermakna.

Secara matematis, jika Anda mengalikan bilangan real dengan nol, Anda mendapatkan nol. Namun, jika Anda coding di RAnda harus berhati-hati di sini karena mengalikan Program 0:NAuntuk memberikan NAbukannya 0. Ini berarti bahwa Anda mungkin perlu mengkode ulang NAnilai - nilai ke nol untuk keperluan pemasangan model, atau membangun matriks desain untuk model sehingga nilai-nilai ini diatur ke nol.


Kasus di mana variabel dasar adalah fungsi dari variabel bersarang: Satu situasi yang kadang-kadang muncul dalam analisis regresi yang melibatkan variabel bersarang adalah kasus di mana variabel bersarang memiliki jumlah detail yang cukup sehingga sepenuhnya menentukan variabel penjelas awal yang muncul dari - - Yaitu, variabel penjelas asli adalah fungsi dari variabel bersarang. Contoh dari ini terjadi dalam pertanyaan ini , di mana analis memiliki variabel indikator DrugAuntuk apakah obat telah diambil, dan variabel bersarang DrugA_Concuntuk konsentrasi obat. Dalam contoh ini, variabel terakhir memungkinkan nilai konsentrasi nol, yang setara dengan obat yang tidak diminum, dan DrugAjuga setara dengan DrugA_Conc != 0.

Dalam jenis kasus ini, istilah interaksi antara variabel penjelas dan variabel bersarang secara fungsional setara dengan variabel bersarang, dan dengan demikian dimungkinkan (dan biasanya diinginkan) untuk menghapus variabel penjelas awal dari model secara keseluruhan, dan cukup menggunakan variabel bersarang sendiri. Ini sah dalam hal ini, karena nilai-nilai dalam variabel bersarang menentukan nilai variabel penjelas awal. Kami telah mencatat di atas bahwa sering kali tepat untuk membuat kode variabel bertingkat NAketika kondisi mereka tidak berlaku. Jika kondisi muncul dari variabel penjelas yang merupakan indikator, dan indikator tersebut sesuai dengan penggunaan variabel bersarang, maka kejadian nested != NAtersebut setara denganexplanatory. Dalam kasus seperti itu, dimungkinkan untuk mengkode ulang variabel bersarang sehingga variabel penjelas awal tidak diperlukan dalam model sama sekali.

Perhatikan bahwa perhatian harus diberikan ketika melihat situasi ini. Bahkan dalam kasus di mana Anda menggunakan variabel penjelas awal yang merupakan variabel indikator, mungkin berguna untuk tujuan interpretatif untuk tidak menggabungkan variabel penjelas dan variabel bertingkat. Selain itu, dalam kasus di mana variabel penjelas bukan merupakan variabel indikator, biasanya akan berisi informasi yang tidak terkandung dalam variabel bersarang, sehingga tidak dapat dihapus.

Ben - Pasang kembali Monica
sumber
Seperti apa bentuk matriks desain ? Di sini Anda menyebutkan bahwa NA dapat digunakan. Tapi saya pikir perangkat lunak mengubah NA menjadi semacam kode, karena tidak menerima nilai yang hilang. XX
user158565
Karena saya belum menentukan perangkat lunak tertentu (tapi saya menggunakan sintaks R), tidak jelas bagi saya mengapa NAnilai tidak dapat diterima. Di dalam RAnda tentu saja dapat memiliki NAnilai dalam bingkai data Anda.
Ben - Pasang kembali Monica
Misalkan ada NAS dalam , bagaimana cara menghitung ? X(XX)1
user158565
2
Dengan model yang digunakan dalam jawaban ini, NAnilai - nilai terjadi dalam bingkai data untuk variabel, tetapi mereka tidak muncul dalam matriks desain , karena variabel bersarang hanya memasuki model melalui interaksi.
Ben - Reinstate Monica
Itu adalah pertanyaan awal saya: Seperti apa bentuk matriks desain? Sebenarnya, saya ingin melakukannya di SAS, tetapi nilai yang hilang tidak bisa dalam matriks desain.
user158565