Spline tahmin için kullanılabilir mi?


20

Verilerin mülkiyeti konusunda özel olduğu için spesifik olamam, ancak bunun gibi verilerimiz olduğunu varsayalım: Her ay, bazı insanlar bir hizmete kaydoluyor. Daha sonra, sonraki her ay, bu kişiler hizmeti yükseltebilir, hizmeti durdurabilir veya hizmeti reddedebilir (örn. Ödeme başarısızlığı nedeniyle). Verilerimizdeki en erken grup için yaklaşık 2 yıllık veri (24 ay) var.

Her ay katılan kişi sayısı fazladır (100.000 aralığında) ve bu üç şeyden herhangi birini yapan kişi binlerce kişidir. Bununla birlikte, bireysel seviye verilerini (milyonlarca satır olacaktır) kullanmıyoruz, ancak ay ve kohort (her bir grubun her bir yüzdesi her şeyi ne kadar yapıyor) ile toplanan veriler kullanıyoruz.

Çok değişkenli uyarlanabilir regresyon spline'ları (MARS) kullanarak mevcut verileri modelliyor ve bazı ilginç sonuçlar buluyoruz. Ancak, bunları geleceği tahmin etmek veya tahmin etmek için kullanma konusunda endişeliyim. Endişelerim, geleceğe yönelik tahminlerin mutlaka örnek alanın dışında (zaman açısından) olması ve splineların ekstrapolasyon için kararsız hale gelebilmesidir.

Bu meşru bir yöntem mi? Hangi endişeler var ve bunlar ele alınabilir mi?


2
Tabii ki tahmin için kullanılabilirler, ancak model hiperparametrelerin nasıl düzgün ayarlanacağına dikkat etmeniz gerekir. Spline fonksiyonunun seçimi (sabit, doğrusal, kübik) de önemli endişelerdir. IIRC, MARS'ta lineer spline fonksiyonları tipik olarak kullanılır ve ekstrapolasyon / aşırı sığdırma endişesi dışında daha yüksek dereceli spline'lar önlenir.
Sycorax, Reinstate Monica

1
Özellikle endişelendiğiniz, kullandığınız bir yöntemden şüphelenmenize neden olacak bir şey var mı? Doğruluk durumunuz beklenmedik bir şekilde düşük görünüyordu veya bunun gibi bir şey mi? Başka yöntemler denediniz mi? Nasıl karşılaştırırlar?
one_observation

1
@Sofolog Düğümlerin ve çizgilerin hepsi geçmişte olan değerlere dayandığı için temelde yeni değerler için çok kapalı olacaklardır. Diyelim ki, "2014'ten sonra her yıl için XXX ile artış" yazan doğrusal bir spline yalnızca 2015 verilerine dayanacak, ancak 2016'ya uygulanırsa aynı yönde devam edecektir.
Peter Flom - Monica'yı eski durumuna döndürün

3
@PeterFlom: Sophologist'e cevabınızı okuyana kadar sorunuz hakkında gerçekten kafam karıştı (spline tahmin için çok yaygındır). Endişenizi tam olarak düşündüğümü vurgulamak için sorunuzu düzenledim. Gözden geçirin.
Cliff AB

2
@PeterFlom: düzenlememin doğru olduğunu varsayarak, zamanın etkisini bir spline ile modelleyiyor musunuz? Eğer öyleyse, oldukça endişeliydim. Ancak, zamanın etkisini gecikme etkisi ve spline'lı diğer değişkenlerle modelliyorsanız, sorun görmez miyim?
Cliff AB

Yanıtlar:


15

Soruyu yorumladığımdan, sorduğunuz temel soru, zamanı spline olarak modelleyip değiştiremeyeceğinizdir.

Cevaplamaya çalışacağım ilk soru, verilerinizi tahmin etmek için spline kullanıp kullanamayacağınızdır. Kısa cevap buna bağlıdır, ancak çoğu zaman splinelar ekstrapolasyon için o kadar da iyi değildir. Splinelar esasen bir enterpolasyon yöntemidir, verilerinizin bulunduğu alanı bölümler ve her bölümde basit bir regresöre uyarlar. Şimdi MARS yöntemine bakalım. MARS yöntemi ; burada , MARS modelindeki sabittir , , i. temel işlevidir ve

