Apa itu kekurangan peringkat, dan bagaimana cara mengatasinya?

87

Menyesuaikan regresi logistik menggunakan lme4 berakhir dengan

Error in mer_finalize(ans) : Downdated X'X is not positive definite. 

Kemungkinan penyebab kesalahan ini adalah kelangkaan peringkat. Apa itu kekurangan peringkat, dan bagaimana saya harus mengatasinya?

Jack Tanner
sumber
2
Saya akan menyarankan Anda memeriksa tidak ada variabel Anda adalah konstanta (yaitu tidak ada perbedaan). Jika Anda setuju dengan skor tersebut, periksa apakah Anda memiliki variabel bernilai kompleks atau variabel tak terbatas.
tristan
3
Ini biasanya berarti bahwa satu atau lebih variabel Anda tidak bebas linear, dalam arti bahwa variabel yang bermasalah dapat dinyatakan sebagai kombinasi dari variabel lain. Paket R caretmemiliki fungsi yang disebut findLinearCombosyang akan memberi tahu Anda yang merupakan variabel bermasalah.
richiemorrisroe
2
Saya setuju dengan richiemorrisroe. Karena dikatakan X'X tidak pasti positif, saya pikir mereka menyiratkan bahwa desain X'X adalah singular dan karenanya tidak memiliki peringkat penuh. Oleh karena itu setidaknya satu dari kovariat dapat ditulis sebagai kombinasi linear yang tepat dari kovariat lainnya.
Michael Chernick

Jawaban:

123

Kekurangan peringkat dalam konteks ini mengatakan ada informasi yang tidak cukup yang terkandung dalam data Anda untuk memperkirakan model yang Anda inginkan. Berasal dari banyak asal. Saya akan berbicara di sini tentang pemodelan dalam konteks yang cukup umum, daripada regresi logistik secara eksplisit, tetapi semuanya masih berlaku untuk konteks tertentu.

Kekurangan mungkin berasal dari data yang terlalu sedikit. Secara umum, Anda tidak dapat secara unik memperkirakan n parameter dengan kurang dari n poin data. Itu tidak berarti bahwa semua yang Anda butuhkan adalah n poin, seolah-olah ada kebisingan dalam proses, Anda akan mendapatkan hasil yang agak buruk. Anda memerlukan lebih banyak data untuk membantu algoritma memilih solusi yang akan mewakili semua data, dalam arti kesalahan minimum. Inilah sebabnya kami menggunakan alat kuadrat terkecil. Berapa banyak data yang Anda butuhkan? Saya selalu ditanya pertanyaan itu di kehidupan sebelumnya, dan jawabannya lebih dari yang Anda miliki, atau sebanyak yang Anda bisa. :)

Kadang-kadang Anda mungkin memiliki lebih banyak data daripada yang Anda butuhkan, tetapi beberapa (terlalu banyak) poin direplikasi. Replikasi adalah BAIK dalam arti membantu mengurangi kebisingan, tetapi tidak membantu meningkatkan peringkat numerik. Jadi, anggaplah Anda hanya memiliki dua titik data. Anda tidak dapat memperkirakan model kuadratik melalui poin. Satu juta ulangan dari setiap titik masih tidak akan memungkinkan Anda untuk memenuhi lebih dari satu garis lurus, melalui apa yang masih hanya secara efektif sepasang poin. Intinya, replikasi tidak menambah konten informasi. Yang dilakukan adalah mengurangi kebisingan di lokasi di mana Anda sudah memiliki informasi.

Terkadang Anda memiliki informasi di tempat yang salah. Misalnya, Anda tidak dapat memasukkan model kuadratik dua dimensi jika semua yang Anda miliki adalah titik yang semuanya terletak pada garis lurus dalam dua dimensi. Artinya, misalkan Anda memiliki titik yang tersebar hanya di sepanjang garis x = y di pesawat, dan Anda ingin menyesuaikan model untuk permukaan z (x, y). Bahkan dengan zillions poin (bahkan tidak mereplikasi) Anda akan memiliki informasi yang cukup untuk memperkirakan secara cerdas lebih dari model konstan. Hebatnya, ini adalah masalah umum yang saya lihat dalam data sampel. Pengguna bertanya-tanya mengapa mereka tidak dapat membangun model yang bagus. Masalahnya dibangun ke dalam data yang telah mereka sampel.

Terkadang itu hanyalah pilihan model. Ini dapat dilihat sebagai "data tidak cukup", tetapi dari sisi lain. Anda ingin memperkirakan model yang rumit, tetapi telah memberikan data yang tidak cukup untuk melakukannya.

