主要内容

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)는선형 연립방정식一个*x = B에대한최소제곱해반환합니다。즉,X는제곱오차(b -a*x)'*(b -a*x)의합최소화하는n×1벡터,여기,여기서一个는m×n이고,b는m×1입니다。b는m×k행렬일수도,LSCOVb의각대해의해반환합니다합니다。等级(a)일경우LSCOV는“기저”를를위해최대가능한의의X요소0으로설정합니다。

x = lscov(a,b,w)는선형 연립방정식一个*x = B에대한가중해(加权最小二乘溶液)를를(여기서w는양의 실수 가중치로 구성된 벡터 길이 m임). 즉,X(b -a*x)'*diag(w)*(b - a*x)를최소화합니다。w는일반횟수나역행렬을합니다합니다합니다。

x = lscov(a,b,v)v에비례공분산행렬을하여선형연립방정식一个*x = B에대한일반(广义最小二乘解)를를(여기서v는m×m양양정부호행렬임)。즉,X(b -a*x)'*inv(v)*(b -a*x)를최소화합니다。

일반적,v는양준정부호일있으며,LSCOVa*x + t*e = b조건하에e'*e를최소화하는X를반환합니다。여기서최소화는Xe에대해되며,t*t'= v입니다。v가준정부호일 경우 이 문제는b一个v와일치경우(즉,b[在]의열있음)에해를가집니다。그렇지않으면LSCOV는오류반환합니다。

기본적으로LSCOVv에대한를하며하며하며하며하며를최소제곱해변환하여인수역역을합니다합니다합니다합니다。단,v가준정부호일때LSCOVv의역구하는을방지하는직교분해(正交分解)알고리즘을합니다합니다。

X= lscov(A,B,V,alg)v가행렬인경우X를계산사용하는을합니다합니다합니다。alg는다음을수있습니다。

  • 'chol'v의촐레스키(Cholesky分解)를합니다。

  • 'orth'는직교 분해(Orthogonal Decomposition)를 사용합니다.v의조건특이경우더적합더계산량을로합니다합니다합니다。

[x,stdx] = lscov(...)X에대해된오차반환합니다합니다。一个가랭크가 부족한 경우stdxX의 필수 0 요소에 대응하는 요소에 0을 포함시킵니다.

[X,STDX,MSE] = LSCOV(...)는평균오차반환합니다。b가공분산 행렬 σ2v(또는(σ2诊断(1./w))를가지것으로되는경우MSE는σ2의추정이됩니다。

[X,STDX,MSE,S] = LSCOV(...)X에대해된행렬을합니다합니다。一个가랭크가 부족한 경우sX의 필수 0 요소에 대응하는 행과 열에 0을 포함시킵니다.LSCOV는우변여러호출되는경우,즉size(B,2) > 1인 경우s를반환수없습니다。

一个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 -(m -n)

  • S = Inv(A'*Inv(V)*A)*MSE

  • stdx = sqrt(diag(s))

그러나LSCOV는더적메서드를사용하며,랭크가한경우에적용할수있습니다있습니다있습니다。

LSCOVb의공분산인자통해서만확인수고가정합니다합니다。MSE는알없는스케일링의추정값,LSCOV는출력인수sstdx를적절히합니다。그러나vb의 공분산 행렬과 정확히 일치한다고 확인되면 스케일링이 불필요합니다. 이 경우 적절한 추정값을 구하려면sstdx를각각1/MSESQRT(1/MSE)로다시해야합니다。

예제

예제1 - 보통보통해계산

MATLAB®의 백슬래시 연산자(\)를 사용하면 회귀 계수에 대한 일반적인 최소제곱해(OLS) 추정값을 계산하여 선형 회귀를 수행할 수 있습니다.LSCOV를사용와한한한추정값계산수있습니다있습니다。LSCOV를사용계수대한표준추정값회귀오차기간에대한표준편차편차추정추정값도도계산할수수있습니다있습니다있습니다。

x1 = [.2 .5 .6 .8 1.0 1.1]';x2 = [.1 .3 .4 .9 1.1 1.4]';x = [hons(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.1203 0.3284 -0.1312 se_b = 0.0643 0.2267 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.1152 0.0814 MSEW = 3.4741E -004

예제3 - 일반최소제곱(一般最小二乘)계산

관측값공분산행렬을LSCOV에 제공하여 일반 최소제곱해(GLS)를 계산할 수 있습니다. 예를 들어, 사용자 데이터가 독립적이지 않을 수 있습니다.

v = .2*一个(长度(x1)) + .8*diag(一个(size(x1)));[BG,SEW_B,MSEG] = LSCOV(X,Y,V)BG = 0.1203 0.3284 -0.1312 SEW_B = 0.0672 0.2267 0.2267 0.1488 MSEG = 0.0019

예제4 - 계수계수행렬추정

OLS、WLS gl피팅중하나에대해계수공분산행렬의추정값을계산합니다。계수의 표준 오차는 다음 공분산 행렬의 대각선에 있는 값의 제곱근과 같습니다.

[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))

알고리즘

벡터X는정량(A*X-B)'*Inv(V)*(A*X-B)를최소화합니다。이문제기본인선형대수해다음과같습니다같습니다같습니다。

X = Inv(A'*Inv(V)*A)*A'*Inv(V)*B

그러나LSCOV함수는대신一个에대한QR분해를계산후후후v를사용하여를 수정합니다.

참고문헌

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

확장기능

버전내역

R2006A이전개발됨됨

참고항목

|||