问题标签 [quantile-regression]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
58 浏览

python - 如何在计算相应分位数的熊猫数据框中创建分位数列

我有一个由客户 ID 索引的数据框 df。并包括: df=['Customer ID', 'Sales' ,'Product code' ,'Price']]:https ://i.stack.imgur.com/vP8Gy.png

我想创建一个分位数列,它为每个客户 id 计算(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9,0.95,1) 价格列范围内的相应分位数

df=['Customer ID', 'Sales','Product code', 'Price', 'Quantiles Price']

所以最终的 df 将包含一个新列,称为每个相应客户 ID 的价格分位数:

任何人都可以建议我可以使用什么功能来获得这个?

先感谢您。

0 投票
0 回答
35 浏览

catboost - 具有单调约束的分位数回归

尝试对某些功能使用带有单调约束的分位数回归时,我在 CatBoost 中遇到了问题。

分位数损失使用“Exact”作为叶子估计方法,但单调约束不能与此方法一起使用。

我尝试使用“梯度”方法,但它似乎在分位数回归中效果不佳(即使没有单调约束)。

我如何将分位数回归与单调约束结合起来?

0 投票
0 回答
20 浏览

r - 执行分位数回归时 R 中 quantreg 输出的尴尬行为

我正在对生存数据执行审查分位数回归,以解释我的队列中某些百分位数的生存时间差异。我正在使用quantregCRAN 的软件包。

这是一个可作为可重现示例的代码

请注意,在我的df数据集中,您有一个时间变量 ( months)、一个事件变量 ( event) 和一个分组变量 ( sex)。我随机添加了一些 NA 值来模拟观测的真实数据。

如您所见,fit存储crq函数的结果。结果如下:

这些NA可能与事件在我的数据库中非常罕见有关,因此两组的总生存率可能高于 20%(即 0.2 个百分点)。但是,我对较低的百分位数感兴趣(应该报告非 NA 值)。当我运行summary(fit)命令时,结果如下:

我没有尝试过任何可以帮助我的代码工作的方法。请注意,我尝试在 crq 的调用中指定tau,tausgrid属性,但这些似乎不会影响输出(它一直在发布“NA”表)。

谁能帮我?

0 投票
0 回答
38 浏览

r - R中的二次分位数回归

有谁知道如何在连续变量上拟合二次(或更高阶)模型并在 R 中对其进行分位数回归?此外,您如何判断哪个级别的 tau 更适合数据?

“den”的值是鱼的密度 (count/m^3) 和盐度 = 盐度 (ppt)。完整的数据集是 1500 个观测值,我想使用盐度来预测鱼的密度。包含所有数据的图看起来是半二次的,但我想使用分位数回归将其与其他拟合进行比较。我只是不知道如何使模型中的关系非线性。是den~盐度+盐度^2吗?

0 投票
0 回答
141 浏览

python - 为什么在 sklearn.linear_model.QuantileRegressor 中拟合模型需要更长的时间,然后是 R 模型实现?

首先我使用 R 实现分位数回归,然后我使用具有相同分位数(tau)和 alpha=0.0(正则化常数)的 Sklearn 实现。我得到相同的公式!我尝试了许多“求解器”,但运行时间仍然比 R 长得多。

运行时间:Scikit-learn 模型与 R 模型

例如:

示例:40672 个样本

在 R 模型中,默认方法是“br”,而在 Sklearn 中是“套索”。尽管我将 R 实现的方法更改为“套索”,但运行时间更短。

不同的方法

导入并创建数据:

绘制数据的函数(有或没有线):

阴谋

获取公式的函数:

拟合数据并测试运行时间和公式:

R_model
Sklearn_model

为什么在 sklearn 和 R 模型实现中拟合模型需要更长的时间?

0 投票
2 回答
224 浏览

r - 如何使用 R 中的多重插补数据执行引导以估计和推断分位数回归?