Dalam semua contoh di atas, jawabannya adalah untuk mendapatkan lebih banyak data, disampel secara cerdas dari tempat-tempat yang akan memberikan informasi tentang proses yang saat ini kurang Anda miliki. Desain eksperimen adalah tempat yang baik untuk memulai.

Namun, bahkan data yang bagus terkadang tidak memadai, setidaknya secara numerik. (Mengapa hal-hal buruk terjadi pada data yang baik?) Masalah di sini mungkin terkait dengan model. Itu mungkin terletak tidak lebih dari pilihan unit yang buruk. Ini mungkin berasal dari pemrograman komputer yang dilakukan untuk menyelesaikan masalah. (Ugh! Mulai dari mana?)

Pertama, mari kita bicara tentang unit dan penskalaan. Misalkan saya mencoba untuk memecahkan masalah di mana satu variabel BANYAK perintah besarnya lebih besar dari yang lain. Sebagai contoh, misalkan saya memiliki masalah yang melibatkan tinggi dan ukuran sepatu saya. Saya akan mengukur tinggi badan saya dalam nanometer. Jadi tinggi saya kira-kira 1,78 miliar (1,78e9) nanometer. Tentu saja, saya akan memilih untuk mengukur ukuran sepatu saya dalam kilo-parsec, jadi 9,14e-21 kilo-parsec. Ketika Anda melakukan pemodelan regresi, regresi linier adalah semua tentang aljabar linier, yang melibatkan kombinasi variabel linear. Masalahnya di sini adalah angka-angka ini berbeda dengan sangat banyak urutan besarnya (dan bahkan tidak unit yang sama.) Matematika akan gagal ketika sebuah program komputer mencoba untuk menambah dan mengurangi angka yang bervariasi dengan begitu banyak urutan besarnya (untuk presisi ganda) jumlah,

Caranya biasanya menggunakan unit umum, tetapi pada beberapa masalah bahkan itu adalah masalah ketika variabel bervariasi dengan terlalu banyak urutan besarnya. Yang lebih penting adalah skala angka Anda agar sama besarnya.

Selanjutnya, Anda mungkin melihat masalah dengan jumlah besar dan variasi kecil dalam angka-angka itu. Jadi, anggaplah Anda mencoba membangun model polinomial tingkat tinggi dengan data di mana input Anda semua berada dalam interval [1,2]. Mengkuadratkan, memotong dadu, dll, angka-angka yang ada di urutan 1 atau 2 tidak akan menyebabkan masalah ketika bekerja dalam aritmatika presisi ganda. Atau, tambahkan 1e12 ke setiap nomor. Secara teori, matematika akan memungkinkan ini. Yang dilakukannya hanyalah menggeser model polinomial apa pun yang kami buat di sumbu x. Bentuknya persis sama, tetapi diterjemahkan oleh 1e12 di sebelah kanan. Dalam praktiknya, aljabar linier akan gagal total karena masalah kekurangan peringkat. Anda tidak melakukan apa pun selain menerjemahkan data, tetapi tiba-tiba Anda mulai melihat matriks tunggal muncul.

Biasanya komentar yang dibuat akan menjadi saran untuk "pusatkan dan skala data Anda". Secara efektif ini mengatakan untuk menggeser dan skala data sehingga memiliki rata-rata mendekati nol dan standar deviasi yang kira-kira 1. Itu akan sangat meningkatkan pengkondisian sebagian besar model polinomial, mengurangi masalah kekurangan peringkat.

Alasan lain untuk kekurangan peringkat ada. Dalam beberapa kasus itu dibangun langsung ke dalam model. Sebagai contoh, misalkan saya memberikan turunan dari suatu fungsi, dapatkah saya menyimpulkan fungsi itu sendiri? Tentu saja tidak, karena integrasi melibatkan konstanta integrasi, parameter yang tidak diketahui yang umumnya disimpulkan oleh pengetahuan tentang nilai fungsi di beberapa titik. Bahkan, ini kadang-kadang muncul dalam masalah estimasi juga, di mana singularitas suatu sistem berasal dari sifat dasar sistem yang diteliti.

Saya tentu saja meninggalkan beberapa dari banyak alasan untuk kekurangan peringkat dalam sistem linear, dan saya sudah terlalu lama mengobrol. Mudah-mudahan saya berhasil menjelaskan hal-hal yang saya bahas secara sederhana, dan cara untuk mengatasi masalah tersebut.


sumber
42

Untuk definisi peringkat matriks, Anda dapat merujuk ke buku teks yang bagus tentang aljabar linier, atau lihat halaman Wikipedia .

