Testuj, aby odróżnić dane okresowe od prawie okresowych

9

Załóżmy, że mam jakąś nieznaną funkcję z domeną , o której wiem, że spełnia pewne rozsądne warunki, takie jak ciągłość. Znam dokładne wartości f (ponieważ dane pochodzą z symulacji) w niektórych jednakowo odległych punktach próbkowania t_i = t_0 + iΔt z i∈ \ {1,…, n \} , które mogę założyć, że są wystarczająco dokładne, aby uchwycić wszystkie istotne aspekty f , np. mogę założyć, że pomiędzy dwoma punktami próbkowania występuje co najwyżej jeden ekstremum lokalne f . Szukam testu, który powiedziałby mi, czy moje dane są zgodne z tym, że f jest dokładnie okresowe, tj. ∃τ: f (t + τ) = f (t) \, ∀ \, tffti=t0+iΔti{1,,n}fffτ:f(t+τ)=f(t)t, przy czym długość okresu jest nieco rezonansowa, na przykład Δt<τ<n·Δt (ale możliwe jest, że mogę wprowadzić silniejsze ograniczenia, jeśli to konieczne).

Z innego punktu widzenia mam dane x0,,xn i szukam testu, który odpowie na pytanie, czy istnieje funkcja okresowa f (spełniająca powyższe warunki), że f(ti)=xii .

Ważne jest to, że f jest co najmniej bardzo zbliżone do okresowości (może to być na przykład f(t):=sin(g(t)·t) lub f(t):=g(t)·sin(t) z g(t)g(t0)/Δt ) w zakresie, w jakim zmiana jednego punktu danych o niewielką ilość może wystarczyć, aby dane były zgodne z f będącym dokładnie okresowym. Zatem standardowe narzędzia do analizy częstotliwości, takie jak transformata Fouriera lub analiza przejść przez zero, niewiele pomogą.

Zauważ, że test, którego szukam, prawdopodobnie nie będzie probabilistyczny.

Mam kilka pomysłów, jak sam zaprojektować taki test, ale chcę uniknąć ponownego opracowania koła. Więc szukam istniejącego testu.

Wrzlprmft
źródło
4
Biorąc pod uwagę, że masz dane , czy możesz wyjaśnić, co masz na myśli mówiąc, że test nie jest „statystyczny”? Jakiego rodzaju test masz na myśli?
whuber
1
Przy okazji, może chcesz zacząć tu w przypadku, gdy patrząc na test statystyczny okresowości.
tchakravarty
2
Jak określono punkty próbkowania? Ponieważ prawdopodobnie nie wiesz dokładnie, co to jest , to gdyby ktoś inny spróbował , czy nie użyłby różnych „czasów” i dlatego nie uzyskałby różnych wartości? To jest zmienność. Nawiasem mówiąc, nie ma czegoś takiego jak dokładne dane, chyba że wykonujesz teoretyczne ćwiczenie matematyczne, więc dobrym pomysłem byłoby wyjaśnienie, w jaki sposób znalazłeś wartości . fff
whuber
2
Ponieważ @whuber i ameba jeżdżą, na to pytanie pozostanie trudna odpowiedź, dopóki nie zostanie dostarczona zadowalająca definicja okresowego i / lub testu . Biorąc pod uwagę dowolnych punktów próbkowanych bezbłędnie, istnieje nieskończenie wiele ciągłych funkcji okresowych (wykorzystujących dosłowną definicję), które pasują do tych punktów. To proste ćwiczenie interpolacyjne. Ale to oczywiście nie jest więcej odpowiedź na twoje pytanie niż fakt, że zestaw losowych predyktorów idealnie dopasuje punktów za pomocą regresji liniowej. Dlatego czekamy z zapartym tchem na twoje wyjaśnienie. nnn
kardynał
1
Dla każdego który nie jest racjonalną wielokrotnością , dane, które posiadasz, mogą być zawsze przeglądane jako próbka ciągłej funkcji okresowej okresu ponieważ nie masz żadnych obserwacji dokładnie całkowitej wielokrotności od siebie. Prowadzi to do spostrzeżeń @ kardynała, co sprowadza się do stwierdzenia, że ​​ten wniosek jest zbyt trywialny, aby był użyteczny, ale nie podałeś żadnych kryteriów, aby go wykluczyć. τΔtττ
whuber

Odpowiedzi:

0

Tak jak powiedziałem, miałem pomysł, jak to zrobić, co zrealizowałem, udoskonaliłem i napisałem artykuł, który jest teraz opublikowany: Chaos 25, 113106 (2015) - preprint na ArXiv .

Badane kryterium jest prawie takie samo jak naszkicowane w pytaniu: Biorąc pod uwagę dane próbkowane w punktach czasowych , test decyduje, czy jest funkcja oraz takie, że:x1,,xnt0,t0+Δt,,t0+nΔtf:[t0,t0+Δt]τ[2Δt,(n1)Δt]

  • f(t0+iΔt)=xii{1,,n}
  • f(t+τ)=f(t)t[t0,t0+Δtτ]
  • f ma więcej niż lokalne ekstrema sekwencji , z możliwym wyjątkiem co najwyżej jednego ekstremum końca do początku i końca każda.xf

Test można zmodyfikować w celu uwzględnienia drobnych błędów, takich jak błędy numeryczne metody symulacji.

Mam nadzieję, że mój artykuł odpowiada również, dlaczego byłem zainteresowany takim testem.

Wrzlprmft
źródło
-1

Przekształć dane w dziedzinę częstotliwości za pomocą dyskretnej transformaty Fouriera (DFT). Jeśli dane są idealnie okresowe, będzie dokładnie jeden przedział częstotliwości o wysokiej wartości, a inne przedziały będą wynosić zero (lub bliskie zeru, patrz wyciek widmowy).

Zauważ, że rozdzielczość częstotliwości jest podana przez . To ustawia limit precyzji wykrywania.sampling frequencyNumber of samples

jak
źródło
1
Jak już wspomniałem w pytaniu, transformacja Fouriera (przynajmniej sama w sobie) nie jest nawet wystarczająco precyzyjna, aby wykryć różnice, którymi jestem zainteresowany i prawie nie wykryje żadnej różnicy między i . To, co twierdzisz, dotyczy tylko danych sinusoidalnych. W przypadku innych danych pojawią się subharmoniczne. sin(x)(1+εx)·sin(x)
Wrzlprmft
-2

Jeśli znasz aktualny sygnał okresowy, oblicz

difference=|theoretical datameasured data|

Następnie zsumuj elementy . Jeśli jest powyżej progu (rozważ błąd arytmetyki zmiennoprzecinkowej), dane nie są okresowe.difference

asdsaj
źródło
1
Poza tym, że nie znam sygnału bazowego, nie ma to nic wspólnego z okresowością, ale działałoby, ilekroć znam sygnał bazowy.
Wrzlprmft