Gewichte in der Quantilregression für komplexe Erhebungen in R.


8

Ich möchte Stichprobengewichte in mein Quantil-Regressionsmodell aufnehmen, bin mir aber nicht sicher, wie ich das machen soll.

Ich habe bereits mein Gewicht definiert. Hierbei handelt es sich um replizierte Gewichte, die bereits im Umfragedatensatz angegeben sind (berechnet im Umfragepaket):

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

und mein rq modell ist:

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

Ich habe versucht, die withReplicatesFunktion zu verwenden , aber ohne Erfolg. Irgendwelche Vorschläge?


1
Welche Software verwenden Sie? In Stata 13 können Sie der Quantilregression Umfragegewichte hinzufügen.
Maarten Buis

1
Stellen Sie sicher, dass Sie das, worauf Sie sich konzentrieren, marginalisieren möchten, und stellen Sie fest, dass Sie dafür einen hohen Varianzpreis zahlen. Wenn die Umfrage Männer überbewertet hat und Sie eine nicht geschlechtsspezifische Schätzung erstellen möchten, ist die Gewichtung genau das Richtige für Sie. Wenn Sie andererseits bedingte Schätzungen wünschen, dh das Geschlecht als gewöhnliche Kovariate anpassen möchten, kann die Gewichtung kontraproduktiv sein.
Frank Harrell

@FrankHarrell, wenn in Ihrem Beispiel die Gewichte 3 für Männer und 10 für (unterabgetastete) Frauen sind, dann sind die Schätzungen innerhalb jeder Geschlechtsgruppe so gut wie iid, und ihre Standardfehler leiden nicht unter ungleichen Gewichten: Für Männer haben wir wobei die Summierung nur über Männern liegt. iwiyi/iwi=3iyi/i1=y¯
StasK

@Alicja, stellen Sie sicher, dass Sie eine theoretische Begründung für das haben, was Sie tun werden. Das heißt, mit welcher Varianzschätzungsmethode erhalten Sie konsistente Standardfehler für Ihre Methode. Bei rqiid-Daten beinhalten die Standardfehler eine Kerndichteschätzung der Fehlerdichte an einem ausgewählten Quantilpunkt. Dies kann eine aussagekräftige Größe mit komplexen Umfragedaten sein oder auch nicht. Als solches rqbasiert es auf nicht glatten Schätzungsgleichungen, die Sprungfunktionen beinhalten, und die BRR-Theorie wird im Allgemeinen nur für glatte Statistiken aufgestellt.
StasK

@StasK Ich denke nicht, dass dies die relevante Berechnung ist. Geschlechtsspezifische Schätzungen (z. B. abhängig vom Geschlecht) sind das, was sie sind, und es ist keine Gewichtung erforderlich oder angemessen. Wenn man eine Geschlechtergruppe "überstichproben" möchte, ist die resultierende gewichtete Schätzung (die keine Bedingungen für das Geschlecht hat) von geringer Genauigkeit, wodurch die Stichprobengröße für die überstichprobenartige Gruppe effektiv verringert wird.
Frank Harrell

Antworten:


3

Ich bin nicht sicher, ob die @ Metrics-Antwort die richtigen Standardfehler für einen umfragegewichteten Quantreg-Aufruf liefert. Hier ist ein Beispiel dafür, was Sie versuchen zu tun. Sie stoßen mit Sicherheit auf einen Fehler, da die qrin der withReplicatesFunktion zu diesem Zeitpunkt verschachtelte Funktion nicht mehrere tauParameter gleichzeitig verarbeiten kann (auch wenn die qrFunktion für sich allein möglicherweise geeignet ist). ruf einfach einen nach dem anderen an, vielleicht so :)

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

Die Verwendung rqin Quantreg- Paket

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

wobei Gewichte = Vektor der Beobachtungsgewichte; Wenn angegeben, passt der Algorithmus, um die Summe der Gewichte zu multiplizieren, die mit den absoluten Residuen multipliziert werden. Die Länge der Gewichte muss der Anzahl der Beobachtungen entsprechen. Die Gewichte dürfen nicht negativ sein und es wird dringend empfohlen, dass sie streng positiv sind, da Nullgewichte nicht eindeutig sind.

Bitte stellen Sie sicher, dass Ihre Beobachtungen kein Gewicht haben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.