楼主: 18134997492
5529 2

[程序分享] 分位数回归异常Error in rq.fit.br(x, y, tau = tau, ...) : Singular design matrix [推广有奖]

  • 0关注
  • 0粉丝

小学生

50%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
100 点
帖子
2
精华
0
在线时间
9 小时
注册时间
2022-3-23
最后登录
2023-6-27

楼主
18134997492 发表于 2022-3-23 17:53:37 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请问 R语言做 滚动窗口 分位数回归为什么会出错?Error in rq.fit.br(x, y, tau = tau, ...) : Singular design matrix;
  for (k in 1:ncol(xcut)) {
      xxcut[, k] = (xcut[, k] - min(xcut[, k]))/(max(xcut[, k]) - min(xcut[, k]))
    }
    fit       = rq(ycut ~ xxcut, tau)
    pre       = predict(fit, quantiles = tau)
    VaR[i, j] = pre[length(pre)]
  }
}
  进行到这个循环就出错了

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:singular Design matrix 分位数回归 Error

沙发
无奈子 发表于 2023-7-31 16:37:47 来自手机
18134997492 发表于 2022-3-23 17:53
请问 R语言做 滚动窗口 分位数回归为什么会出错?Error in rq.fit.br(x, y, tau = tau, ...) : Singular d ...
请问楼主解决了吗

藤椅
赵安豆 发表于 2024-6-9 20:49:05
在 R 语言中使用分位数回归(quantile regression)时,遇到 "Singular design matrix" 错误通常意味着设计矩阵 X 在数学上不是满秩的。这可能由以下原因导致:

1. **多重共线性**:自变量间存在高度相关性。
2. **变量完全相同或缺少变异性**:某些自变量对所有观测值都是常数,没有提供任何信息去区分不同观测。
3. **过多的自变量相对于样本量**:如果模型中包含太多自变量而样本数量相对较小,可能会导致设计矩阵不是满秩。

对于你的代码片段:

```r
for (k in 1:ncol(xcut)) {
   xxcut[, k] = (xcut[, k] - min(xcut[, k]))/(max(xcut[, k]) - min(xcut[, k]))
}
fit    = rq(ycut ~ xxcut, tau)
```

问题可能出在将自变量标准化的过程中。如果 `xcut` 中某些列的最小值和最大值相同(即数据没有变化),这会导致除以零的错误,即使你没直接得到除零错误,也可能导致生成常数值或 NaN 的自变量。这些无变异性或非有效值会使得设计矩阵变为奇异。

解决方案:

1. **检查并处理多重共线性**:使用 `cor()` 函数查看自变量间的相关系数,移除高度相关的变量。
2. **验证数据完整性**:确保没有列的最小值和最大值相同。如果存在这种情况,考虑该变量是否需要包含在模型中或调整数据预处理方式。
3. **减少自变量数量**:如果可能,尝试减少使用过多的自变量,特别是当样本量有限时。

另外,由于你正在做滚动窗口回归,确保每个窗口内有足够的观测值来估计分位数回归。窗口太小可能会导致设计矩阵问题。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-17 00:47