分位数回归。与常规线性回归不同,常规线性回归使用最小二乘法来计算不同特征值之间条件概率的均值(conditional mean),分位数回归估计条件概率的中位数(conditional median)。分位数回归是线性回归的扩展,当不满足线性回归的条件(即线性,均方差,独立性或正态性)时使用。 传统上,用于计算均值的线性回归模型采用以下形式
其中p等于方程式中的特征数量,n是训练数据点的数量。最佳线性回归线是通过最小化均方误差来计算的,该均方根误差可通过以下公式找到
现在,对于分位数回归,您不仅可以找到中位数,还可以为特征中的特定值计算任何分位数(百分比)。例如,如果我们要找到特定房屋价格的第25个分位数,则意味着房屋的实际价格有25%的机会低于预测值,而价格有75%的机会高于预测值。
采用与线性回归模型相似的结构,五分位数的分位数回归模型方程为
这意味着β贝塔系数现在不是常数,而是与分位数相关的函数。在特定分位数下找到这些β的值类似于常规线性回归的过程,只是现在我们必须减少绝对中位差(median absolute deviation)。
在此,函数𝜌是检查函数,该函数根据误差的分位数和整体符号为误差赋予不对称权重。在数学上,𝜌采用以下形式
在这种情况下,u是单个数据点的误差,并且max函数返回括号中的最大值。这意味着如果误差为正,则检查功能将误差乘以𝜏,如果误差为负,则检查功能将误差乘以(1- 𝜏)。
例如,如果您想要第10个百分位数的中位数,则意味着您希望90%的误差为正,而10%的误差为负。为了在使该语句为真的同时找到最小的MAD,必须将权重添加到错误中。在第十个分位数的情况下,负数权重为0.9,负数为正数。
让我们看看实际的分位数回归。让我们研究QuantReg的python statsmodels示例,该示例查看1857年比利时工人阶级家庭样本中食品收入与支出之间的关系,并了解我们可以进行什么样的统计分析。
import statsmodels.api as sm
import statsmodels.formula.api as smf
data = sm.datasets.engel.load_pandas().data
data.head()
mod = smf.quantreg('foodexp ~ income', data)
res = mod.fit(q=.5)
print(res.summary())
如您所见,您可以为特定分位数创建回归线,并对其进行统计分析,方法与使用常规线性回归模型相同。
补充材料:
如何通俗地理解分位数?
https://www.zhihu.com/question/67763556
分位数回归(Quantile Regression)
https://blog.youkuaiyun.com/jesseyule/article/details/95247155
什么是“绝对中位差”(median absolute deviation)?
https://www.zhihu.com/question/56537218
【强化学习 48】Quantile Regression
https://zhuanlan.zhihu.com/p/60912847