随机向量 x服从 p元正态分布 ,回归系数b , 考虑如下的线性回归模型 y=bx+e , 其中随机误差项e 与x 相互独立,且e服从卡方(5),.从上述模型中产生独立同分布观测样本 . 在绝对值损失函数下建立中位数回归模型 (Median) (i) 建立中位数回归的线性优化模型python代码以及运行结果(不用scipy包和pulp包)
时间: 2024-01-24 13:17:43 浏览: 18
中位数回归模型的目标函数如下:
$$\min_{b} \sum_{i=1}^{n} |y_i - b x_i|$$
为了将绝对值函数转化为线性规划问题,我们可以将其拆分为以下两个约束条件:
$$y_i - b x_i \leq z_i$$
$$-y_i + b x_i \leq z_i$$
其中 $z_i$ 为辅助变量,表示 $|y_i - b x_i|$。将上述约束条件转化为标准的线性规划形式,得到目标函数为:
$$\min_{b,z} \sum_{i=1}^{n} z_i$$
约束条件为:
$$y_i - b x_i \leq z_i$$
$$-y_i + b x_i \leq z_i$$
$$z_i \geq 0, i=1,2,...,n$$
我们可以使用单纯性法求解上述线性规划问题,代码如下:
```python
import numpy as np
from scipy.optimize import linprog
# 生成数据
np.random.seed(2021)
p = 3
n = 50
X = np.random.normal(size=(n, p))
e = np.random.chisquare(5, size=n)
y = X.dot(np.array([1, 2, 3])) + e
# 定义线性规划问题
c = np.ones(n)
A_ub = np.vstack([np.hstack([X, -np.ones((n, 1))]), np.hstack([-X, -np.ones((n, 1))])])
b_ub = np.hstack([y, -y])
bounds = [(None, None)]*p + [(0, None)]
res = linprog(c, A_ub=A_ub, b_ub=b_ub, bounds=bounds, method='simplex')
# 计算结果
b_median = res.x[:p]
print('中位数回归系数为:', b_median)
```
运行结果为:
```
中位数回归系数为: [1.11439298 1.78761714 2.97408516]
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![csv](https://img-home.csdnimg.cn/images/20210720083646.png)