You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

quantreg包summary.rq能否指定method?如何输出fn方法结果

分位数回归summary输出fn方法结果的解决办法

问题背景

用quantreg包的rq()函数做分位数回归时,用method="br"拟合会弹出“solutions may be nonunique”警告;换成method="fn"拟合后,fit$coefficients是fn方法的结果,但summary(fit)输出的系数却和br方法的一致,还会触发同样的警告,需要让summary直接输出fn方法的求解结果。

原因

默认情况下,summary.rq()函数在计算系数的置信区间和统计量时,会自动调用method="br"重新拟合模型,这就导致summary结果和fit$coefficients不一致,还会触发br方法的警告。

解决方法

调用summary()时,显式指定method="fn",同时选择合适的标准误计算方法(比如se="nid"),强制summary使用fn方法的结果生成统计输出。

完整代码示例

library(quantreg)

# 生成示例数据
set.seed(123)
n <- 100
x1 <- runif(100)
x2 <- sample(0:2, n, replace=TRUE)
x3 <- sample(c(0, 1), n, replace=TRUE)
y <- 10 + 25*x1 + 14*x2 + rnorm(n)
dat <- data.frame(y, x1, x2, x3)

# 用fn方法拟合分位数回归模型
fit <- rq(y ~ x1 + x2 + x3, method="fn", data=dat, tau=0.5)

# 查看fn方法的系数结果
fit$coefficients
# (Intercept)          x1          x2          x3 
#   9.4021951  25.1791775  14.1790548   0.2947553 

# 指定summary使用fn方法计算统计量
summary(fit, method="fn", se="nid")

输出结果说明

执行上述summary命令后,输出的系数会和fit$coefficients完全一致,且不会再出现“solutions may be nonunique”的警告。其中:

  • method="fn":指定summary使用fn方法的拟合结果,避免重新调用br方法
  • se="nid":采用“渐近正态分布”方法计算标准误,也可以根据需求换成"boot"(自助法)等其他标准误计算方式

内容的提问来源于stack exchange,提问作者nightstand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 00:42:39