n×halXnhalhal×halXTX(XTX)-1

XXnXTX

(XTX)-1

X

gui11aume
sumber
23

jawaban user974 luar biasa dari perspektif pemodelan dan jawaban gui11aume fantastis dari perspektif matematika. Saya ingin memperbaiki mantan jawaban ketat dari perspektif modeling campuran: secara khusus umum campuran modeling (GLMM) perspektif. Seperti yang Anda lihat, Anda telah mereferensikan fungsi R mer_finalizeyang ada dalam lme4paket fantastis . Anda juga mengatakan bahwa Anda cocok dengan model regresi logistik.

Ada banyak masalah yang muncul dengan jenis algoritma numerik seperti itu. Masalah struktur matriks dari model matriks efek tetap tentu patut dipertimbangkan, seperti yang disinggung oleh pengguna. Tapi ini sangat mudah untuk dinilai, cukup hitung argumen model.matrixAnda formula=dan data=dalam model dan ambil determinannya menggunakan detfungsi. Efek acak, bagaimanapun, sangat menyulitkan interpretasi, estimasi numerik rutin, dan kesimpulan tentang efek tetap (apa yang biasanya Anda pikirkan sebagai koefisien regresi dalam model regresi "reguler").

Misalkan dalam kasus paling sederhana Anda hanya dilengkapi model penyadapan acak. Maka pada dasarnya Anda mempertimbangkan akan ada ribuan sumber heterogenitas yang tidak terukur yang dipertahankan konstan dalam tindakan berulang dalam kelompok. Anda memperkirakan intersepsi "besar", tetapi memperhitungkan heterogenitas dengan mengasumsikan bahwa intersep spesifik-cluster memiliki beberapa distribusi normal rata-rata. Penyadapan diperkirakan secara iteratif dan digunakan untuk memperbarui efek model sampai konvergensi tercapai (kemungkinan log - atau perkiraannya - dimaksimalkan). Model campuran sangat mudah untuk dibayangkan, tetapi secara matematis kemungkinannya sangat kompleks dan rentan terhadap masalah singularitas, minimum lokal, dan titik batas (rasio odds = 0 atau tak terhingga). Model campuran tidak memiliki kemungkinan kuadratik seperti GLM kanonik.

Sayangnya, Yang Mulia dan Ripley tidak berinvestasi banyak dalam diagnosa untuk konvergen-gagal seperti milik Anda. Praktis mustahil untuk berspekulasi di banyak sekali kemungkinan kesalahan yang mengarah pada pesan seperti itu. Pertimbangkan jenis diagnostik yang saya gunakan di bawah:

  1. Berapa banyak pengamatan yang ada per cluster?
  2. Apa hasil dari fit model marginal menggunakan GEE?
  3. Apa ICC cluster? Apakah heterogenitas kluster dalam dekat dengan heterogenitas klaster?
  4. Sesuaikan penduga 1 langkah dan lihat perkiraan efek acak. Apakah kira-kira normal?
  5. Paskan model campuran Bayesian dan lihat distribusi posterior untuk efek tetap. Apakah mereka tampaknya memiliki distribusi normal?
  6. Lihatlah plot panel kluster yang menunjukkan paparan atau regresi minat terhadap hasil menggunakan yang lebih halus. Apakah tren konsisten dan jelas atau apakah ada banyak cara yang memungkinkan tren tersebut dapat dijelaskan? (mis. apa "risiko" di antara subjek yang tidak terpapar, apakah paparannya tampak protektif atau berbahaya?)
  7. Apakah mungkin untuk membatasi sampel hanya pada subyek yang memiliki jumlah pengamatan per orang yang cukup (katakanlah, n = 5 atau n = 10) untuk memperkirakan efek pengobatan "ideal"?

Sebagai alternatif, Anda dapat mempertimbangkan beberapa pendekatan pemodelan yang berbeda:

  1. Apakah ada beberapa cluster atau titik waktu yang cukup yang dapat Anda gunakan efek tetap (seperti indikator grup atau efek waktu polinomial) untuk memodelkan level cluster / heterogenitas autoregresif?
  2. Apakah model marginal sesuai (menggunakan GEE untuk meningkatkan efisiensi estimasi kesalahan standar, tetapi masih menggunakan efek tetap saja)
  3. Bisakah model Bayesian dengan informasi informatif tentang efek acak meningkatkan estimasi?
AdamO
sumber
2
+1: Terima kasih telah menjawab bagian "campuran" dari pertanyaan awal. Posting ini dengan baik melengkapi seperangkat jawaban yang sudah bagus.
whuber