2024-05-13 08:42:54 发布
网友
我想同时执行多个分位数的分位数回归。Statsmodels API为单个分位数提供分位数回归。有什么方法可以同时对多个分位数使用它吗
更具体地说,我想优化以下等式:
我不认为我有一个最佳的解决方案,但我可能很接近。基于该成本函数,您似乎正在尝试拟合一个系数矩阵(beta)和多个截距(b_k)。我会首先将一条分位数回归线拟合到中值(q=0.5),然后将其他分位数回归线拟合到残差。我知道这不是“同时”,但也许已经足够近了。见下文:
X = np.random.randn(100) Y = X + 0.1*np.random.randn(100) data = pd.DataFrame(dict(X1=X, Y=Y)) mod = smf.quantreg('Y ~ X1', data) original_model = mod.fit(q=0.5) resids = pd.DataFrame(dict(resid=original_model.resid)) residual_model = smf.quantreg('resid ~ 1', resids) quantiles = {q:residual_model.fit(q=q).params for q in np.arange(0.1,1.,0.1)} prediction_q0.1 = original_model.predict(data) + quantiles[0.1]
prediction_q0.1产生第10个分位数的预测
prediction_q0.1
由此产生的漂亮分位数图:
对于分位数0.1:0.9。注意它们是如何平行的,因为唯一的区别特征是偏差项
我不认为我有一个最佳的解决方案,但我可能很接近。基于该成本函数,您似乎正在尝试拟合一个系数矩阵(beta)和多个截距(b_k)。我会首先将一条分位数回归线拟合到中值(q=0.5),然后将其他分位数回归线拟合到残差。我知道这不是“同时”,但也许已经足够近了。见下文:
prediction_q0.1
产生第10个分位数的预测由此产生的漂亮分位数图:
对于分位数0.1:0.9。注意它们是如何平行的,因为唯一的区别特征是偏差项
相关问题 更多 >
编程相关推荐