最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

Python代码:分位数回归数学原理及 Python 实现

XAMPP案例 admin 49浏览 0评论
  • 1. 分位数回归的数学原理
  • 2. 分位数回归的求解原理
  • 3. python 实现分位数回归

1. 分位数回归的数学原理

一般的回归方法是最小二乘法,即最小化误差的平方和:

zzzzzt000033

然后用单纯形法或内点法求解,就能得出分位数回归方程(python 与 R 软件求出的分位数回归方程可能略微不同,因为求解方法不一样, python 使用了迭代的加权最小二乘法求解)。

3. python 实现分位数回归

分位数回归要用到 statsmodels,下面的代码得到分位数为 0.6 的回归方程,并画图:

import statsmodels.formula.api as smf
import pandas as pd
import numpy as np
import statsmodels.api as sm
import matplotlib.pyplot as plt

data = sm.datasets.engel.load_pandas().data
mod = smf.quantreg('foodexp ~ income', data)
res = mod.fit(q=0.6)
print(res.summary())

plt.scatter(data['income'], data['foodexp'])
xx = np.arange(min(data['income']), max(data['income']))
yy = [i*res.params['income'] + res.params['Intercept'] for i in xx]
plt.plot(xx, yy, color='red')
plt.show()

输出结果:

zzzzzt0000033

zzzzzt00000033

回归方程就是上面的红线,它将 40% 的数据分割在上面,60% 的数据分割在下面。

转载请注明:XAMPP中文组官网 » Python代码:分位数回归数学原理及 Python 实现