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) возвращает обычное решение методом наименьших квадратов в линейную систему equations A*x = B, i. e., x является n-1 вектором, который минимизирует сумму ошибок в квадрате (B - A*x)'*(B - A*x), где A является m на n, и B является m-1. B может также быть m-by-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-by-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) ×diag (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] Странг, G., Введение в Прикладную математику, Wellesley-Кембридж, 1986, p. 398.

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

Смотрите также

| | |

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

Была ли эта тема полезной?