主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

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は二乗誤差(B - A*x)'*(B - A*x)の和を最小にしたn行1列のベクトルです。ここで,一个はm行n列であり,Bはm行1列です。Bはm行k列の行列とすることも可能であり,lscovBの各列に対して1の解を返します。rank(A) < nの場合,lscovは基底解を得るためにxの要素の最大可能数を0に設定します。

wが正の実数重みのベクトルの長さmであるx = lscov(A,B,w)は,線形方程式A*x = Bに対する重み付き最小二乗解を返します。まり,x(B - A*x)'*diag(w)*(B - A*x)を最小にします。wは一般的に回数または逆行列分散を含みます。

Vがm行m列の実数の対称正定値行列であるx = lscov(A,B,V)は,Vに比例した共分散行列を使用して,線形方程式A*x = Bに対して,一般化した最小二乗解を返します。まり,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[T]列の範囲内にあります)。そうでない場合は,lscovはエラ,を返します。

既定の設定では,lscovVのコレスキ,分解を計算します。実際は,問題を一般的な最小二乗に変換するため,因子を反転します。しかし,lscovVは半定値であると定義する場合,Vの反転を避けるために,直交分解アルゴリズムを使用します。

x = lscov(A,B,V,alg)は,Vが行列の場合,xの計算に使用するアルゴリズムを指定します。algは以下の値をもます。

  • “胆固醇”は,Vのコレスキ,分解を使用します。

  • “奥尔特”は,直交分解を使用し,Vが悪条件な場合や特異な場合は,より正確になります。しかし,直交分解は計算量が大きくなります。

[x,stdx] = lscov(…)は,xの推定標準誤差を返します。一个がランク落の場合,stdxxのゼロ要素に対応する要素内にゼロをもます。

[x,stdx,mse] = lscov(…)は,二乗平均誤差を返します。Bが共分散行列σ2V(または(σ2诊断接头(1. /W))をもと仮定すると,均方误差がσ2の推定値となります。

[x,stdx,mse,S] = lscov(…)は,xの推定共分散行列を返します。一个がランク落の場合,年代xのゼロの要素に対応する行と列にゼロをもます。lscovは,複数の右辺から呼ばれる場合,まり1 .选择“B,2, 1”の場合,年代を返すことができません。

これらの計算値の標準式は,一个Vがフルランクの場合,以下のようになります。

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

  • mse = B *(发票(V) -发票(V) * *发票(‘*发票(V) *) *的*发票(V)) * B / (mn)

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

  • stdx =√(diag(S))

しかし,lscovは,より速くより安定なメソッドを使用し,ランク落の場合でも適用できます。

lscovBの共分散行列がスケ,ル係数からわかると仮定します。均方误差は,未知のスケ,ル係数の推定であり,lscovは,適切に出力年代stdxをスケ,ルします。しかし,Vが共分散行列Bであると正確にわかる場合,スケ,リングは失敗します。この場合正確な推定を得るには,年代stdxをそれぞれ1 / mse√1 / mse)で再スケ,ルします。

例1 -最小二乗の計算

MATLAB®バックスラッシュ演算子(\)を使用することで,回帰係数の最小二乗法(OLS)推定によって,線形回帰を実行することができます。同様のols推定を計算するために,lscovも使用できます。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 -重み付き最小二乗の計算

相対観測値の重みベクトルを与えて,重み付き最小二乗(wls)近似を計算するためにlscovを使用します。たとえば,信頼性の低い観測値が近似に与える影響を減らしたいとします。

W = [1 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 -一般化最小二乗の計算

観測値の共分散行列を与えて,一般化最小二乗(gls)近似を計算するために,lscovを使用します。たとえば,ユ,ザ,のデ,タが独立していないとします。

V = 2 *(长度(x1)) + 8 *诊断接头((大小(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√(diag(S))] ans = 0.0643 0.0643 0.2267 0.2267 0.1488 0.1488

アルゴリズム

ベクトルxは,(* *取向)发票(V) *(*取向)を最小化します。この問題の古典的な線形代数解法は,次のようになります。

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

しかし,lscovは,一个のqr分解を代わりに計算し,Vを使用してを修正します。

参照

[1]斯特朗,G.,应用数学导论,韦尔斯利-剑桥,1986,第398页。

拡張機能

R2006aより前に導入