【发布时间】:2014-03-06 14:25:14
【问题描述】:
我正在尝试使用 Matlab 中的简单设置来实现分位数回归过程。 This page 包含将分位数回归描述为线性程序,并显示适当的矩阵和向量。我试图在 Matlab 中实现它,但我没有得到正确的 bhat 向量的最后一个元素。它应该在 1 左右,但我得到的值非常低(A、b 或f 是错误的。
我尝试过使用optimset,但我认为这不是问题所在。我想我在从数学到代码时犯了一个转换错误,我就是看不到在哪里。
% set seed
rng(1);
% set parameters
n=30;
tau=0.5;
% create regressor and regressand
x=rand(n,1);
y=x+rand(n,1)/10;
% number of regressors (1)
m=size(x,2);
% vektors and matrices for linprog
f=[tau*ones(n,1);(1-tau)*ones(n,1);zeros(m,1)];
A=[eye(n),-eye(n),x;
-eye(n),eye(n),-x;
-eye(n),zeros(n),zeros(n,m);
zeros(n),-eye(n),zeros(n,m)];
b=[y;
y
zeros(n,1);
zeros(n,1)];
% get solution bhat=[u,v,beta] and exitflag (1=succes)
[bhat,~,exflag]=linprog(f',A,b);
【问题讨论】:
标签: matlab regression linear-programming quantile-regression