Piszę program, który uśrednia wagę użytkownika w różnych dniach. Planuję użyć 5-punktowej średniej kroczącej (bieżący dzień, dwa przed i dwa po). Czasami brakuje punktu danych na 1-2 dni. Jak zwykle obsługiwane są te sprawy?
(jeśli jest lepszy filtr dolnoprzepustowy, którego mógłbym użyć, chętnie skorzystam z sugestii)
Odpowiedzi:
Ogólnie rzecz biorąc, regresja działałaby lepiej w automatycznym dopasowywaniu brakujących punktów zamiast wybranego filtru średniej ruchomej.
Jeśli używasz AR (filtr auto-regresywny) lub filtr ARMA - możesz mieć przewidywaną wartość wyjściowej próbki na podstawie przeszłych danych wejściowych.
Istnieją różne inne alternatywy - możesz zachować
Zasadniczo jest to gra polegająca na przewidywaniu tej wartości i kontynuowaniu jej używania jako sygnału. Oczywiście przewidywania nie będą takie same jak w oryginalnej próbce, ale to nie cena, jaką płacisz za brak danych.
źródło
Prostą i ogólną metodą wypełniania brakujących danych w przypadku serii kompletnych danych jest
regresja liniowa . Załóżmy, że masz 1000 przebiegów po 5 z rzędu, ale żadnego nie brakuje.
Skonfiguruj wektor 1000 x 1 y i macierz 1000 x 4 X:
Regresja da ci 4 liczby abcd, które dają najlepsze dopasowanie
dla 1000 wierszy danych - różne dane, różne abc d.
Następnie używasz tych abcd do oszacowania (przewidywania, interpolacji) brakujących wt [0].
(W przypadku ludzkich ciężarów spodziewałbym się, że abcd będzie wynosić około 1/4).
W python, patrz numpy.linalg.lstsq .
(Istnieje wiele książek i artykułów na temat regresji na wszystkich poziomach. Jednak w związku z interpolacją nie znam dobrego wstępu; ktoś?)
źródło
źródło
myślę, że najprostszym sposobem byłoby „przewidzieć” datę „całości” w szeregu czasowym, korzystając z danych, które pojawiły się wcześniej. wtedy możesz użyć tego szeregu czasowego do oszacowania parametrów. (możesz następnie kontynuować i ponownie ustalić brakujące wartości, używając oszacowanych parametrów z całego (ukończonego) szeregu czasowego i powtarzaj to, aż się zbiegną). granice ufności powinieneś wyprowadzić z liczby rzeczywistych punktów danych, które posiadasz, a nie z długości wypełnionych zestawów danych.
źródło