2015-12-22 4 views
0

У меня есть следующие векторы:Matlab Robustfit - Коэффициенты Неопределенность Слишком Большая

x = [0.0069 0.0052 0.0034 0.0024 0.0001 -0.0013 -0.0003 ... 
    -0.0026 -0.0040 -0.0031 -0.0034 -0.0017 -0.0013 -0.0017 ... 
    -0.0010 -0.0019 -0.0015 -0.0018 -0.0031 -0.0020 -0.0008 ... 
    0.0007 0.0031 0.0036 0.0060] 

y = [0.0069 0.0061 0.0044 0.0031 0.0012 -0.0016 -0.0027 ... 
    -0.0032 -0.0033 -0.0042 -0.0031 -0.0019 -0.0021 -0.0013 ... 
    -0.0007 -0.0021 -0.0020 -0.0011 -0.0028 -0.0033 -0.0011 ... 
    0.0018 0.0027 0.0038 0.0051] 

И я использую надежную подгонку, чтобы получить линейную функцию y=f(x)=m*x+p, которая наилучшим образом соответствует у против й игнорирования недопустимых:

[b,stats] = robustfit(x,y) 

я склоне m = b(2) = 1.0402 +/- 0.0559

и Y-перехватывать p = b(1) = 5.1496e-06 +/- 1.6907e-04

Неопределенность - это значения, которые я получаю от stats.se, которые, согласно руководству, являются «стандартными» ошибками оценок коэффициентов. Но, как вы видите, неопределенность в y-перехвате слишком велика, что, похоже, не имеет никакого смысла (какой смысл использовать надежную установку, если неопределенности, которые мы получаем, ненадежны?). Любая помощь по улучшению этого будет очень оценена!

спасибо, что заблаговременно!

ответ

1

Стандартная ошибка для y-перехвата велика относительно самого y-перехвата, но все еще очень мала относительно y-данных в этом подгонке. То, что вы можете сделать статистически из этого, состоит в том, что существует очень низкая вероятность того, что значение, заданное robustfit, лучше нуля. Это не слабость надежной регрессии - это факт ваших данных, который, по-видимому, проходит примерно через происхождение. Вы можете увидеть, насколько мала стандартные ошибки, откладывая их:

scatter(x,y) 
hold on 
axis equal 
grid on 
plot(x, m    *x + p   ) 
plot(x, m    *x + p+stats.se(1),'m--') 
plot(x,(m+stats.se(2))*x + p   ,'c--') 
plot(x, m    *x + p-stats.se(1),'m--') 
plot(x,(m-stats.se(2))*x + p   ,'c--') 
legend('Raw data','y=m*x+p','y=m*x+p±stats.se(1)','y=(m±stats.se(2))*x+p','Location','best') 

Robust fit ± standard errors

Обратите внимание, что эти стандартные ошибки не являются доверительными интервалами - это сюжет просто иллюстрирует их размер.

Для данных, которые вы предоставили, я бы сказал, что нет смысла значительно улучшать эту форму, не улучшая данные. Фактически, без особых знаний об источнике базовых данных я бы предположил, что подгонка с использованием регрессии OLS столь же вероятна, что и лучшая оценка линейных отношений, поскольку надежная регрессия.

+0

Большое спасибо за ваш ответ, Уилл. В этом есть смысл. Фактически я пробовал как регрессию OLS, так и надежную регрессию, и результаты почти одинаковы, вероятно, из-за того, что в данных не так много выбросов. –