Bobot dalam regresi kuantil untuk survei kompleks di R


8

Saya ingin memasukkan bobot sampel ke model regresi kuantil saya, tetapi saya tidak yakin bagaimana melakukan ini.

Saya sudah menentukan berat badan saya, yang merupakan replikasi bobot yang sudah diberikan dalam dataset survei (dihitung dalam paket survei):

w<-svrepdesign(variables=data[,1:10],repweights=data[,11:30],type="BRR", 
  combined.weights=TRUE, weights=r.weights, rho=0.5,dbname="")

dan model rq saya adalah:

rq(y~x,tau=c(.1,.2,.3,.4,.5,.6,.7,.8,.9),data=my.data))

Saya mencoba menggunakan withReplicatesfungsi, tetapi tidak berhasil. Ada saran?


1
Perangkat lunak apa yang Anda gunakan? Di Stata 13 Anda dapat menambahkan bobot survei ke regresi kuantil.
Maarten Buis

1
Pastikan apa yang Anda timbulkan adalah sesuatu yang ingin Anda marjinalkan, dan sadarilah bahwa Anda membayar harga varians yang tinggi untuk melakukan ini. Jika survei ini mengambil sampel pria yang berlebihan dan Anda ingin mengembangkan perkiraan yang tidak spesifik berdasarkan jenis kelamin, maka pembobotan adalah untuk Anda. Jika di sisi lain Anda menginginkan perkiraan bersyarat, yaitu, Anda ingin menyesuaikan seks sebagai kovariat biasa, maka pembobotan mungkin kontraproduktif.
Frank Harrell

@ FrankHarrell, jika dalam contoh Anda bobotnya adalah untuk laki-laki dan 10 untuk perempuan (kurang di bawah standar), maka perkiraan dalam setiap kelompok gender sama baiknya dengan iid, dan kesalahan standar mereka tidak menderita dari bobot yang tidak sama: untuk laki-laki, kami memiliki mana penjumlahan hanya di atas laki-laki. iwiyi/iwi=3iyi/i1=y¯
Tugas

@Alicja, pastikan Anda memiliki justifikasi teoretis untuk apa yang akan Anda lakukan. Yaitu, metode estimasi varians mana yang memberi Anda kesalahan standar yang konsisten untuk metode Anda. Untuk rqdengan data iid, kesalahan standar melibatkan perkiraan kerapatan kernel dari kerapatan kesalahan pada titik kuantil yang dipilih. Ini mungkin atau mungkin bukan kuantitas yang berarti dengan data survei yang kompleks. Dengan demikian, rqdidasarkan pada persamaan estimasi non-mulus yang melibatkan fungsi lompatan, dan teori BRR umumnya dibuat hanya untuk statistik yang lancar.
Tugas

@StasK Saya tidak berpikir itu adalah perhitungan yang relevan. Perkiraan spesifik jender (misalnya, tergantung pada jenis kelamin) adalah apa adanya dan tidak ada pembobotan yang diperlukan atau sesuai. Jika seseorang ingin "un-over-sample" satu kelompok gender, perkiraan tertimbang yang dihasilkan (yang tanpa syarat pada gender) memiliki presisi rendah, secara efektif menurunkan ukuran sampel untuk kelompok sampel berlebih.
Frank Harrell

Jawaban:


3

Saya tidak yakin @Metrics menjawab akan memberikan kesalahan standar yang benar untuk panggilan kuantreg tertimbang survei. inilah contoh dari apa yang Anda coba lakukan. Anda tentu saja memukul bug karena qrfungsi yang bersarang di dalam withReplicatesfungsi pada saat ini tidak dapat menangani beberapa tauparameter sekaligus (walaupun qrfungsi itu sendiri mungkin). panggil saja satu per satu, mungkin seperti ini :)

library(survey)
library(quantreg)

# load some fake data
data(scd)
repweights <-
    cbind(c(4,0,3,0,4,0), c(3,0,0,4,0,3),c(0,3,4,0,0,2),c(0,1,0,4,3,0))

# tack on the fake replicate weights
x <- cbind( scd , repweights )

# tack on some fake main weights
x[,9] <- c( 3 , 2 , 3 , 4 , 1 , 4 )

# name your weight columns
names( x )[ 5:9 ] <- c( paste0( 'rep' , 1:4 ) , "wgt" )

# create a replicate-weighted survey design object
scdrep <-
    svrepdesign(
        data = x ,
        type = "BRR" , 
        repweights = "rep" ,
        weights = ~wgt ,
        combined.weights = TRUE
    )

# loop through each desired value of `tau`
for ( i in seq( 0.1 , 0.9 , by = 0.1 ) ){

    print( i )

    # follow the call described here:
    # http://www.isr.umich.edu/src/smp/asda/Additional%20R%20Examples%20bootstrapping%20with%20quantile%20regression.pdf
    print( 
        withReplicates( 
            scdrep , 
            quote( 
                coef( 
                    rq( arrests ~ alive , tau = i , weights = .weights ) 
                ) 
            )
        )
    )

}

2

Penggunaan paket rqin quantreg

rq(formula, tau=.5, data, subset, weights, na.action,
method="br", model = TRUE, contrasts, ...)

di mana, bobot = vektor bobot pengamatan; jika disediakan, algoritme cocok untuk meminimalkan jumlah bobot yang dikalikan ke dalam residu absolut. Panjang bobot harus sama dengan jumlah pengamatan. Bobot harus non-negatif dan sangat disarankan agar benar-benar positif, karena bobot nol bersifat ambigu.

Harap pastikan apakah Anda memiliki nol bobot dalam pengamatan Anda.

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.