使用 quantreg 识别曲线形状的建议

机器算法验证 回归 对数
2022-03-29 01:14:10

我正在使用quantreg包使用数据集中我的值的第 99 个百分位来制作回归模型。根据我之前提出的 stackoverflow问题的建议,我使用了以下代码结构。

mod <- rq(y ~ log(x), data=df, tau=.99)    
pDF <- data.frame(x = seq(1,10000, length=1000) ) 
pDF <- within(pDF, y <- predict(mod, newdata = pDF) )

我显示在我的数据之上。我用 ggplot2 绘制了这个,点的 alpha 值。我认为在我的分析中没有充分考虑我的分布尾部。这可能是因为有个别点被百分位数类型测量忽略了。

其中一条评论建议

包小插图包括关于非线性分位数回归的部分以及带有平滑样条的模型等。

根据我之前的问题,我假设了一个对数关系,但我不确定这是否正确。我以为我可以在第 99 个百分位区间提取所有点,然后分别检查它们,但我不知道该怎么做,或者这是否是一个好方法。对于如何改进识别这种关系的任何建议,我将不胜感激。

在此处输入图像描述

1个回答

所有模型都是错误的,但有些模型是有用的(George Box)。您正在将拟合曲线强制为对数形状,老实说,它看起来并没有那么糟糕。尾部贴合度较差,因为那里的点较少;您允许的两个参数将适合大部分数据。换句话说,在对数尺度上,该尾部距离您的大部分数据还不够远,无法提供杠杆作用。它与回归的分位数性质无关。OLS 也会忽略这些点(尤其是在对数刻度上)。

允许更多的非线性是很容易的。我偏爱自然样条曲线,但同样,所有模型都是错误的:

library(splines)
mod <- rq(y ~ ns(log(x), df=6), data=df, tau=.99)

quantreg如果您担心的话,该软件包有一些用于单调样条的特殊钩子。