Как найти стандартное отклонение простых коэффициентов линейной регрессии Альфа и Бета в Matlab? - PullRequest
0 голосов
/ 24 ноября 2011

У меня есть данные, и мне нужно сделать линейную регрессию для данных, чтобы получить

у = альфа * х + Бета

Альфа и Бета - это оценки, данные регрессией, полифит может дать мне те, у которых нет проблем, но это физический отчет, и мне нужно дать оценки ошибок для этих значений

Мне известно из статистики, что для простых коэффициентов линейной регрессии существует стандартное отклонение.

Как рассчитать тогда в Matlab

Спасибо

Ответы [ 3 ]

0 голосов
/ 24 ноября 2011

Второй вывод команды regress даст вам 95% доверительные интервалы для коэффициентов регрессии. Вот пример:

>> x = [ones(100,1), (1:100)'];
>> alpha = 3; beta = 2;
>> y = x*[alpha; beta]+randn(100,1);
>> [coeffs, coeffints] = regress(y,x);
>> coeffs
coeffs =
       2.9712
       1.9998
>> coeffints
coeffints =
       2.5851       3.3573
       1.9932       2.0064

Здесь альфа была оценена в 2,9712 с 95% доверительным интервалом между 2,5851 и 3,3573, а бета была оценена в 1,9998, с 95% доверительным интервалом между 1,9932 и 2,0064.

0 голосов
/ 15 июня 2012

Или просто используйте соотношение, согласно которому длина 95% доверительного интервала составляет 2 * 1,9654 стандартных ошибок, поэтому стандартные ошибки в приведенном выше примере с регрессией определяются как:

st error = (coeffints (:, 2) -coeffints (:, 1)) / (2 * 1.9654).

Число 1.9654 появляется из-за предположения о нормальности в функции регрессии

0 голосов
/ 24 ноября 2011

Самое простое решение - использовать LSCOV :

%# create some data
x = 1:10;
y = 3*x+randn(size(x))*0.1;

%# create the design matrix
A = [x(:),ones(length(x),1)];


[u,std_u] = lscov(A,y(:));

u =
       3.0241
    -0.070209
std_u =
     0.018827
      0.11682
...