この問題は、ノンパラメトリック・データ・フィッティング関数の2つに関する顧客からの問い合わせに端を発しています: NxLOCREG(.)とNxKREG(.)です。顧客はこう書いた:
問い合わせ1:
"NxLOCREG関数とNxKREG関数を理解するのに助けが必要です。
- NxLOCREGとNxKREGの場合 - Yが100データポイントで、Alpha = 0.333の場合、このアルゴリズムは最後の33データポイントを見ているのか、それとも3ポイントごとの分布を見ているのか?
- 多項式は3次までしか使えません。それ以上は#NUM! アルゴリズムはそれ以上の次数を許可しているのでしょうか?
- NxLOCREGとNxKREGの区別があいまいです。簡単に説明してもらえますか?"
NxLOCREG(.) 関数は、局所回帰アルゴリズム - LOESS、別名 Savitzky-Golay フィルタ - を実装しています。
NxKREG(.) 関数は,重み付き最小2乗回帰を実装する.
この2つの関数は非常によく似ているが、NxLOCREG(.)には追加の引数がある: Alpha または H。これはゼロ(排他的)から 1(包含的)の間の値を取ることができる。その結果、NxLOCREG 関数は最も近い H*N 個のデータ点を選択しますが、NxKREG (.) は常にデータセット全体(つまり N 個)を含みます。
より詳細には、目標値Xが与えられると、カーネル回帰手順は次のようになる:
- 目標値とサンプルのデータポイント間の距離を計算する。
- データ点を距離に基づいて昇順に並べ替える。
- 回帰入力データ・セットを選択する:
- (NxLOCREGの場合)最も近い(つまり最初の)H*N個のデータ点を選択する。
- (NxKREG の場合) N 個のデータ点全体を選択する。
- 与えられたカーネル関数を用いて、選択されたデータ点の重みを計算する。
- 加重最小二乗回帰モデルを実施する。
- 値 X での回帰値を計算する。
この手順/アルゴリズムは、目標値に最も近いH*N個のデータ・ポイントを使用するので、どの値も(おそらく)異なるデータ・セットで独自の回帰モデルを構築することになる。
Alpha = 1.0 の場合、他のすべての引数は同じまま、NxKREG(.) と NxLOCREG(.) 関数は同じ結果を返す。
現在、NxLOCREG(.) および NxKREG(.) 関数は、3 次までの多項式をサポートしています。
重み付けカーネル関数の選択にかかわらず、帯域幅(別名、平滑化パラメータ)の値が必要である。NumXLは、クロスバリデーションのRMSEを最小化する、データベースのバンド幅選択法を使用します。
簡単に言うと、与えられた帯域幅について、各データポイントの回帰値を計算し(leave-one-out cross-validationを使用)、回帰値と実際の値の間のRMSEを計算する。
問い合わせ2:
"したがって、データにスパイクがある場合、スパイクのポイントのいくつかは回帰データセットにないかもしれない。"
これは "Spike "をどのように定義するかによる。もしスパイクが外れ値(大きなY値)の参照であれば、この方法は外れ値を持つデータポイントを含むことになる。それでも、これらのデータポイントは、ターゲット値からのユークリッド距離に基づいて重み付けされるかもしれない。
一方、Spikeがx-domainに沿って離れたデータ点を参照している場合、それらの離れたデータ点は回帰で大きくウェイトダウンされる。
問い合わせ3:
"Excelの標準的な散布図の平滑化はLOESS関数に依存しているようです。中間値を手動で計算したい場合、この局所的な平滑化を生成するExcelのデフォルト関数はどのようなアプローチですか?"
はい、Microsoft Excel は散布図の平滑化線を生成するために LOESS アルゴリズムを使用していると考えています。NxLOCREG(.) 関数を使用することができますが、使用されるパラメータ値、例えば、カーネル関数、多項式の次数、アルファ値については確信が持てません。
機能満載の無料ダウンロード 14日間トライアル の NumXL を使って、これらの関数をテストしたり、自分のデータに適用したりすることができる。
を必ず調べてほしい。 ヒントとコツ そして データフィッティング のセクションで、ご興味のある記事をご覧ください。
コメント
サインインしてコメントを残してください。