Regresyondaki daha yeni gözlemlere daha fazla ağırlık verilmesi


9

R'deki son gözlemlere nasıl daha fazla ağırlık verebilirim?

Bunu sıkça sorulan bir soru veya istek olarak kabul ediyorum, ancak bunun nasıl uygulanacağını bulmakta zorlanıyorum. Bunun için çok fazla aramaya çalıştım ama iyi bir pratik örnek bulamıyorum.

Örneğimde zaman içinde büyük bir veri setim olacaktı. Daha yeni olan veri satırlarının üstel ağırlıklandırma türlerini uygulamak demek istiyorum. Bu nedenle, 2015'teki gözlemlerin, modeli eğitmek için 2012'deki gözlemlerden çok daha önemli olduğunu söyleyen bir tür üstel fonksiyona sahip olacaktım.

Veri kümesi değişkenlerim, kategorik ve sayısal değerlerin bir karışımını içerir ve hedefim sayısal bir değerdir - önemliyse.

Bunu ideal olarak CARET paketinde GBM / Random Forest gibi modelleri kullanarak test etmek / denemek istiyorum.

update-soru

Ağırlığın iki nokta arasındaki tarih mesafesine göre katlanarak nasıl azaltılacağı konusunda aşağıda verilen cevabı takdir ediyorum.

Bununla birlikte, bu modeli caret'te eğitmek söz konusu olduğunda, ağırlıklar tam olarak nasıl etki eder? Eğitim sıralarının her birindeki ağırlık değeri, gelecekteki bir nokta ile o noktanın tarihsel olarak meydana geldiği zaman arasındaki mesafedir.

Ağırlıklar sadece tahmin sırasında devreye giriyor mu? Çünkü eğitim sırasında oyuna dahil olurlarsa, çeşitli çapraz kıvrımların farklı ağırlıklara sahip olacağı için her türlü soruna neden olmaz mıydı?


3
Kapanış çünkü soru soran kişinin istatistiksel konuları açıklığa kavuşturması gerekiyor. Burada GBN veya RF'nin uygun olduğu açık değil. Bunun CV.com'a taşınmasını önermek
DWin

tamam. Yakında bir örnek ekleyeceğim. Sadece internette bu tür bir soru görüyorum, ancak nasıl uygulanacağı / çözüleceğine dair somut bir örnek yok.
user3788557

Yanıtlar:


5

R'deki son gözlemlere nasıl daha fazla ağırlık verebilirim?

Her gözlemle ilişkili bir zaman damganız olduğunu düşünüyorum. Bir değişkeni hesaplayabilirsiniz timeElapsed = modelingTime - observationTime. Şimdi sıra basit üstel fonksiyonu uygulamak W=K*exp(-timeElapsed/T), Kbir ölçekleme sabittir ve Tbir zaman sabiti çürüme işlevi için. Wvaka ağırlığı olarak çalışır.

Bildiğim kadarıyla, karşılık gelen gözlemlere sağlanacak bir vaka-ağırlık sütunu olan bir parametre olarak caretizin verme işlevinin çoğu işlev weightgörür (böylece #row ile aynı uzunlukta olur).


1
Fonksiyon içinde caret::trainolduğunu weights.
timcdlucas

Teşekkürler Ujjwal - ama denkleminizde 'K' belirlemenin yöntemi nedir? herhangi bir yönerge veya en iyi uygulamalar? Ayrıca, bozulma fonksiyonu için 'zaman periyodu' ile ne demek istiyorsun?
user3788557

K sadece bir ölçeklendirme sabitidir ve model sonuçlarını çok fazla etkilemez. Vaka ağırlığı değerleri aralığı 0-1 aralığına yakın olacak şekilde bir değere ayarlayabilirsiniz. "Zaman periyodu" ile ilgili olarak, buna bir 1. mertebeden üstel bozunma fonksiyonu VEYA ortalama ömür için zaman sabiti de denir. Vikipedi üzerinden bakabilirsiniz.
Ujjwal Kumar

Lütfen yazıma ilişkin güncellememe bakın. Bu eğitim sırasında doğru bir şekilde çalışacak mı? Ağırlıklar yalnızca test setine karşı kullanıldığında uygulanabileceğinden, eğitim modelinde yanlılık olacak mı? Eğitim seti rastgele karıştırıldığında, geçmişte veya zaman içinde yakın olmayan bir zaman diliminde fiyatları tahmin etmek için daha yüksek ağırlıkların kullanılması kötü olabilir.
user3788557

Vaka ağırlıkları olmadan, model eğitiminiz hem eski hem de yeni verilere eşit önem verecektir, ancak önerilen vaka ağırlıkları ile daha yeni verilere daha fazla önem verecektir, bu nedenle daha yeni gözlemlere karşı önyargılıdır, ancak Ne istediysen. "Ağırlıklara yalnızca test senaryoları için izin verilebilir" nedenini anlamıyorum . Ayrıca, eğitim seti rastgele karıştırıldığında daha eski değerler için daha yüksek ağırlıklar nasıl kullanılır? ne zaman modelingTime tüm eğitim durumları için aynı tutulur. PS kasa ağırlıkları sadece bir model kullanıldığında geçerli değildir, sadece eğitim süresi için geçerlidir.
Ujjwal Kumar

0

Veriler (analist varsayımları değil tahminleri değil) genellikle ağırlıklandırma şemasının biçimini önerebilir. Bu, ağırlıklı en küçük kareler modeli için uygun ağırlıkların, hata varyansında bulunan istatistiksel olarak anlamlı farklılıklardan elde edildiği GLS aracılığıyla yapılır. ARIMA (Tsay prosedürü) ve burada http://docplayer.net/12080848-Outliers-level-shifts-and-variance-changes-in-time-series.html aracılığıyla Değişim ve aykırı değerlerin tespitine bir göz atın . Veri göndermek istiyorsanız, lütfen burada yapın ve sizi aydınlatabilecek yazılıma rutin olarak erişebildiğim için daha fazla yardımcı olmaya çalışacağım.

Kullandığım yazılımın R sürümü var.

Sen de görünebilir ARIMA ile Müdahale analizinde kontrol değişkenleri içerecek şekilde How? ağırlık sapmalarının nasıl tanımlandığına ve hata varyansını stabilize etmek için nasıl kullanıldığına dair bir örneğe sahip olduğundan, belirli önceki değerlere etkili bir şekilde inanmak / inanmak / reddetmek / ağırlıklandırmak / güvenmek.

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.