Mam szereg czasowy pomiarów (wysokości-jednowymiarowy szereg). W okresie obserwacji proces pomiaru spadł o kilka punktów czasowych. Tak więc dane wynikowe są wektorem z NaN, w których występują luki w danych. Korzystanie z MATLAB-a powoduje mi problem podczas obliczania autokorelacji ( autocorr
) i stosowania sieci neuronowych ( nnstart
).
Jak należy sobie radzić z tymi lukami / NaN? Czy powinienem je po prostu usunąć z wektora? Lub zastąpić ich wpis interpolowaną wartością? (jeśli tak, to jak w MATLAB)
Istnieje kilka algorytmów, które są odporne na brakujące wartości, więc preferowanym rozwiązaniem jest ich poszukiwanie (na przykład R
acf
dla autokorelacji).Ogólnie rzecz biorąc, sposobem jest albo po prostu odrzucić dane z brakującymi obserwacjami (może być bardzo bolesne), albo po prostu przypisać ich wartości - średnia sąsiadów może wystarczyć do gładkich szeregów i małych przerw, ale oczywiście jest mnóstwo innych potężniejszych metod, z użyciem splajnów, wartości losowych / najczęstszych, imputacji z modeli itp.
źródło
Użyj funkcji wykrywania interwencji, aby przypisać brakujące wartości wykorzystujące użyteczną strukturę ARIMA oraz wszelkie lokalne trendy czasowe i / lub zmiany poziomów.
źródło
są tutaj 2 problemy. pierwszym jest dostarczenie sensownego szkieletu numerycznego dla twojej odpowiedzi autokorelacji w Matlabie. aby tak się stało, musisz rozciągnąć i / lub załatać część szeregów czasowych swoich wektorów danych ... ten element „integralności danych” problemu jest najbardziej fundamentalny.
po drugie, musisz zdecydować, jak obsłużyć komponent „wartości” wektora ... zależy to w dużej mierze od konkretnej aplikacji, co najlepiej założyć (np. małe, brakujące znaczniki czasu i odpowiednie NaNs w przeciwnym razie można bezpiecznie interpolować wartości zerowe od sąsiadów ... w większych odstępach ustawienie wartości zero jest prawdopodobnie bezpieczniejsze ... lub przypisywanie zgodnie z zaleceniami powyżej - oczywiście aby było to znaczące, odstępy ponownie muszą być stosunkowo małe.) .
źródło