问题标签 [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 回答
3405 浏览

matlab - 在 Matlab 中使用 linprog 进行分位数回归

我正在尝试通过 Matlab 中的简单设置来实现分位数回归过程。此页面包含对作为线性程序的分位数回归的描述,并显示了适当的矩阵和向量。我试图在 Matlab 中实现它,但我没有得到正确的bhat向量的最后一个元素。它应该在 1 左右,但我得到的值非常低(<1e-10)。使用我拥有的另一种算法,我得到的值为 1.0675。我哪里做错了?我猜Ab或者f错了。

我试过玩optimset,但我认为这不是问题。我想我在从数学到代码时犯了一个转换错误,我只是看不到在哪里。

0 投票
1 回答
374 浏览

r - 在分位数估计之后构建累积分布函数

我有这个包含两列(Y 和 X)的数据框。

使用quantreg包我可以估计以 X 为条件的 Y 的分位数。

我无法以 X 为条件建立 Y 的累积密度函数。有人可以帮助我吗?

估计分位数:

在此之后,如何生成累积分布函数 (Fx)?

这是我的data.frame:

0 投票
1 回答
480 浏览

r - R中的快速非负分位数和Huber回归

我正在寻找一种在 R 中进行非负分位数和 Huber 回归的快速方法(即所有系数均 > 0 的约束)。我尝试使用CVXR用于分位数和 Huber 回归的quantreg包以及用于分位数回归的包,但是当我使用非负约束时,CVXR它非常慢并且quantreg看起来有问题。有人知道 R 中有一个好的快速解决方案吗,例如使用Rcplex包或R gurobi API,从而使用更快的 CPLEX 或 gurobi 优化器?

请注意,我需要运行低于 80 000 次的问题大小,因此我只需要y在每次迭代中更新向量,但仍然使用相同的预测矩阵X。从这个意义上说,我觉得CVXR我现在必须obj <- sum(quant_loss(y - X %*% beta, tau=0.01)); prob <- Problem(Minimize(obj), constraints = list(beta >= 0))在每次迭代中做效率低下,而问题实际上保持不变,而我想要更新的只是y. 有什么想法可以更好/更快地完成这一切吗?

最小的例子:

使用 CVXR 的非负分位数回归:

非负 Huber 回归的语法相同,但会使用

quantreg使用包的非负分位数回归:

0 投票
1 回答
1610 浏览

r - R - 设置边距不起作用

我使用quantreg包估计了一个线性回归模型。我现在想使用以下plot()函数以图形方式显示结果:

结果如下(我只能链接图像):

例子

正如您在最左边看到的那样,y 轴的描述被截断了。然后我尝试调整边距参数,但它似乎对情节的影响为零。例如:

当我现在运行上述代码时,它会产生完全相同的图。另一方面,当绘制简单数据(而不是summary()分位数回归rq())时,边距会被调整,并且绘图会显示新的边距向量。

我会很感激这方面的帮助。谢谢你。

0 投票
0 回答
661 浏览

r - R中rqPen和quantreg包的区别

我正在为 R 中的波士顿住房数据构建分位数回归模型 + LASSO 惩罚。我发现了 2 个可以构建这种模型的包:rqPen 和 quantreg。rqPen 实现了一个交叉验证过程来调整 LASSO 参数 lambda,所以我决定使用这个。我考虑了算法自动选择的 100 个不同的 lambda 值和 10 个折叠:

CV 的结果是最小绝对误差为 4.2,λ 值为 0.46。该模型仅考虑预测变量“zn”、“tax”、“b”和“lstat”,并将与其余预测变量相关的系数发送为零。

我决定使用另一个包 quantreg 包构建相同的模型,但保持 lambda 值。我预计这两个包中的模型不完全相等,但在模型中包含的预测变量方面相似。

我发现在这个模型中所有的预测变量都被使用了,所以它与第一个完全不同。

难道我做错了什么?rqPen 包在计算上是否失败?

0 投票
0 回答
203 浏览

r - 在不同长度的数据集上使用 predict()

我通过应用 rq 估计了之前由 OLS 估计的线性回归模型的 0.1 条件分位数。原始数据由 8760 行组成(一年的每小时数据)。

我现在想使用估计的模型来预测更小的时间跨度:

但它会导致以下警告消息:

我得到的结果包含 8760 行。似乎它只是使用旧数据。

这里到底是什么问题,有没有办法解决这个问题?

编辑:当我使用具有相同行数的新数据时,它工作得很好。

0 投票
1 回答
1726 浏览

python - QuantileRegression ValueError:操作数无法与形状一起广播

我正在尝试使用 Python 中的分位数回归来预测我的目标变量。

我正在考虑用于训练和验证的数据来自 2015 年 10 月 -2017 年 12 月 31 日期间。

现在模型已经开发,我试图预测 2018 年 1 月的值,这会引发以下错误:

ValueError:操作数无法与形状一起广播 (34,) (33,)

如果我检查,错误来自statmodels中的分位数regression.py文件。

我看过类似的关于堆栈溢出的帖子,建议检查目标变量的数据类型是否为数字。这是变量的 dtype:

ASBCU_SUM:int64

月份:类别

年份:类别

WeekofMonth:类别

isHoliday: int64

天数:int32

PCOP_SUM:int64

PCOP_CS:int64

PCOP_LS:int64

PCOP_IFS:int64

PCOP_LSS:int64

PCOP_FS:int64

PCOP_FSS:int64

DayOfWeek_3:float64

DayOfWeek_2:float64

DayOfWeek_5:float64

DayOfWeek_7:float64

DayOfWeek_4:float64

DayOfWeek_6:float64

使用 2015-2017 年数据开发模型时,数据类型也相同。

我真的很感激任何帮助..

0 投票
1 回答
163 浏览

stata - 如何预测回归变量样本均值的因变量?

我正在使用Stata中的几种回归(概率,logit,分位数回归,......)我想知道如何在回归者的样本均值处预测因变量。这对于 OLS 来说很简单,但看不到如何为分位数回归获取它。

0 投票
1 回答
343 浏览

r - 从二阶分位数回归中获取拟合值

我确信这很容易解决,但我有一个关于分位数回归的问题。

假设我有一个遵循二阶多项式曲线趋势的数据框,并且我构建了一个通过数据的不同部分拟合的分位数回归:

我可以通过“predict.rq”函数获得最大 y 值,您可以在下面的图中看到。

从上面的代码获得的情节

所以我的问题是如何获得与每个分位数的最大 y 值(即斜率中断)相对应的 x 值?

0 投票
1 回答
2774 浏览

python - 来自 scikit-garden 的分位数随机森林的预测速度非常慢

我已经开始使用scikit-garden包中的分位数随机森林 (QRF)。以前我使用RandomForestRegresserfrom创建常规随机森林sklearn.ensemble

看起来 QRF 的速度与具有小数据集大小的常规 RF 相当,但是随着数据大小的增加,QRF 在做出预测时变得比 RF 慢得多。

这是预期的吗?如果是这样,有人可以解释为什么做出这些预测需要这么长时间和/或就如何更及时地获得分位数预测提供任何建议。

请参阅下面的玩具示例,我在其中测试各种数据集大小的训练和预测时间。

这是输出: RF 和 QRF 训练和预测的时间比较