Penyebab singularitas dalam matriks untuk regresi kuantil


8

Saya melakukan regresi kuantil dalam R menggunakan paket quantreg. Dataset saya mencakup 12.328 pengamatan mulai dari 0,12 hingga 330. Titik waktu untuk data saya tidak sepenuhnya berkelanjutan; semua data masuk ke dalam satu dari beberapa lusin tempat sampah mulai dari 73 hingga 397.

Ketika saya melakukan regresi linier pada data ini menggunakan fungsi lm (), saya bisa melakukan ini dengan polinomial hingga 4:

lm(Y~poly(X,3,raw=TRUE),data=mydata)

Namun, dengan paket quantreg dan perintah rq (), saya tidak dapat menggunakan polinomial apa pun. Regresi sederhana berfungsi dengan baik:

rq(Y~X,data=mydata,tau=.15)

Tapi begitu saya masuk ke polinomial, tidak ada dadu. Ketika saya memasukkan ini:

rq(Y~poly(X,2,raw=TRUE),data=mydata,tau=.15)

Saya mendapatkan pesan kesalahan berikut:

Error in rq.fit.br(x, y, tau = tau, ...) : Singular design matrix

Saya telah membaca tentang matriks singular, dan saya pikir mungkin ada dua alasan untuk ini: (1) Saya hanya memiliki satu variabel pada setiap sumbu, atau (2) data saya binned / variabel Y tidak benar-benar kontinu.

Adakah yang bisa memberi tahu saya mengapa saya mendapatkan kesalahan ini?

PS - Ini adalah bagaimana grafik terlihat:

masukkan deskripsi gambar di sini


Apakah Anda mendapat jawaban untuk ini? Sepertinya ini karena tidak besar. dari nilai yang diulang [ stat.ethz.ch/pipermail/r-help//2013-April/351935.html]
Mohit Verma

Jawaban:


7

Saya percaya alasan itu muncul karena singular adalah alasan kedua Anda, bahwa data tersebut bined. Pengamatan duplikat (untuk nilai x tunggal, beberapa respons) meningkatkan peluang singularitas.

Saya memiliki pesan kesalahan yang sama seperti Anda dengan dataset terstruktur yang sama. Saya memiliki beberapa pengamatan untuk setiap nilai x, beberapa di antaranya identik. Saya mengatasinya dengan 'jittering' data, menambahkan sejumlah kecil noise acak ke nilai respons menggunakan rnorm (). Ini berarti bahwa meskipun ada beberapa pengamatan untuk setiap nilai x, tidak ada pengulangan yang identik dan fungsi rq () berfungsi. Selama kebisingan yang Anda tambahkan kecil, itu tidak akan mempengaruhi koefisien dan perkiraan SE dari rq secara nyata.


1

Alternatif untuk rnorm()diusulkan oleh Jack Ballard adalah menggunakan jitter()dari paket dasar.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.