f^(x)=i=1nαiBi(x[i])
αiBix[i]i. terimde özellik vektörünüzden seçilen özelliği temsil eder. Temel işlev sabit olabilir veya menteşe işlevi (doğrultucu) olabilir. Menteşe işlevi basitçe Menteşe işlevinin modeli zorladığı, parçalı doğrusal bir işlev oluşturmaktır (düzeltilmiş doğrusal aktivasyon işlevine sahip bir sinir ağının MARS modelinin süper model olarak görülüyor).
max(0,x[i]+ci)

Dolayısıyla, spline'ların neden ekstrapolasyon için bu kadar büyük olmadığı sorusuna geri dönmek için, ekstrapolasyona ihtiyaç duyduğunuz nokta yalan söylemeye başladığında enterpolasyonun sınırlarını aştığının farkına varmak, modelinizin sadece çok küçük bir kısmının "aktifleştirileceğini" ya da çok büyük bir kısmı "aktive edilecek" ve bu nedenle modelin gücü (varyasyon eksikliği nedeniyle) kaybolur. Bununla ilgili biraz daha sezgi almak için, bulunan bir özellik alanına bir MARS modeli takmaya çalıştığımızı . Yani bir sayı verildiğinde diğerini tahmin etmeye çalışıyoruz. MARS modeli şuna benzer bir işlev bulur: Eğer ekstrapolasyon sayısını geçersef ( x ) = 5 + m bir x ( 0 , x - 5 ) + 2 m bir x ( 0 , x - 10 ) 10 f ( x ) = 10 + 2 ( X - 10 ) = 2 x - 10 5R

f^(x)=5+max(0,x5)+2max(0,x10)

10fonksiyon şimdi Şimdiye kadar sahip olduğumuz MARS modeli tek bir doğrusal fonksiyona kaynar ve bu nedenle MARS modelinin gücü kaybolur (bu "etkinleştirme" terimlerinin çoğunluğu durumunda). Aynı şey rakamından önce ekstrapolasyon için de olacaktır . Bu durumda MARS modelinin çıktısı basitçe sabit olacaktır. Bu nedenle, çoğu zaman splinelar ekstrapolasyon için uygun değildir. Bu aynı zamanda yazılarınızın yorumlarında bahsettiğiniz sorunu, tahmin edilen tahminlerin "yeni değerler için çok kapalı" olduğu ve farklı zaman serileri için "aynı yönde devam etme" eğilimi olduğunu açıklar.
f^(x)=10+2(x10)=2x10
5

Şimdi zaman serisine geri dönelim. Zaman serileri, makine öğreniminde oldukça özel bir durumdur. Kısmi sapma veya birçok farklı alt yapı türünden biri olsun, biraz yapıya sahip olma eğilimindedirler ve bu yapıdan yararlanılabilir. Ancak bu yapıdan yararlanabilecek özel algoritmalara ihtiyaç vardır, maalesef spline bunu yapmaz.

Denemenizi tavsiye edeceğim birkaç şey var. Birincisi, tekrarlayan ağlar olacaktır. Zaman serileriniz o kadar uzun değilse (ve uzun süreli bağımlılıklara sahip değilse), basit bir vanilya tekrarlayan ağ kullanarak kurtulabilmeniz gerekir. Ne olduğunu anlamak istiyorsanız, aktivasyon fonksiyonu olarak önyargıları olan doğrultulmuş doğrusal bir ünite kullanabilirsiniz ve bu, zaman dizilerinin alt kümesinde MARS modellemesi ve tekrarlayan sinir ağının "hafızası" ile eşdeğer olacaktır. tutar. Belleğin ağ tarafından nasıl yönetildiğini yorumlamak zor olurdu, ancak alt uzayın üretilen parçalı doğrusal işleve göre nasıl ele alındığı hakkında bir fikir edinmelisiniz. Ayrıca zaman serisine ait olmayan statik özellikleriniz varsa, bunları net olarak kullanmak nispeten kolaydır.

Sahip olduğunuz zaman serileri çok uzunsa ve uzun vadeli bağımlılıklar taşıyorsa, GRU veya LSTM gibi, kapılı tekrarlayan ağlardan birini kullanmanızı öneririm.

Zaman serisi sınıflandırmasının daha klasik tarafında gizli markov modelleri kullanabilirsiniz. Bunlara daha fazla girmeyeceğim, çünkü onlara aşina değilim.

Sonuç olarak, iki nedenden dolayı spline kullanılmasını önermem. Birincisi, tanımladığınız sorun gibi görünen karmaşık ekstrapolasyon problemlerini ele alamıyor. Ve ikincisi, splinelar zaman serileri sınıflamasında çok güçlü olabilecek zaman serilerinin alt yapılarını kullanmazlar.

Bu yardımcı olur umarım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.