局所回帰のソースを表示
←
局所回帰
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
<templatestyles src="Module:Sidebar/styles.css"></templatestyles> [[ファイル:Loess_curve.svg|サムネイル|LOESS curve fitted to a population sampled from a [[正弦波|sine wave]] with uniform noise added. The LOESS curve approximates the original sine wave.]] '''局所回帰'''(きょくしょかいき、{{lang-en|local regression}})または'''局所多項式回帰'''(きょくしょたこうしきかいい、{{lang-en|local polynomial regression}})は、'''移動回帰'''(いどうかいき、{{lang-en|moving regression}})とも呼ばれ、[[移動平均]]や[[多項式回帰]]を一般化したものである{{Sfn|Fox|Weisberg|2018|loc=Appendix}}。 == 概要 == 局所回帰の最も一般的な方法がLOESS (locally estimated scatterplot smoothing) およびLOWESS (locally weighted scatterplot smoothing) であり、いずれも {{IPAc-en|ˈ|l|oʊ|ɛ|s}} と発音される。いずれもノンパラメトリック回帰の手法であり、多数の回帰モデルを[[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の重み付き最小二乗法によるフィッティングに使用されるデータの'''部分集合'''は最近傍アルゴリズムによって決定される。平滑化パラメータ<math>\alpha</math>は、各局所多項式を適合させるために、どのくらいの割合のデータを使用するかを決定する。 ''k''次の多項式のフィッティングには''k'' + 1 以上のポイントが必要であるため、平滑化パラメータ<math>\alpha</math>は、<math>\left(\lambda+1\right)/n</math>と1の間にある必要がある。ここで、<math>\lambda</math>は局所多項式の次数を示す。<math>\alpha</math>が小さいほど回帰関数がデータに近くなるが、データの変動に伴うブレが大きくなる。 === 局所多項式の次数 === 局所多項式は、ほとんどの場合、1次か2次である。より高次の多項式は理論的には有効であるが、「どんな関数も局所では低次の多項式で近似できる」というLOESS の精神にはそぐわないし、[[過剰適合]]のリスクがある。 === 重み関数 === 重み関数は、説明変数空間において推定点に近いデータ点に最も大きな重みを与え、最も遠いデータ点に最も小さな重みを与える。 伝統的には[[カーネル (統計学)|三次元重み関数]]が用いられる。 : <math>w(x) = (1 - |d|^3)^3 </math> ここで、''d''はデータポイント間の距離で、0から1の範囲にスケーリングされる。 ターゲット空間<math>\mathbb R^m</math>上の計量<math>w(x,z)</math> <math>x,z\in\mathbb R^n</math>による線形回帰の一般化を考える。<math>x\mapsto \hat x := (1,x)</math> により <math>n</math>個の入力パラメータを<math>\mathbb R^{n+1}</math>に埋め込んで、次の損失関数を考える。 : <math>\operatorname{RSS}_x(A) = \sum_{i=1}^N(y_i-A\hat x_i)^Tw_i(x)(y_i-A\hat x_i).</math> ここで、<math>A</math>は <math>m\times(n+1)</math> の実行列であり、<math>w_i(x):=w(x_i,x)</math>と定義される。添え字''i''は訓練データの入出力のベクトルを示す。<math>w</math>は計量なので対称な正定値行列であり、<math>w=h^2</math>を満たす対称行列<math>h</math>が存在する。損失関数は次のように変形できる。<math display="block">y^Twy = (hy)^T(hy) = \operatorname{Tr}(hyy^Th) = \operatorname{Tr}(wyy^T)</math>ベクトル<math>y_i</math>を<math>m\times N</math>型の行列<math>Y</math>、ベクトル<math>\hat x_i</math> <math>(n+1)\times N</math>型の行列<math>\hat X</math>とすることで、損失関数は次のように変形できる。 : <math>\operatorname{Tr}(W(x)(Y-A\hat X)^T(Y-A\hat X))</math> ここで、<math>W</math>は<math>N\times N</math>の[[対角行列]]であり、 その成分は<math>w_i(x)</math>である。<math>A</math>に関して微分した値をゼロとすることで : <math>A\hat XW(x)\hat X^T = YW(x)\hat X^T.</math> さらに、正方行列<math>\hat XW(x)\hat X^T</math>が[[可逆行列]]であるとき、損失関数<math>\operatorname{RSS}_x(A)</math>は下記で最小値を取る。 : <math>A(x) = YW(x)\hat X^T(\hat XW(x)\hat X^T)^{-1}.</math> <math>w(x,z)</math>として、主に[[ガウス関数]]が選択される。 : <math>w(x,z) = \exp\left(-\frac{\| x-z \|^2}{2\alpha^2}\right)</math> == 利点 == 平滑化パラメータと局所多項式の次数を与えるだけで、モデルをサンプルデータに柔軟に適合させることができる。 == 欠点 == 局所的なデータ構造に基づいてフィッティングするため、充分な大きさの標本が必要である。また、数式で簡単に表現できる回帰関数を生成しないため、分析結果を他者に伝えることが困難である。また、他の最小二乗法と同様に、[[外れ値]]の影響を受けやすい。 == 脚注 == {{脚注ヘルプ}} === 出典 === {{Reflist}} == 関連項目 == * [[移動平均]] * [[ノンパラメトリック手法]] == 外部リンク == * [http://voteforamerica.net/editorials/Comments.aspx?ArticleId=28&ArticleName=Electoral+Projections+Using+LOESS Local Regression and Election Modeling] * [https://web.archive.org/web/20060831004244/http://www.stat.purdue.edu/~wsc/papers/localregression.principles.ps Smoothing by Local Regression: Principles and Methods (PostScript Document)] * [http://www.itl.nist.gov/div898/handbook/pmd/section1/pmd144.htm NIST Engineering Statistics Handbook Section on LOESS] * [https://web.archive.org/web/20050912090738/http://www.stat.purdue.edu/~wsc/localfitsoft.html Local Fitting Software] * [http://stat.ethz.ch/R-manual/R-patched/library/stats/html/lowess.html Scatter Plot Smoothing] * [https://stat.ethz.ch/R-manual/R-devel/library/stats/html/loess.html R: Local Polynomial Regression Fitting] The Loess function in [[R言語|R]] * [https://stat.ethz.ch/R-manual/R-devel/library/stats/html/lowess.html R: Scatter Plot Smoothing] The Lowess function in [[R言語|R]] * [https://stat.ethz.ch/R-manual/R-devel/library/stats/html/supsmu.html The supsmu function (Friedman's SuperSmoother) in R] * [http://www.r-statistics.com/2010/04/quantile-loess-combining-a-moving-quantile-window-with-loess-r-function/ Quantile LOESS] – A method to perform Local regression on a '''Quantile''' moving window (with R code) * [http://fivethirtyeight.blogs.nytimes.com/2013/03/26/how-opinion-on-same-sex-marriage-is-changing-and-what-it-means/?hp Nate Silver, How Opinion on Same-Sex Marriage Is Changing, and What It Means] – sample of LOESS versus linear regression === 実装 === * [http://www.netlib.org/go/lowess.f Fortran implementation] * [http://svn.r-project.org/R/trunk/src/library/stats/src/lowess.c C implementation (from the R project)] * [https://github.com/livingsocial/cylowess Lowess implementation in Cython] by [http://slendermeans.org/lowess-speed.html Carl Vogel] * [https://github.com/statsmodels/statsmodels/blob/master/statsmodels/nonparametric/smoothers_lowess.py Python implementation (in Statsmodels)] * [http://peltiertech.com/WordPress/loess-smoothing-in-excel/ LOESS Smoothing in Excel] * [https://github.com/dcjones/Loess.jl LOESS implementation in pure Julia] * [https://www.npmjs.com/package/loess JavaScript implementation] * [https://commons.apache.org/proper/commons-math/javadocs/api-3.3/org/apache/commons/math3/analysis/interpolation/LoessInterpolator.html Java implementation] {{NIST-PD}} [[Category:回帰分析]] [[Category:数学に関する記事]] {{DEFAULTSORT:きよくしよかいき}}
このページで使用されているテンプレート:
テンプレート:IPAc-en
(
ソースを閲覧
)
テンプレート:Lang-en
(
ソースを閲覧
)
テンプレート:NIST-PD
(
ソースを閲覧
)
テンプレート:Reflist
(
ソースを閲覧
)
テンプレート:Sfn
(
ソースを閲覧
)
テンプレート:脚注ヘルプ
(
ソースを閲覧
)
特別:Badtitle/NS828:Sidebar/styles.css
局所回帰
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報