繁体   English   中英

使用 R 中的几个因变量进行分位数回归

[英]Conduct quantile regression with several dependent variables in R

我有兴趣在 R 中进行多元回归,查看分组变量(2 个级别)对几个因变量的影响。 但是,由于我的数据是非正态的并且两组没有同质方差,我希望使用分位数回归。 我正在使用 quantreg 工具箱中的 rq function 来执行此操作。

我的代码如下

 # Generate some fake data
   DV = matrix(rnorm(40*5),ncol=5) #construct matrix for dependent variables

   IV =  matrix(rep(1:2,20)) #matrix for grouping factor

   library(quantreg)

   model.q = rq(DV~IV,
             tau = 0.5)

运行时我收到以下错误消息:

Error in y - x %*% z$coef : non-conformable arrays
In addition: Warning message:
In rq.fit.br(x, y, tau = tau, ...) : Solution may be nonunique

我相信这是因为我有几个 DV,因为当我尝试使用一列 DV 时,model 工作正常。 有没有一种特定的方式我应该格式化我的数据? 或者也许还有另一个 function 我可以使用?

谢谢!

如果您只想运行多个回归,每个回归具有相同的自变量集,但具有不同的因变量,您可以编写 function,然后将其应用于DV矩阵的所有列并将模型保存在列表中:

reg <- function(col_number) {
  model.q <- rq(DV[, col_number] ~ IV, tau = 0.5)
}
model_list <- lapply(1:ncol(DV), reg)

但是,正如评论中指出的那样,您可能想要一个多元 model 来说明结果的相关性 - 但我认为rq方法不合适

如果您有多个响应,您最可能需要的是:

DV = matrix(rnorm(40*5),ncol=5) #construct matrix for dependent variables
IV =  matrix(rep(1:2,20)) #matrix for grouping factor
library(quantreg)
rqs.fit(x=IV, y=DV, tau=0.5, tol = 0.0001)

不幸的是,关于它如何工作的文档真的不多。如果我找到它,我可以更新

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM