lscov

Решение методом наименьших квадратов в присутствии известной ковариации

Синтаксис

x = lscov(A,B)
x = lscov(A,B,w)
x = lscov(A,B,V)
x = lscov(A,B,V,alg)
[x,stdx] = lscov(...)
[x,stdx,mse] = lscov(...)
[x,stdx,mse,S] = lscov(...)

Описание

x = lscov(A,B) возвращает решение методом наименьших квадратов в линейную систему уравнений A*x = B, т.е. x вектор n на 1, который минимизирует сумму квадратичных невязок (B - A*x)'*(B - A*x), где A m-на-n, и B m-на-1. B может также быть матрицей m на k и lscov возвращает одно решение для каждого столбца B. Когда rank(A) < n, lscov устанавливает максимально возможное количество элементов x до нуля, чтобы получить «базовое решение».

x = lscov(A,B,w), где w является длиной вектора m действительных положительных весов, возвращает взвешенное решение методом наименьших квадратов в линейную систему A*x = B, то есть x минимизирует (B - A*x)'*diag(w)*(B - A*x). w обычно содержит либо счетчики, либо обратные отклонения.

x = lscov(A,B,V), где V является m-на-m действительной симметричной положительно определенной матрицей, возвращает обобщенное решение методом наименьших квадратов в линейную систему A*x = B с ковариационной матрицей, пропорциональной V, то есть x минимизирует (B - A*x)'*inv(V)*(B - A*x).

В более общем плане V может быть положительным полуопределенным, и lscov возвращает x который минимизирует e'*e, при условии A*x + T*e = B, где минимизация закончилась x и e, и T*T' = V. Когда V является полуопределенным, эта задача имеет решение только в том случае, если B согласуется с A и V (то есть B находится в пространстве столбцов [A T]), в противном случае lscov возвращает ошибку.

По умолчанию lscov вычисляет разложение Холецкого V и, в эффект, инвертирует этот коэффициент, чтобы преобразовать задачу в обычные наименьшие квадраты. Однако, если lscov определяет, что V является полуопределенным, он использует алгоритм ортогонального разложения, который избегает инвертирования V.

x = lscov(A,B,V,alg) задает алгоритм, используемый для вычисления x когда V является матрицей. alg может иметь следующие значения:

  • 'chol' использует факторизацию Холецкого V.

  • 'orth' использует ортогональные разложения, и более уместно, когда V является плохо обусловленной или сингулярной, но в вычислительном отношении дороже.

[x,stdx] = lscov(...) возвращает предполагаемые стандартные ошибки x. Когда A имеет неполный ранг, stdx содержит нули в элементах, соответствующих обязательно нулевым элементам x.

[x,stdx,mse] = lscov(...) возвращает среднюю квадратичную невязку. Если B принято, что имеет ковариационную матрицу2V (или (2) × <reservedrangesplaceholder0>(1. / W)), затем mse - оценка2.

[x,stdx,mse,S] = lscov(...) возвращает предполагаемую ковариационную матрицу x. Когда A имеет неполный ранг, S содержит нули в строках и столбцах, соответствующих обязательно нулевым элементам x. lscov не может вернуться S если он вызывается с несколькими правыми сторонами, то есть если size(B,2) > 1.

Стандартные формулы для этих величин, когда A и V являются полным рангом, являются

  • x = inv(A'*inv(V)*A)*A'*inv(V)*B

  • mse = B'*(inv(V) - inv(V)*A*inv(A'*inv(V)*A)*A'*inv(V))*B./(m-n)

  • S = inv(A'*inv(V)*A)*mse

  • stdx = sqrt(diag(S))

Однако, lscov использует методы, которые быстрее и стабильнее, и применяются для неполного ранга случаев.

lscov принимает, что ковариационная матрица B известно только до коэффициента шкалы. mse является оценкой этого неизвестного масштабного коэффициента, и lscov масштабирует выходы S и stdx соответственно. Однако, если V известно, что это именно ковариационная матрица B, тогда это масштабирование ненужно. Чтобы получить соответствующие оценки в этом случае, вы должны пересмотреть S и stdx по 1/mse и sqrt(1/mse), соответственно.

Примеры

Пример 1 - Вычисление обыкновенных наименьших квадратов

MATLAB® оператор обратной косой черты (\) позволяет вам выполнить линейную регрессию путем вычисления обычных оценок коэффициентов регрессии методом наименьших квадратов (OLS). Вы также можете использовать lscov для вычисления тех же оценок OLS. При помощи lscovможно также вычислить оценки стандартных ошибок для этих коэффициентов и оценку стандартного отклонения термина ошибки регрессии:

x1 = [.2 .5 .6 .8 1.0 1.1]'; 
x2 = [.1 .3 .4 .9 1.1 1.4]'; 
X = [ones(size(x1)) x1 x2]; 
y = [.17 .26 .28 .23 .27 .34]';

a = X\y
a =
    0.1203
    0.3284
   -0.1312

[b,se_b,mse] = lscov(X,y) 
b =
    0.1203
    0.3284
   -0.1312
se_b =
    0.0643
    0.2267
    0.1488
mse =
    0.0015

Пример 2 - Вычисление взвешенных наименьших квадратов

Использовать lscov вычислить взвешенную подгонку методом наименьших квадратов (WLS) путем предоставления вектора относительных весов наблюдений. Например, вы можете захотеть снизить вес влияния ненадежного наблюдения на подгонку:

w = [1 1 1 1 1 .1]'; 

[bw,sew_b,msew] = lscov(X,y,w)
bw =
    0.1046
    0.4614
   -0.2621
sew_b =
    0.0309
    0.1152
    0.0814
msew =
  3.4741e-004

Пример 3 - Вычисление общих методом наименьших квадратов

Использовать lscov вычислить общую подгонку методом наименьших квадратов (GLS) путем предоставления ковариационной матрицы наблюдения. Для примера ваши данные могут быть не независимыми:

V = .2*ones(length(x1)) + .8*diag(ones(size(x1))); 

[bg,sew_b,mseg] = lscov(X,y,V)
bg =
    0.1203
    0.3284
   -0.1312
sew_b =
    0.0672
    0.2267
    0.1488
mseg =
    0.0019

Пример 4 - Оценка ковариационной матрицы коэффициентов

Вычислите оценку ковариационной матрицы коэффициента для подгонки OLS, WLS или GLS. Стандартные ошибки коэффициентов равны квадратным корням из значений на диагонали этой ковариационной матрицы:

[b,se_b,mse,S] = lscov(X,y); 

S
S =
    0.0041   -0.0130    0.0075
   -0.0130    0.0514   -0.0328
    0.0075   -0.0328    0.0221

[se_b sqrt(diag(S))] 
ans =
    0.0643    0.0643
    0.2267    0.2267
    0.1488    0.1488

Алгоритмы

Векторная x минимизирует количество (A*x-B)'*inv(V)*(A*x-B). Классическое решение линейной алгебры этой задачи является

 x = inv(A'*inv(V)*A)*A'*inv(V)*B

но lscov функция вместо этого вычисляет QR-разложение A а затем изменяет Q по V.

Ссылки

[1] Strang, G., Introduction to Applied Mathematics, Wellesley-Cambridge, 1986, p. 398.

Расширенные возможности

.

См. также

| | |

Представлено до R2006a