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행렬일수도,LSCOV
는b
의각대해의해반환합니다합니다。等级(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
는양준정부호일있으며,LSCOV
는a*x + t*e = b
조건하에e'*e
를최소화하는X
를반환합니다。여기서최소화는X
와e
에대해되며,t*t'= v
입니다。v
가준정부호일 경우 이 문제는b
가一个
및v
와일치경우(즉,b
가[在]
의열있음)에해를가집니다。그렇지않으면LSCOV
는오류반환합니다。
기본적으로LSCOV
는v
에대한를하며하며하며하며하며를최소제곱해변환하여인수역역을합니다합니다합니다합니다。단,v
가준정부호일때LSCOV
는v
의역구하는을방지하는직교분해(正交分解)알고리즘을합니다합니다。
X= lscov(A,B,V,alg)
는v
가행렬인경우X
를계산사용하는을합니다합니다합니다。alg
는다음을수있습니다。
'chol'
은v
의촐레스키(Cholesky分解)를합니다。'orth'
는직교 분해(Orthogonal Decomposition)를 사용합니다.v
의조건특이경우더적합더계산량을로합니다합니다합니다。
[x,stdx] = lscov(...)
는X
에대해된오차반환합니다합니다。一个
가랭크가 부족한 경우stdx
는X
의 필수 0 요소에 대응하는 요소에 0을 포함시킵니다.
[X,STDX,MSE] = LSCOV(...)
는평균오차반환합니다。b
가공분산 행렬 σ2v
(또는(σ2)×诊断
(1./w
))를가지것으로되는경우MSE
는σ2의추정이됩니다。
[X,STDX,MSE,S] = LSCOV(...)
는X
에대해된행렬을합니다합니다。一个
가랭크가 부족한 경우s
는X
의 필수 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
는더적메서드를사용하며,랭크가한경우에적용할수있습니다있습니다있습니다。
LSCOV
는b
의공분산인자통해서만확인수고가정합니다합니다。MSE
는알없는스케일링의추정값,LSCOV
는출력인수s
와stdx
를적절히합니다。그러나v
가b
의 공분산 행렬과 정확히 일치한다고 확인되면 스케일링이 불필요합니다. 이 경우 적절한 추정값을 구하려면s
와stdx
를각각1/MSE
와SQRT(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.