Panel-Data

樣條可以用於預測嗎?

  • January 6, 2016

我無法具體說明數據的性質,因為它是專有的,但假設我們有這樣的數據:每個月,有些人註冊了一項服務。然後,在隨後的每個月中,這些人可能會升級服務、中斷服務或拒絕服務(例如,因為未能付款)。對於我們數據中最早的隊列,我們有大約 2 年的數據(24 個月)。

每個月加入的人數很大(在 100,000 範圍內),而做這三件事中任何一項的人數是數千人。但是,我們使用的不是個人級別的數據(可能是數百萬行),而是按月和群組聚合的數據(每個群組每個月做每件事的比例)。

我們一直在使用多元自適應回歸樣條 (MARS) 對現有數據進行建模,並發現了一些有趣的結果。 **但是,我擔心使用這些來推斷或預測未來。**我擔心的是因為對未來的預測必然在樣本空間之外(就時間而言),並且樣條曲線對於外推可能變得不穩定。

這是合法的方法嗎?存在哪些問題,可以解決嗎?

根據我對問題的解釋,您要問的根本問題是您是否可以將時間建模為樣條曲線。

我將嘗試回答的第一個問題是您是否可以使用樣條線來推斷您的數據。簡短的回答是視情況而定,但在大多數情況下,樣條曲線對於外推並不是那麼好。樣條曲線本質上是一種插值方法,它們對數據所在的空間進行分區,並且在每個分區處它們適合一個簡單的回歸器。那麼讓我們看看MARS的方法。MARS 方法定義為

在哪裡是 MARS 模型中第 i 項的常數,是第 i 項的基函數,並且表示在第 i 個術語從您的特徵向量中選擇的特徵。基函數可以是常數,也可以是鉸鏈函數(整流器)。鉸鏈功能很簡單

鉸鏈函數迫使模型創建分段線性函數(有趣的是,具有校正線性激活函數的神經網絡可以看作是 MARS 模型的超集模型)。 因此,回到為什麼樣條曲線通常不適用於外推的問題是要意識到,一旦您需要外推的點開始超出內插的邊界,只有模型的很小一部分將被“激活”或者它的很大一部分將被“激活”,因此模型的力量消失了(因為缺乏變化)。為了對此有更多的直覺,讓我們假設我們正在嘗試將 MARS 模型擬合到位於. 因此,給定一個數字,我們嘗試預測另一個數字。MARS 模型提出了一個看起來像這樣的函數:

如果外推發生在數字之後現在的功能變成

我們之前的 MARS 模型現在歸結為單個線性函數,因此 MARS 模型的功能消失了(這是大多數術語“激活”的情況)。數字之前的外推也會發生同樣的事情. MARS 模型的輸出將只是一個常數。這就是為什麼大多數時候樣條不適合外推的原因。這也解釋了您在帖子評論中提到的問題,即外推預測“對新值非常不利”,並且對於不同的時間序列,它們往往“朝著相同的方向繼續”。 現在讓我們回到時間序列。時間序列是機器學習中的一個非常特殊的案例。它們往往具有一些結構,無論是部分不變的還是許多不同類型的子結構之一,並且可以利用這種結構。但是需要能夠利用這種結構的特殊算法,不幸的是樣條不能做到這一點。

我建議您嘗試幾件事。第一個是循環網絡。如果您的時間序列不是那麼長(並且沒有長期依賴關係),您應該能夠使用簡單的 vanilla 循環網絡。如果您想了解正在發生的事情,您可以使用帶有偏差的校正線性單元作為激活函數,這相當於對時間序列的子集和循環神經網絡的“記憶”進行 MARS 建模持有。很難解釋網絡是如何管理內存的,但是您應該對生成的分段線性函數如何處理子空間有所了解。此外,如果您有不屬於時間序列的靜態特徵,則在網絡中仍然使用它們相對容易。

如果您擁有的時間序列很長並且可能具有長期依賴性,我建議使用門控循環網絡之一,例如 GRU 或 LSTM。

在更經典的時間序列分類方面,您可以使用隱馬爾可夫模型。我不會深入探討這些,因為我對它們不太熟悉。

總之,我不建議使用樣條線,原因有兩個。一,它無法處理複雜的外推問題,這似乎是您所描述的問題。第二,樣條不利用時間序列的子結構,這在時間序列分類中可能非常強大。

希望這可以幫助。

引用自:https://stats.stackexchange.com/questions/189524

comments powered by Disqus