python - Python中同时针对多个分位数的分位数回归
解决方案
我认为我没有最佳解决方案,但我可能已经接近了。基于该成本函数,您似乎正在尝试拟合一个系数矩阵(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 个分位数的预测
生成的漂亮分位数图:
对于分位数 0.1:0.9。注意它们是如何平行的,因为唯一的区别特征是偏差项。
推荐阅读
- javascript - HTML-Link with javascript:void(0): 它把我带到哪里?
- r - 从 selectInput 到 facet_wrap 的多个变量:R Shiny
- python - 无法使用 Python 连接到普遍数据库
- javascript - 如何使用不同的浏览器来运行电子应用程序而不是电子浏览器
- javascript - 在反应组件中使用 setInterval 重复函数调用的一种替代方法?
- json - D3 - V3:使用从 json 文件加载的数据时的范围错误
- php - 那个简单的 php 类有什么问题?
- python - Splunk 模拟显示源按钮
- python - 无法导入 mysql 连接器
- java - Navigation Drawer 不能仅通过键盘操作