Przypisywanie większej wagi do najnowszych obserwacji w regresji

9

Jak przypisać większą wagę do najnowszych obserwacji w R?

Zakładam, że jest to często zadawane pytanie lub pragnienie, ale trudno mi dokładnie wymyślić, jak to zrealizować. Próbowałem znaleźć wiele, ale nie jestem w stanie znaleźć dobrego praktycznego przykładu.

W moim przykładzie z czasem miałbym duży zestaw danych. Chcę powiedzieć, że zastosuj jakiś wykładniczy ważenie wierszy danych, które są nowsze. Miałbym więc jakąś funkcję wykładniczą, mówiąc, że obserwacje w 2015 roku są ___ ważniejsze dla szkolenia modelu niż obserwacje w 2012 roku.

Moje zmienne zestawu danych zawierają połączenie wartości kategorycznych i liczbowych, a moim celem jest wartość liczbowa - jeśli to ma znaczenie.

Chciałbym przetestować / wypróbować to przy użyciu modeli takich jak GBM / Random Forest, najlepiej w pakiecie CARET.

pytanie o aktualizację

Doceniam odpowiedź podaną poniżej na temat wykładniczego rozkładu masy według odległości daty między dwoma punktami.

Jeśli jednak chodzi o szkolenie tego modelu w karetce, w jaki sposób uwzględniane są wagi? Wartość masy w każdym rzędzie treningowym to odległość między pewnym punktem w przyszłości a momentem, w którym ten punkt miał miejsce w przeszłości.

Czy odważniki wchodzą w grę tylko podczas prognozy? Bo jeśli wejdą w grę podczas treningu, czy nie spowodowałoby to różnego rodzaju problemów, ponieważ różne krzyżówki miałyby różne ciężary, próbując przewidzieć coś, co może mieć w danym momencie wcześniej?

użytkownik3788557
źródło
3
Zamknij, ponieważ pytający musi wyjaśnić kwestie statystyczne. Nie jest dla mnie jasne, czy GBN lub RF są tutaj odpowiednie. Sugerowanie migracji do CV.com
DW
ok. Wkrótce dodam przykład. Po prostu widzę takie pytanie w Internecie, ale nie ma konkretnych przykładów, jak je zastosować / rozwiązać.
user3788557

Odpowiedzi:

5

Jak przypisać większą wagę do najnowszych obserwacji w R?

Chyba masz znacznik czasu związany z każdą obserwacją. Możesz obliczyć zmienną timeElapsed = modelingTime - observationTime. Teraz zastosujesz prostą funkcję wykładniczą, ponieważ W=K*exp(-timeElapsed/T), gdzie Kjest stałą skalowania i Tjest stałą czasową dla funkcji rozpadu. Wdziała jak waga skrzynki.

Zgodnie z moją najlepszą wiedzą, wiele funkcji in caretzezwala weightjako parametr, który jest kolumną wag, które należy podać do odpowiedniej obserwacji (a więc mają taką samą długość jak # strzałki).

Ujjwal Kumar
źródło
1
Funkcja w caret::trainto weights.
timcdlucas
Dziękuję Ujjwal - ale jaka jest metodologia określania „K” w twoim równaniu? jakieś wytyczne lub najlepsze praktyki? Co również rozumiesz przez „okres” funkcji zaniku?
user3788557
K jest tylko stałą skalowania i nie wpłynie znacząco na wyniki modelu. Można ustawić na pewną wartość, tak aby zakres wartości masy ciała był może bliski zakresowi 0-1. W odniesieniu do „okresu czasu” jest on również nazywany stałą czasową dla funkcji wykładniczego rozkładu pierwszego rzędu LUB średniego czasu życia. Możesz to sprawdzić na wikipedii.
Ujjwal Kumar
Proszę zobaczyć moją aktualizację do mojego postu. Czy zadziała to poprawnie podczas szkolenia? Czy model treningowy będzie miał stronniczość, ponieważ odważniki mogą być stosowane tylko wtedy, gdy są stosowane względem zestawu testowego? Gdy zestaw treningowy jest losowo tasowany, może być źle, jeśli do przewidywania cen w przeszłości lub w stosunku do okresu czasu, który nie jest w pobliżu, stosuje się wyższe wagi.
user3788557
Bez wag przypadków twoje szkolenie modelowe dałoby równe znaczenie zarówno starym, jak i nowym danym, ale przy proponowanych wagach, nadałoby większe znaczenie nowszym danym, więc w tym sensie jest tendencyjne do nowych obserwacji, ale to jest co chciałeś. Nie rozumiem, dlaczego „wagi mogą być dozwolone tylko dla przypadków testowych” . Ponadto, w jaki sposób wyższe wartości byłyby stosowane dla starszych wartości, gdy zestaw treningowy jest losowo tasowany? gdy modelingTime pozostaje taki sam dla wszystkich przypadków treningowych. Ciężary skrzynek PS nie mają zastosowania tylko w przypadku modelu, mają zastosowanie tylko w okresie szkoleniowym.
Ujjwal Kumar
0

Dane (a nie analityk przyjmujący założenia - przypuszczenia) często mogą sugerować formę schematu ważenia. Odbywa się to za pomocą GLS, gdzie odpowiednie wagi dla ważonego modelu najmniejszych kwadratów są uzyskiwane ze statystycznie istotnych różnic stwierdzonych w wariancji błędu. Spójrz na wykrywanie zmian i wartości odstających za pomocą ARIMA (procedura Tsay) i tutaj http://docplayer.net/12080848-Outliers-level-shift-and-variance-changes-in-time-series.html . Jeśli chcesz opublikować dane, zrób to tutaj, a ja postaram się pomóc, ponieważ mam rutynowy dostęp do oprogramowania, które może cię oświecić.

Istnieje wersja R oprogramowania, którego używam.

Możesz spojrzeć na Jak uwzględnić zmienne kontrolne w analizie interwencji z ARIMA? ponieważ ma przykład identyfikowania wag i wykorzystywania ich do ustabilizowania wariancji błędu, tym samym skutecznie wierząc / nie wierząc / dyskontując / ważąc / ufając pewnym wcześniejszym wartościom.

IrishStat
źródło