スプラインは予測に使用できますか?


20

データはプロプライエタリであるため、データの性質について具体的に説明することはできませんが、次のようなデータがあるとします。毎月、一部の人々がサービスにサインアップしています。その後、その後の各月に、それらの人々はサービスをアップグレードしたり、サービスを中断したり、サービスを拒否したりすることがあります(支払いの失敗など)データの最初のコホートについては、約2年のデータ(24か月)があります。

毎月参加する人の数は多く(100,000の範囲)、3つのことのいずれかを行う数は数千人です。ただし、個々のレベルのデータ(数百万行)を使用するのではなく、月とコホート(各コホートの各割合が毎月どの程度を占めるか)ごとに集計されたデータを使用しています。

多変量適応回帰スプライン(MARS)を使用して既存のデータをモデル化し、興味深い結果を見つけています。 ただし、これらを使用して将来を予測または予測することを心配しています。私の懸念は、将来への予測は必然的に(時間的に)サンプル空間の外側にあり、スプラインは外挿に対して不安定になる可能性があるためです。

これは正当な方法ですか?どのような懸念があり、それらに対処できますか?


2
もちろん、それらは予測に使用できますが、モデルのハイパーパラメーターを適切に調整する方法に注意を払う必要があります。スプライン関数(定数、線形、3次)の選択も重要な問題です。通常、MARSのIIRC線形スプライン関数が使用され、外挿/オーバーフィットの懸念から高次スプラインが回避されます。
シコラックスは、モニカを

1
特に心配していることはありますか?それは、あなたが使っている方法を疑うことにつながりますか?あなたの精度は予想外に低いように見えましたか、またはそのようなものですか?他の方法を試しましたか?彼らはどのように比較しますか?
one_observation

1
@Sophologist主に、ノットとラインはすべて過去の値に基づいているため、新しい値が非常に少なくなります。たとえば、「2014年以降毎年XXXずつ増加する」という線形スプラインは2015年のデータのみに基づいていますが、2016年に適用された場合、同じ方向に続きます。
ピーターフロム-モニカの復職

3
@PeterFlom:私は実際にあなたの質問について非常に混乱していました(予測のためにスプラインは非常に一般的です)。あなたの懸念を正確に強調するために、あなたの質問を編集しました。確認してください。
クリフAB

2
@PeterFlom:私の編集が正しいと仮定して、スプラインで時間の効果をモデリングしていますか?もしそうなら、私は非常に心配になるでしょう。ただし、時間の影響をラグ効果でモデリングし、他の共変量をスプラインでモデリングしている場合、問題は発生しませんか?
クリフAB

回答:


15

私の質問の解釈から、あなたが尋ねている根本的な質問は、時間をスプラインとしてモデル化できるかどうかです。

私が答えようとする最初の質問は、スプラインを使用してデータを外挿できるかどうかです。簡単な答えは、それは依存しますが、ほとんどの場合、スプラインは外挿にはあまり適していません。スプラインは本質的に補間方法であり、データが存在するスペースを分割し、各パーティションで単純なリグレッサーに適合します。それでは、MARSのメソッドを見てみましょう。MARSメソッドは、として定義され ここで、は、MARSモデルのi番目の項の定数です。 、はi番目の項の基底関数、

f^バツ==1nαBバツ[]
αBバツ[]i番目の項で特徴ベクトルから選択された特徴を表します。基底関数は、定数またはヒンジ関数(整流器)のいずれかです。ヒンジ関数は、単純に です。ヒンジ関数がモデルに強制するのは、区分的線形関数を作成することです(整流線形活性化関数を持つニューラルネットワークは、 MARSモデルのスーパーセットモデルと見なされます)。
maバツ0バツ[]+c

スプラインが外挿にとって通常それほど大きくない理由の質問に戻るには、外挿が必要なポイントが内挿の境界を通過し始めると、モデルのごく一部のみが「アクティブ」になることを認識することです。または、その非常に大きな部分が「アクティブ化」され、したがって、モデルの力が消滅します(変動がないため)。これについてもう少し直感的に理解するために、にある機能空間にMARSモデルを適合させようとしているふりをしましょう。そのため、ある数値を与えて、別の数値を予測しようとします。MARSモデルには、次のような関数があります。 外挿が超えて発生する場合R

f^バツ=5+maバツ0バツ5+2maバツ0バツ10

10関数は 。以前のMARSモデルは1つの線形関数になり、MARSモデルのパワーはなくなります(これは「アクティベート」という用語の大部分の場合)。前の外挿でも同じことが起こります。その場合、MARSモデルの出力は単純に定数になります。これが、ほとんどの場合、スプラインが外挿に適していない理由です。これはまた、あなたが投稿のコメントで言及した問題を説明します。外挿された予測は「新しい値に対して非常にオフ」であり、異なる時系列で「同じ方向に続く」傾向があります。
f^バツ=10+2バツ10=2バツ10
5

ここで、時系列に戻りましょう。時系列は、機械学習の非常に特殊なケースです。それらは、部分不変であろうと、多くの異なる種類のサブ構造の1つであろうと、少しの構造を持つ傾向があり、この構造は悪用される可能性があります。しかし、この構造を活用できる特別なアルゴリズムが必要であり、残念ながらスプラインはこれを行いません。

いくつか試してみることをお勧めします。1つ目は再帰ネットワークです。時系列がそれほど長くない場合(そして長期的な依存関係がない場合)、単純なバニラリカレントネットワークを使用して逃げることができるはずです。何が起こっているのかを理解したい場合は、活性化関数としてバイアス付きの整流線形ユニットを使用できます。これは、時系列のサブセットと再帰ニューラルネットワークの「メモリ」でMARSモデリングを行うことと同等です。保持します。メモリがネットによってどのように管理されているかを解釈するのは難しいでしょうが、生成された区分的線形関数に関してサブスペースがどのように処理されているかをある程度理解する必要があります。また、時系列に属さない静的な機能がある場合、ネットでそれらを使用するのは比較的簡単です。

持っている時系列が非常に長く、長期的な依存関係がある可能性がある場合は、GRUやLSTMなどのゲートリカレントネットワークのいずれかを使用することをお勧めします。

時系列分類のより古典的な側面では、隠れマルコフモデルを使用できます。私はそれらに精通していないので、私はこれらにさらに入りません。

結論として、2つの理由からスプラインを使用することはお勧めしません。1つは、複雑な外挿問題を処理できないことです。これは、説明している問題のようです。2つ目は、スプラインは時系列の下位構造を活用していないため、時系列の分類に非常に強力です。

お役に立てれば。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.