私は通常「通常の最小二乗」について聞きます。それは線形回帰に使用される最も広く使用されているアルゴリズムですか?別のものを使用する理由はありますか?
私は通常「通常の最小二乗」について聞きます。それは線形回帰に使用される最も広く使用されているアルゴリズムですか?別のものを使用する理由はありますか?
回答:
タイトルの質問に関して、使用されているアルゴリズムは何ですか:
線形代数の観点では、線形回帰アルゴリズムは未知数よりも多くの方程式で線形システム\ mathbf {A} x = bを解く方法です。ほとんどの場合、この問題の解決策はありません。これは、ベクトルが、C(\ mathbf {A})の列空間に属していないためです。
これbest straight line
は、全体的なエラーだけ小さくするものです。また、2乗の長さである\ lVert e \ rVert ^ 2と小さく考えると便利です。これは負ではなく、b \ in C(\ mathbf {A})の場合にのみ0に等しいからです。
ベクトルをの列空間の最も近い点に射影すると、システムを解くベクトルが得られます(コンポーネントは最適な直線上にあります)。
投影ベクトルは次の式で与えられます。
おそらく、最小二乗法は 、外れ値を過補償するため、排他的には使用されませんsquaring
。
このアルゴリズムを使用して回帰問題を解決するRの簡単な例を示します。
library(fBasics)
reg.data <- read.table(textConnection("
b x
12 0
10 1
8 2
11 3
6 4
7 5
2 6
3 7
3 8 "), header = T)
attach(reg.data)
A <- model.matrix(b~x)
# intercept and slope
inv(t(A) %*% A) %*% t(A) %*% b
# fitted values - the projected vector b in the C(A)
A %*% inv(t(A) %*%A ) %*% t(A) %*% b
# The projection is easier if the orthogonal matrix Q is used,
# because t(Q)%*%Q = I
Q <- qr.Q(qr(A))
R <- qr.R(qr(A))
# intercept and slope
best.line <- inv(R) %*% t(Q) %*% b
# fitted values
Q %*% t(Q) %*% b
plot(x,b,pch=16)
abline(best.line[1],best.line[2])
could not find inv
!
lm
はQRです。その理由はありますが、その理由を説明してください。
質問の手紙に答えるために、「通常の最小二乗」はアルゴリズムではありません。むしろ、それは計算線形代数における一種の問題であり、線形回帰はその一例です。通常、データと、形式のデータを当てはめるための暫定関数(「モデル」)があります。。、 "基底関数"と呼ばれ、単項式から何もすることができ三角関数(例えばへ、)と指数関数()。ここでの「線形回帰」の「線形」という用語は基底関数を指しておらず、、それは、任意のに対して、モデルの偏微分を取るにあなた倍率与え。つまり、です。
現在、長方形行列(「設計行列」)があり、(通常)列より行が多く、各エントリは形式で、は行インデックスで、は列インデックス。OLSは、量を最小化するベクトルを(マトリックス表記、 ;ここでは、は通常「応答ベクトル」と呼ばれます)。
最小二乗解を計算するために実際に使用される少なくとも3つの方法があります:正規方程式、QR分解、および特異値分解。簡単に言えば、これらは行列を、ベクトルを解くために簡単に操作できる行列の積に変換する方法です。
ジョージはすでに答えで正規方程式の方法を示しました。線形方程式のセットを解くだけです
用。行列は対称正(半)定行列であるため、これに使用される通常の方法はコレスキー分解で、を因数分解します。形態にと、下三角行列。このアプローチの問題は、設計行列を(通常)はるかに小さい行列に圧縮できるという利点にもかかわらず、この演算が有効数字を失う傾向があることです(これにより、設計マトリックスの「条件番号」で行います)。
もう少し良い方法は、QR分解です。これは、設計マトリックスで直接機能します。これは、係数よう、直交行列である(その転置とそのような行列を乗算する恒等行列を与える)とは上三角です。は、その後として計算されます。私が入らない理由のために(このような適切な数値線形代数テキストを参照してください)、これは正規方程式の方法よりも優れた数値特性を持っています。
QR分解の使用における1つのバリエーションは、半正規方程式の方法です。簡単に言えば、分解場合、解く線形システムは次の形式を取ります。
事実、このアプローチではQR分解を使用してのコレスキー三角形を形成しています。これは、がまばらであり、(またはその分解バージョン)の明示的なストレージおよび/または形成が望ましくないか、実用的でない場合に役立ちます。
最後に、最も高価でありながら最も安全なOLSの解決方法は、特異値分解(SVD)です。今回、はとして因数分解されます。ここで、とは両方とも直交です、およびA = U Σ V ⊤ U V Σ対角行列であり、その対角エントリは「特異値」と呼ばれます。この分解の力は、特異値によって付与される診断能力にあります。1つまたは複数の小さな特異値が見られる場合、完全に独立ではない基底セットを選択した可能性が高いため、次の再定式化が必要です。あなたのモデル。(前述の「条件数」は、実際には、最小の特異値に対する最大の特異値の比に関連しています。最小の特異値が「tiny」の場合、もちろん比は巨大になります(したがって、行列は悪条件です) )
これは、これら3つのアルゴリズムの単なるスケッチです。計算統計と数値線形代数に関する優れた本は、より関連性のある詳細を提供できるはずです。
R^{-1} Q^T y
Aが正方形でない場合、どのように計算しますか?Rにゼロ行をドロップしますか?
定義と用語を混同するのは簡単です。両方の用語が使用され、場合によっては同じ意味で使用されます。ウィキペディアのクイックルックアップが役立ちます。
通常最小二乗(OLS)は、線形回帰モデルを近似するために使用される方法です。OLSメソッドの一貫性と効率性が実証されているため(補足的な仮定の下)、それが主要なアプローチです。さらなるリードについては記事を参照してください。
私は、「最小二乗」を、最適な回帰直線(つまり、「二乗」残差の合計を「最小」にするもの)と、このコンテキストの「アルゴリズム」を使用するステップのセットとして定義するための基準として考える傾向がありますその基準を満たす回帰係数を決定します。この区別は、同じ基準を満たす異なるアルゴリズムを持つことが可能であることを示唆しています。
他の人がこの区別をするかどうか、どの用語を使用するのか知りたいです。
古い本でありながら、繰り返し自分が気づいている本は
ローソン、CLおよびハンソン、RJ 最小二乗問題の解決、Prentice-Hall、1974。
これには、以前の回答で言及したアルゴリズムのいくつかの詳細かつ非常に読みやすい説明が含まれています。あなたはそれを見たいかもしれません。