出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/03/23 10:00 UTC 版)
概要
局所回帰の最も一般的な方法がLOESS (locally estimated scatterplot smoothing) およびLOWESS (locally weighted scatterplot smoothing) であり、いずれも と発音される。いずれもノンパラメトリック回帰の手法であり、多数の回帰モデルをK近傍法に基づくメタモデルで組み合わせる。
LOESSは、線形最小二乗回帰の単純さと非線形回帰の柔軟性の多くを兼ね備えている。グローバルな関数を指定する必要はなく、データの局所的部分集合localized subsets of dataに単純なモデルを当てはめればよい。最小二乗回帰と比較すると計算量は膨大である。この統計手法で得られる滑らかな曲線は、loess曲線ないしlowess曲線と呼ばれる。
モデルの定義
1964年、SavitskyとGolayがLOESSと等価な手法を提案し、Savitzky–Golayフィルタと呼ばれるようになった。1979年、William S. Clevelandがこの手法を再発見し、別の名前を付けた。1988年、ClevelandとSusan J. Devlinが、この手法をさらに発展させた。
データセットの範囲内の各ポイントで、低次の局所多項式がデータの部分集合にフィットされる。多項式は、応答が推定されるポイントに近くのポイントに重みを与える、重み付き最小二乗法を用いてフィットされる。各データ点のそれぞれについて回帰関数の値が計算されたところで、LOESSのフィットが完了する。
データの局所的部分集合
LOESSの重み付き最小二乗法によるフィッティングに使用されるデータの部分集合は最近傍アルゴリズムによって決定される。平滑化パラメータ
は、各局所多項式を適合させるために、どのくらいの割合のデータを使用するかを決定する。
k次の多項式のフィッティングにはk + 1 以上のポイントが必要であるため、平滑化パラメータ
は、
と1の間にある必要がある。ここで、
は局所多項式の次数を示す。
が小さいほど回帰関数がデータに近くなるが、データの変動に伴うブレが大きくなる。
局所多項式の次数
局所多項式は、ほとんどの場合、1次か2次である。より高次の多項式は理論的には有効であるが、「どんな関数も局所では低次の多項式で近似できる」というLOESS の精神にはそぐわないし、過剰適合のリスクがある。
重み関数
重み関数は、説明変数空間において推定点に近いデータ点に最も大きな重みを与え、最も遠いデータ点に最も小さな重みを与える。
伝統的には三次元重み関数が用いられる。
![{\displaystyle w(x)=(1-|d|^{3})^{3}}](https://weblio.hs.llnwd.net/e7/img/dict/wkpja/https://wikimedia.org/api/rest_v1/media/math/render/svg/cc9fc75ed0e328862910414d9d1dd6a3cae9bebf)
ここで、dはデータポイント間の距離で、0から1の範囲にスケーリングされる。
ターゲット空間
上の計量
による線形回帰の一般化を考える。
により
個の入力パラメータを
に埋め込んで、次の損失関数を考える。
![{\displaystyle \operatorname {RSS} _{x}(A)=\sum _{i=1}^{N}(y_{i}-A{\hat {x}}_{i})^{T}w_{i}(x)(y_{i}-A{\hat {x}}_{i}).}](https://weblio.hs.llnwd.net/e7/img/dict/wkpja/https://wikimedia.org/api/rest_v1/media/math/render/svg/08603e4d03e1806062562a4307cd26f87e5dfcb7)
ここで、
は
の実行列であり、
と定義される。添え字iは訓練データの入出力のベクトルを示す。
は計量なので対称な正定値行列であり、
を満たす対称行列
が存在する。損失関数は次のように変形できる。
![{\displaystyle y^{T}wy=(hy)^{T}(hy)=\operatorname {Tr} (hyy^{T}h)=\operatorname {Tr} (wyy^{T})}](https://weblio.hs.llnwd.net/e7/img/dict/wkpja/https://wikimedia.org/api/rest_v1/media/math/render/svg/3a77c340389e8675902fbd6af94975a84d2cf2f3)
ベクトル
![y_i](https://weblio.hs.llnwd.net/e7/img/dict/wkpja/https://wikimedia.org/api/rest_v1/media/math/render/svg/67d30d30b6c2dbe4d6f150d699de040937ecc95f)
を
![{\displaystyle m\times N}](https://weblio.hs.llnwd.net/e7/img/dict/wkpja/https://wikimedia.org/api/rest_v1/media/math/render/svg/daa5943f53f593e992c129fc30005066c07e415d)
型の行列
![Y](https://weblio.hs.llnwd.net/e7/img/dict/wkpja/https://wikimedia.org/api/rest_v1/media/math/render/svg/961d67d6b454b4df2301ac571808a3538b3a6d3f)
、ベクトル
![{\displaystyle (n+1)\times N}](https://weblio.hs.llnwd.net/e7/img/dict/wkpja/https://wikimedia.org/api/rest_v1/media/math/render/svg/c42f1b3c7dc40bd99127db7f1000a99de0e77c70)
型の行列
![{\displaystyle {\hat {X}}}](https://weblio.hs.llnwd.net/e7/img/dict/wkpja/https://wikimedia.org/api/rest_v1/media/math/render/svg/acc59ad6d9a06d55b96b65beb0fdfc89acc1e40e)
とすることで、損失関数は次のように変形できる。
![{\displaystyle \operatorname {Tr} (W(x)(Y-A{\hat {X}})^{T}(Y-A{\hat {X}}))}](https://weblio.hs.llnwd.net/e7/img/dict/wkpja/https://wikimedia.org/api/rest_v1/media/math/render/svg/075549e68af500bb90eef926201fec64cea67236)
ここで、
は
の対角行列であり、 その成分は
である。
に関して微分した値をゼロとすることで
![{\displaystyle A{\hat {X}}W(x){\hat {X}}^{T}=YW(x){\hat {X}}^{T}.}](https://weblio.hs.llnwd.net/e7/img/dict/wkpja/https://wikimedia.org/api/rest_v1/media/math/render/svg/10693f45aa98a122c300c304cf2dffd90fbdf0cb)
さらに、正方行列
が可逆行列であるとき、損失関数
は下記で最小値を取る。
![{\displaystyle A(x)=YW(x){\hat {X}}^{T}({\hat {X}}W(x){\hat {X}}^{T})^{-1}.}](https://weblio.hs.llnwd.net/e7/img/dict/wkpja/https://wikimedia.org/api/rest_v1/media/math/render/svg/c01f7741998b37aa3d01d509a82db96075388c98)
として、主にガウス関数が選択される。
![{\displaystyle w(x,z)=\exp \left(-{\frac {\|x-z\|^{2}}{2\alpha ^{2}}}\right)}](https://weblio.hs.llnwd.net/e7/img/dict/wkpja/https://wikimedia.org/api/rest_v1/media/math/render/svg/4fafbc41bb668577c60ddf2384bceb5032f98bf3)
利点
平滑化パラメータと局所多項式の次数を与えるだけで、モデルをサンプルデータに柔軟に適合させることができる。