2013-12-04 3 views
1

У меня есть этот код MATLAB, и я пытаюсь реализовать метод, объясненный в главном ответе на этот вопрос: https://stats.stackexchange.com/questions/12546/software-package-to-solve-l-infinity-norm-linear-regression Вот код, который я использую, который начинается с точек данных:Минимизация нормы L-бесконечности в Matlab

x = [ 
    0 
    0.101010101010101 
    0.202020202020202 
    0.303030303030303 
    0.404040404040404 
    0.505050505050505 
    0.606060606060606 
    0.707070707070707 
    0.808080808080808 
    0.909090909090909 
    ]; 
y = [ 
    0.052993311292562 
    14.923120014175920 
    1.974502763975613 
    -2.205773310050583 
    -0.052548781318830 
    2.935428041987883 
    0.134606520161892 
    0.146742215922384 
    -0.418386565682831 
    1.702041272689124 
    ]; 
A1 = [x,ones(length(y),1),-ones(length(y),1)]; 
A2 = [-x,-ones(length(y),1),-ones(length(y),1)]; 
A = [A1;A2]; 
f = [0;0;1]; 
linprog(f,A,[y;-y]) 

Дело в том, чтобы найти параметры (наклон и пересечение) наилучшего соответствия, т.е. линии, путем минимизации L-бесконечная норма невязок между строк и данных точек. Я проделал ту же самую задачу для обычных наименьших квадратов (сведение к минимуму нормы L-2), а также для L-1 fit. Строка, построенная по этим методам, очень хорошо сочетается между точками данных. Но не может показаться, что эта работа L-infinity подходит независимо от того, что я делаю, поэтому я прихожу к вам за помощью, любые советы оцениваются.

+2

Я думаю, что ваши вторые векторы должны быть отрицательными и в А1 и А2 – lennon310

ответ

2

Знак t в ваших неравенствах неверен. Попробуйте

A1 = [x,ones(length(y),1),-ones(length(y),1)]; 
A2 = [-x,-ones(length(y),1),-ones(length(y),1)]; 
+0

Да я уже пробовал эту комбинацию знаков и решение (наклон: -7,45 пересечения: 7,86) настолько далеко от наименьших квадратов решение (наклон: 0,26 пересечение: 0,55) и решение L1 (наклон: 0,13 пересечение: 0,05), которые согласуются друг с другом, я думаю. Возможно, это пункт L-Infinty, он придает дополнительный вес экстремальным точкам или чему-то еще? – steinbitur

+1

Решение наименьших квадратов дает гораздо больший вес выбросам (остаточный квадрат), поэтому здесь решение будет тянуться в направлении этого большого выброса, но оно все еще проверяется другими 9 точками данных. Решение бесконечной нормы всегда находится на полпути между наименьшим (отрицательным) и наибольшим (положительным) остатком, а другие точки данных не имеют значения. Поэтому в этом смысле крайние точки имеют больший вес. –

Смежные вопросы