问题标签 [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 投票
0 回答
3356 浏览

python - AttributeError:“numpy.ndarray”对象没有属性“index”

我正在研究一个分位数回归神经网络 (QRNN),它可以作为风力发电的预测器以及虚假数据注入攻击的检测器。

我几乎完成了它,但我试图通过取中位数分位数(tau = 0.5)并使用 RMSE 将其与实际风能进行比较来量化它的准确性(同时还试图绘制实际风能与中位数分位数的关系) . 但是,我一直遇到问题。

因为 q_hat(预测的中位数)是一个 numpy 数组,而 y_test(实际风力测试数据)是一个 pandas 数据框,所以我必须将 y_test 转换为 numpy,但它给了我这个错误:

“AttributeError:‘numpy.ndarray’对象没有属性‘index’”

这是此代码所需的 pinball_loss.py 文件:

这是我在 Jupyter Notebook 中的代码(为方便起见,我用虚线分隔单元格):

上面的最后一个单元格是我收到以下错误的地方:

这是具有多个分位数的 QRNN 与实际风力(红线)的样子

当我尝试使用 RMSE 绘制中位数分位数与实际风力功率(红线)时,出现上述“属性误差”后会发生以下情况

我还尝试使用我对建立 tau 的单元格和最后一个单元格的代码进行编辑的代码执行以下操作:

我得到以下情节: 这是当我做 tau = np.arange(0.49, 0.51, 0.01) 和 N_tau = len(tau)

虽然这看起来是正确的并且几乎是我想要的,但还有另一个问题!每次我重新启动整个内核时,RMSE 都会不断变化(每次都会变小一点,即从 15,000 到 14950 到 14830 等)。

我非常接近完成这个,我只想通过比较中位数与实际风力来验证我的 QRNN 的准确性,但这部分(这可能是一个简单的修复)给我带来了很多麻烦. 请帮忙!

0 投票
1 回答
107 浏览

python - python中的单位根分位数自回归

我正在使用 QAR 模型并在 Python 中搜索文档或代码示例。我正在专门寻找 Koenker 和 Xiao (2004) 方法的 Python 实现。

0 投票
1 回答
369 浏览

r - R分位数回归单调三次样条

我正在使用一个自然三次样条对某些数据运行分位数回归模型,该模型需要单调递减(因为它不能在任何点物理增加)。首先,我使用包中的ns()函数splines来实现这一点,但很快发现它不会这样做(不足为奇)。所以我mSpline从包splines2中找到了应该适合单调样条的函数,但它也不起作用。下面是这两个函数的示例以及它们如何在mtcars.

如何通过我的方法或其他方法实现获得单调递减样条曲线的目标?

如果可以将其他变量添加到模型中,则可以加分,这些变量不是样条曲线。

0 投票
1 回答
1386 浏览

plot - 使用 xtqreg Stata 命令绘制分位数回归?

有没有办法专门用xtqreg Stata 包绘制分位数回归线?xtqreg计算具有固定效应的分位数回归: https ://ideas.repec.org/c/boc/bocode/s458523.html

0 投票
1 回答
1719 浏览

python-2.7 - python中的分位数回归

我在 python (python 2.7) 中有一个数据集。我想找到这个数据集的分位数回归。任何人都可以帮我解决它吗?谢谢你。这是我的代码:

0 投票
1 回答
502 浏览

r - R Quantreg:具有分类调查数据的奇点

对于我的学士论文,我正在尝试对来自调查的恒定总和数据应用线性中值回归模型(参见 A.Blass (2008) 的公式)。这是重新创建 A. Blass 等人 (2008) 提出的概率诱导方法的尝试 -使用诱导选择概率来估计随机效用模型:电力可靠性的偏好

我的因变量是常数总和分配的对数赔率转换。使用以下公式计算:

我的自变量是交货成本最小订单数量交货窗口,每个分类变量都有级别 0、1、2 和 3。这里,级别 0 表示无选项。

数据快照

我尝试运行以下分位数回归(使用 R 的 quantreg 包):

但是,我遇到了以下表明奇点的错误:

我进行了线性回归并应用了 R 的别名函数以进行进一步调查。这告诉我三个完美多重共线性的案例:

  • 最小订货量 3 = 交货成本 1 + 交货成本 2 + 交货成本 3 - 最小订货量 1 - 最小订货量 2
  • 交付窗口 3 = 交付成本 1 + 交付成本 2 + 交付成本 3 - 交付窗口 1 - 交付窗口 2
  • NoneOpt = 拦截 - 交付成本 1 - 交付成本 2 - 交付成本 3

事后看来,这些案例都是有道理的。当 R 二分分类变量时,您通过构造得到这些结果,交付成本 1 + 交付成本 2 + 交付成本 3 = 1 和最小订货量 1 + 最小订货量 2 + 最小订货量 3 = 1。重写给出了第一个公式。

它看起来像一个经典的假陷阱。为了解决这个问题,我尝试手动对数据进行二分法并使用以下公式:

我现在得到以下信息,而不是错误消息:

使用汇总功能时:

有人熟悉这个问题吗?我正在寻找替代解决方案。也许我在使用 rq() 函数时出错了,或者数据可能被歪曲了。

我很感谢您的任何意见,在此先感谢您。

可重现的例子

示例数据+代码链接:GitHub

0 投票
0 回答
438 浏览

python - ValueError:操作数无法与形状 (11,) (​​10,) 与分位数回归一起广播

我正在尝试使用 python statsmodels 包执行分位数回归。

我有 5 个预测变量和 6 个虚拟变量,应该用于预测变量 FF159。

问题是当我不使用其中一个虚拟变量和我的预测变量时,该模型工作得非常好。但是当使用所有 5 个预测变量和 6 个虚拟变量时,它会在标题中引发错误。

c1,c2,c3,c4,c5 和 c6 是我的虚拟变量。

此代码返回以下结果:(我只使用了 6 个虚拟变量中的 5 个)

结果:

在此处输入图像描述

在预测变量旁边使用 6 个虚拟变量,python 向我抛出了这个错误:

在此处输入图像描述

我在一些线程中看到它可能是多重共线性问题,但事实并非如此。下图显示了我的相关矩阵。

在此处输入图像描述

0 投票
0 回答
62 浏览

python - Statsmodel 奇怪的行为

我在 python 中使用 statsmodels 来执行分位数回归。我正在运行分位数 99 和分位数 1 来查看我的分布的极端分位数。

输出是

也就是说,百分位数 1、目标和百分位数 99 的分布并没有太大的不同。这是预期的还是我错过了什么?

0 投票
1 回答
607 浏览

python - python statsmodels:输出“formula.api”与“regression.quantile_regression”的差异

对于statsmodelsusing的模块python,我想知道使用statsmodels.formula.apivs调用相同程序的差异是如何产生的statsmodels.regression.quantile_regression。特别是,我获得了参数估计的差异。

附上一个最小的工作示例。

编辑:

我需要编辑我的问题;下面提出的解决方法,我仍然非常感激,在应用设置中不起作用;原因:我没有只有 1 个回归器。请在附件中找到修改后的版本。

0 投票
1 回答
145 浏览

python-3.x - QuantReg:“交互式”对象没有“适合”属性

我正在尝试使用 statsmodels 拟合分位数回归。在我的笔记本电脑中运行的相同代码在云中失败,并说它没有 fit 方法。但在文档中,我看到它有 fit 方法。是什么原因造成的?我在 zeppelin notebook 中使用它。

这是我收到的错误消息:

AttributeError:“交互式”对象没有“适合”属性