我正在尝试使用在 R 中的多重插补数据上运行的分位数回归模型手动汇集结果mice。我使用引导程序来获得模型项的 95% CI 和 P 值,其中模型参数及其标准误差是在采样一定数量的行后获得的,该行数等于我的数据集中唯一的参与者数量. 对于m个估算数据集的每一个,该过程重复 500 次。然后,作为最后一步,我根据 Rubin 的规则 (1987)(参见例如https://bookdown.org/mwheymans/bookmi/rubins-rules . html ). 为了加快速度,我使用foreach将分析拆分到多个处理器内核for上并循环遍历m个估算数据集。

但是,合并结果的部分似乎存在缺陷。当我查看汇总结果时,我观察到 P 值与 95% CI 不一致(例如,当 0 包含在 95% CI 中时,P < 0.05)。

为了说明这个问题,我做了一个可重复的例子,使用这些公开可用的数据:https ://archive.ics.uci.edu/ml/machine-learning-databases/00519/heart_failure_clinical_records_dataset.csv

因为这个数据集中没有缺失数据,所以我自己介绍一下,对数据进行插补(m = 10个插补数据集,20次迭代)。我set.seed用于重现性。

请注意,我在此示例中使用lm而不是。quantreg::rq

为了进一步加快速度,我在这里使用 OLS 而不是分位数回归并并行化该过程。

作为最后一步,我根据 Rubin 的规则汇总结果。

显然,下图的P值不符合95% CI(因为0包含在CI中,所以P值应该≥0.05)。


编辑(2021 年 12 月 29 日)

正如@Gerko Vink 在他的回答中指出的那样,多重插补和引导都会导致方差。插补引起的方差由鲁宾规则处理,引导方差不是。不幸mice::pool的是,不适用于quantreg::rq.

我知道基于本文所示的基于百分位的简单方法构建引导 CI ,但我倾向于认为这不是正确的方法。

有谁知道在使用时如何适当地处理引导引起的额外差异rq


编辑(2021 年 12 月 30 日)

受最近这篇文章的启发,我决定不再走自举的道路,而是从每个估算的数据集中手动提取点估计和方差,并使用鲁宾规则将它们汇集起来。我已将这种方法发布为下面的答案。不过,任何关于如何适当处理使用时引导引起的额外差异的意见rq仍然非常受欢迎!

0 投票
0 回答
38 浏览

r - 如何使用分位数回归模型的置信区间绘制第 10、第 50 和第 90 分位数

我有兴趣将分位数回归模型拟合到具有二元结果响应的数据,因此,我使用GJRMR 中的包。在拟合模型后,我尝试为每个预测变量绘制带有多个分位数的置信区间,但是,我不能吨。在这里,我包含了一个来自包本身的示例。另外,我怎么能找到每个拟合模型的 AIC?给定示例中的 AIC 适用于两个拟合方程。

0 投票
0 回答
14 浏览

r - RQPD 对象的集群标准错误

如何对 rqpd 对象的标准错误进行聚类?该功能summary.rqpd似乎不允许“集群”选项。

最小工作示例:

0 投票
1 回答
30 浏览

r - 如何使用分位数回归和 R 中的自举标准误差确定 t stat 的自由度

我正在使用 R 使用自举标准误差进行分位数回归,以测试一个变量在分布的第 5、第 50 和第 95 个百分位数是否高于第二个变量。输出不包括 t stat 的自由度。我该如何计算?

0 投票
1 回答
33 浏览

r - 使用条件分位数回归对考试成绩进行排名的 SAS 代码

我对 R 和一般编码相对较新,我一直在尝试复制此PDF中提供的示例(https://support.sas.com/resources/papers/proceedings17/SAS0525-2017.pdf)关于分位数回归在 SAS 中。该示例可在第 14 至 17 页上找到,并应用于一个简单的数据集,以确定学生在控制年龄时的表现百分位数。

我从未使用过 SAS 并尝试使用 quantreg 包在 R 中复制示例,但到目前为止我还无法获得回归分位数级别的结果。(我不在乎图表)

是否有人可以提供将 SAS 代码转换为 R 的示例?

编辑:我很抱歉在没有示例的情况下发布此内容,因为卡梅伦先生向我指出我的问题的格式之前不够充分。我希望这现在更合适了。感谢您的帮助!

这是我所做的一个例子:

最后一行代码为我产生了一个错误。我现在的问题是如何使用 quantreq 来获取各个学生 ID 的分数等级。我可以对分数本身进行回归,但我不知道如何像示例中那样对每个人进行回归。