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, т.е. x n-1 вектор, который минимизирует сумму квадратичных невязок (B - A*x)'*(B - A*x), где A m на n и B m-1. B может также быть m-by-k матрица и lscov возвращает одно решение для каждого столбца B. Когда rank(A) < nlscov устанавливает максимальное возможное число элементов 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 содержит нули в строках и столбцах, соответствующих обязательно нулевым элементам xlscov не может возвратить 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