R中复杂调查的分位数回归权重

机器算法验证 r 分位数回归
2022-03-23 07:54:38

我想将样本权重包含在我的分位数回归模型中,但我不确定如何执行此操作。

我已经定义了我的权重,这是调查数据集中已经给出的复制权重(在调查包中计算):

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

我的 rq 模型是:

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

我尝试使用withReplicates函数,但没有成功。有什么建议么?

2个回答

我不确定@Metrics 的答案是否会为调查加权 quantreg 调用提供正确的标准误差。这是您尝试执行的操作的示例。您肯定遇到了错误,因为此时qr嵌套在withReplicates函数中的函数无法tau一次处理多个参数(即使该qr函数本身可能)。一次只打一个电话,也许是这样:)

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 ) 
                ) 
            )
        )
    )

}

quantregrq的使用

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

其中,权重=观察权重向量;如果提供,该算法适合最小化乘以绝对残差的权重总和。权重的长度必须与观察次数相同。权重必须是非负的,并且强烈建议它们严格为正,因为零权重是不明确的。

请确保您的观察中权重是否为零。