eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › przewidywanie wartości cyklicznego wykresu
Ilość wypowiedzi w tym wątku: 18

  • 1. Data: 2010-08-24 10:12:56
    Temat: przewidywanie wartości cyklicznego wykresu
    Od: Mark <m...@g...com>

    Cześć,

    Załóżmy, że mamy dane, które układają się w sposób cykliczny, np.
    liczba opadów w danym mieście z kilku lat, czy sprzedaż ołówków w
    skali tygodniowej. Jak się zrobi wykres słupkowy, to wyraźnie widać
    cykliczną tendecję.

    Jednak: Dane mogą być niekompletne. Cykl może się zmieniać - może się
    nieco skracać, wydłużać. Wartości na wykresie mogą układać się w
    ładne cykle, ale czasami mogą być niespodziewane piki.

    Mając taki wykres chciałbym podjąć próbę przewidzenia wartości w
    przyszłości. Oczywiście jak każde przewidywanie jest obarczone błędem
    i ryzykiem (zdaję sobie z tego sprawę).
    Mając taki wykres w miarę intuicyknie można dorysować kolejny cykl
    ołówkiem..

    Jakiego algorytmu, metody powinienem użyć do przewidywania wartości
    cyklicznego wykresu ?
    (mając np. 10 cykli wstecz chciałbym przewidzieć jeden do przodu).

    Dzięki za pomoc !


  • 2. Data: 2010-08-24 10:20:59
    Temat: Re: przewidywanie wartości cyklicznego wykresu
    Od: Segmentation Fault <c...@o...eu>

    On 08/24/2010 12:12 PM, Mark wrote:
    > Cześć,
    >
    > Załóżmy, że mamy dane, które układają się w sposób cykliczny, np.
    > liczba opadów w danym mieście z kilku lat, czy sprzedaż ołówków w
    > skali tygodniowej. Jak się zrobi wykres słupkowy, to wyraźnie widać
    > cykliczną tendecję.
    >
    > Jednak: Dane mogą być niekompletne. Cykl może się zmieniać - może się
    > nieco skracać, wydłużać. Wartości na wykresie mogą układać się w
    > ładne cykle, ale czasami mogą być niespodziewane piki.
    >
    > Mając taki wykres chciałbym podjąć próbę przewidzenia wartości w
    > przyszłości. Oczywiście jak każde przewidywanie jest obarczone błędem
    > i ryzykiem (zdaję sobie z tego sprawę).
    > Mając taki wykres w miarę intuicyknie można dorysować kolejny cykl
    > ołówkiem..
    >
    > Jakiego algorytmu, metody powinienem użyć do przewidywania wartości
    > cyklicznego wykresu ?
    > (mając np. 10 cykli wstecz chciałbym przewidzieć jeden do przodu).
    >
    > Dzięki za pomoc !

    zacznij od http://en.wikipedia.org/wiki/Fast_Fourier_transform

    Ale może się okazać, że tylko Ci się wydaje, że coś jest cykliczne.
    Wtedy możesz poeksperymentować z wróżeniem z fusów ala analiza techniczna ;)


  • 3. Data: 2010-08-24 10:58:15
    Temat: Re: przewidywanie wartości cyklicznego wykresu
    Od: Mark <m...@g...com>

    On 24 Sie, 12:20, Segmentation Fault <c...@o...eu> wrote:
    > On 08/24/2010 12:12 PM, Mark wrote:
    [...]
    > zacznij odhttp://en.wikipedia.org/wiki/Fast_Fourier_transfor
    m
    >
    > Ale może się okazać, że tylko Ci się wydaje, że coś jest cykliczne.
    > Wtedy możesz poeksperymentować z wróżeniem z fusów ala analiza techniczna ;)

    Z tego co mi się wydaje, szybka transformata fouriera zakłada, że
    sygnał składa się z sinusoid i na takie sinusoidy rozbija sygnał.
    Jednak w moim przypadku, okres trwania cyklu może się zmieniać - np. o
    15% i nie jestem pewny jak wtedy FFT się zachowa.. ?

    Co do analizy technicznej - jaki algorytm/metodę polecacie w takim
    przypadku ?

    Pozdrawiam


  • 4. Data: 2010-08-24 14:33:02
    Temat: Re: przewidywanie wartości cyklicznego wykresu
    Od: Segmentation Fault <c...@o...eu>

    On 08/24/2010 12:58 PM, Mark wrote:
    > On 24 Sie, 12:20, Segmentation Fault <c...@o...eu> wrote:
    >> On 08/24/2010 12:12 PM, Mark wrote:
    > [...]
    >> zacznij odhttp://en.wikipedia.org/wiki/Fast_Fourier_transfor
    m
    >>
    >> Ale może się okazać, że tylko Ci się wydaje, że coś jest cykliczne.
    >> Wtedy możesz poeksperymentować z wróżeniem z fusów ala analiza techniczna ;)
    >
    > Z tego co mi się wydaje, szybka transformata fouriera zakłada, że
    > sygnał składa się z sinusoid i na takie sinusoidy rozbija sygnał.
    > Jednak w moim przypadku, okres trwania cyklu może się zmieniać - np. o
    > 15% i nie jestem pewny jak wtedy FFT się zachowa.. ?


    FFT daje Ci informację ile jest jakiej składowej w całej próbce. Jeśli
    chcesz uchwycić zmiany w czasie, możesz robić FFT na mniejszych wielu
    krótszych próbkach ( ale wtedy stracisz "najdłuższe" składowe).

    Poczytaj też ogólnie o szeregach czasowych ( w tym o metodach opartych
    na falkach). Konkretnej metody Ci nie doradzę, nie znam się na tym.


  • 5. Data: 2010-08-24 19:59:39
    Temat: Re: przewidywanie wartości cyklicznego wykresu
    Od: "slawek" <s...@h...pl>


    Użytkownik "Segmentation Fault" <c...@o...eu> napisał w
    wiadomości grup dyskusyjnych:4c73d821$0$22796$6...@n...neostrad
    a.pl...
    > FFT daje Ci informację ile jest jakiej składowej w całej próbce. Jeśli
    > chcesz uchwycić zmiany w czasie, możesz robić FFT na mniejszych wielu
    > krótszych próbkach ( ale wtedy stracisz "najdłuższe" składowe).

    Trochę nie tak. Polecam encyklopedię Popularkisa, nic jej przeczytanie nie
    daje, ale można się o nią oprzeć, bo gruba książka (CRC wydało). W Googlach
    znajdziecie.

    FFT - NIE JEST TRANSFORMACJĄ FOURIERA - WBIJCIE TO SOBIE DO GŁOWY RAZ NA
    ZAWSZE.

    W Polsce i nie tylko w Polsce są książki, których autorzy nie potrafią tego
    zrozumieć. Liczba artykułów naukowych ze źle obliczoną transformacja
    Fouriera... jest przerażająca!

    Transformacja Fouriera jest transformacją całkową, bardzo przyjemną, nieco
    bardziej popularną od transformacji Laplace'a albo Z. Po prostu trzeba
    policzyć całkę z iloczynu danej
    funkcji oraz czynnika E^(I omega t), gdzie I^2 = -1. Do tego dochodzi
    jeszcze czynnik 2 Pi w którymś miejscu, a bywa że zamiast omega jest 2 Pi f
    albo jeszcze coś innego. Nietrudno znaleźć definicję, wszędzie pełno
    rozmaitych wzorów i twierdzeń.

    Jeżeli spróbować liczyć tę całkę - czyli transformację Fouriera - dla
    dyskretnych danych - czyli po prostu numerycznie - to wychodzi taki mniej
    więcej wzorek:

    (coś) Suma[ czegoś(częstotliwość), po czymś]

    FFT daje jako wynik, tak już tradycyjnie jest to zrobione, wartości tej
    sumy - czyli nie zawiera czynnika "coś" ! (W istocie rzeczy jest to krok z
    jakim próbkowane są dane wymnożony przez "2Pi do jakiejś potęgi", ale to
    nieistotne na tym poziomie zagłębiania się w FFT.)

    W dodatku, tradycyjnie, FFT zwraca wartości w tablicy w porządku
    "warp-around", tj. najpierw pół tablicy idzie dla rosnących częstości, a
    drugie pół tablicy jest wypełniane od końca dla malejących UJEMNYCH
    częstości.

    W dodatku aby liczyć FFT poprawnie, trzeba uwzględnić intermodulację (łół,
    ładne słowo - oznacza po polsku angielski termin aliasing), trzeba umieć
    zastosować funkcję okna. Trzeba pamiętać, iż "zwykły" algorytm FFT wymaga
    równomiernie rozmieszczonych danych wejściowych w ilości 2^n itd. itp.

    Jeszcze raz - FFT to klocek, przy pomocy którego /można/ obliczyć
    transformację Fouriera - ale potrzeba jeszcze: policzyć jak transformują się
    odcięte; przeskalować przez "coś"; rozpakować "warp-around". Tymczasem
    rozmaici jeniusze potrafią po prostu jako transformację Fouriera rzucić
    wynik funkcji fft() z Matlab-a... no bo co im tam...

    Aby było ciekawiej - do niektórych zastosowań (np. liczenie splotu) można
    ominąć niektóre rzeczy - np. dziwaczne zwarpowanie danych - przy
    transformacji odwrotnej samo się odkręci. Dlatego opłaca się aby FFT było
    jakie jest. Ale pamiętajcie - to nie jest prawdziwa transformacja Fouriera!
    To taki sam półprefabrykat jak pół kilo mięsa z kością z którego robi się
    schabowe.

    > Poczytaj też ogólnie o szeregach czasowych ( w tym o metodach opartych
    > na falkach). Konkretnej metody Ci nie doradzę, nie znam się na tym.
    -
    Falki są zajebiaszcze. Ale! NAJPIERW PRZECZYTAĆ KSIĄŻECZKĘ pani Ingrid D.
    (której - patrz http://www.pacm.princeton.edu/~ingrid/ ), "Ten lectures..."
    SIAM.

    Dlaczego? Bo cała reszta jest niemal bezwartościowa przy tym. Albo mnóstwo
    lania wody, albo - gorzej! - silenie się na "naukowość". Ok, jest jeszcze
    parę niezłych autorów, każdy jednak zawsze cytuje Ingrid - więc coś w tym
    jest. Ostrzegam! Tam są całki. I nie tylko.

    Co da przeczytanie tej książki? Np. byłem sobie raz na pewnej obronie
    pewnego doktoratu... komisja łykała niczym młode pelikany opowieści o tym,
    jak to po sprawdzeniu że dany sygnał daje się obrabiać falkami jakimiś tam,
    sprawdzane było czy da się obrabiać falkami innymi. Tak z tuzin falek
    sprawdzano, pół roku, każdymi - zadziwiające - się dało! Pół pracy o tym
    było. No cóż, twierdzenie o równoważności wszystkich transformacji falkowych
    jest w jednym z pierwszych rozdziałów wspomnianej książki... ale
    szczęśliwie, komisja nie czytała, i dobrze jej tak.

    Stosunkowo proste jest przerzucenie szeregu czasowego falkami w "scroll
    map". To na dzień dobry wystarcza niemal do wszystkiego, jest dużo lepsze
    niż FFT. Tak, jest wavelet toolbox w Matlabie. Jaką falkę wybrać? Patrz
    wyżej.

    A teraz jeszcze jedno. Szeregi czasowe szeregami czasowymi. Jednak wątpię,
    czy bez znajomości chaosu da się coś zrobić naprawdę dobrze. Aby wykryć
    chaos trzeba albo bawić się w rekonstruowanie atraktorów i takie tam, albo
    po prostu - jeżeli to możliwe - policzyć transformację Fouriera (widmo mocy
    na ten przykład wyliczyć sobie).

    I jeszcze jedno - jeżeli wykres jest generowany przez istoty rozumne i z
    wolną wolą - to kupa. Przewidywanie będzie tak dobre, jak gapienie w szklaną
    kulę. Polecam lekturę "Tono Bungay", taka książka, tam jest prześlicznie
    opisane, co jak i dlaczego. Google wiedzą kto napisał, a nawet podsuną
    streszczenie.

    slawek


  • 6. Data: 2010-08-24 23:10:50
    Temat: Re: przewidywanie wartości cyklicznego wykresu
    Od: bartekltg <b...@g...com>

    On 24 Sie, 21:59, "slawek" <s...@h...pl> wrote:

    >   (coś) Suma[ czegoś(częstotliwość), po czymś]
    >
    > FFT daje jako wynik, tak już tradycyjnie jest to zrobione, wartości tej
    > sumy - czyli nie zawiera czynnika "coś" !  (W istocie rzeczy jest to krok z
    > jakim próbkowane są dane wymnożony przez "2Pi do jakiejś potęgi", ale to
    > nieistotne na tym poziomie zagłębiania się w FFT.)

    A wiesz, ze to cos w transformacie Fouriera jest rozne
    w zaleznosci od 'gatunku' tranfformaty:)

    Wydajesz sie tez mieszac transformate fouriera (calkowa)
    z dyskretną TF. A od tego nalezalo by chyba zaczac,
    jesli zwracasz uwage na neiscislosci w uzyciu i terminologii.

    > W dodatku, tradycyjnie, FFT zwraca wartości w tablicy w porządku
    > "warp-around", tj. najpierw pół tablicy idzie dla rosnących częstości, a
    > drugie pół tablicy jest wypełniane od końca dla malejących UJEMNYCH
    > częstości.

    No jak to, przeciez liczymy splot z exp(ikn/L) dla wiekszego k;-)
    A na serio, to chyba kazdy przytomny to zauwaza.

    pozdr
    bartekltg


  • 7. Data: 2010-08-24 23:16:14
    Temat: Re: przewidywanie wartości cyklicznego wykresu
    Od: bartekltg <b...@g...com>

    On 24 Sie, 21:59, "slawek" <s...@h...pl> wrote:

    > FFT - NIE JEST TRANSFORMACJĄ FOURIERA - WBIJCIE TO SOBIE DO GŁOWY RAZ NA
    > ZAWSZE.

    A jak juz napieramy na terminologie, FFT to konkretny algorytm
    realizacji dyskretnej transformty fouriera, ale obie mozna
    spokojnie nazwac transformata fouriera, bo _są_ transformatami
    fouriera na odpowiedniej przestrzeni (wektorow |C^N).

    I to, ze algorytm FFT wymaga 2^n probek tez nie jest prawda,
    ale dodaleś przymiotnik 'zwykla' to moze wszedzie jest
    zaimplementowana niezwykla:)

    pozdrawiam
    bartekltg


  • 8. Data: 2010-08-25 07:12:36
    Temat: Re: przewidywanie wartości cyklicznego wykresu
    Od: "slawek" <s...@h...pl>


    Użytkownik "bartekltg" <b...@g...com> napisał w wiadomości grup
    dyskusyjnych:b1279461-b4dc-4b12-8c03-7b9b1d3b2c68@m1
    g2000yqo.googlegroups.com...
    > A wiesz, ze to cos w transformacie Fouriera jest rozne
    > w zaleznosci od 'gatunku' tranfformaty:)

    A czy ty, Bartku-głupku-wioskowy, przeczytałeś już "Transforms and
    Applications Handbook" z serii Electrical Engineering Handbook wydawanej
    przez CRC?

    Pytasz za co? No za to, że nie zgooguglałeś literatury jaką podawałem.

    > Wydajesz sie tez mieszac transformate fouriera (calkowa)
    > z dyskretną TF. A od tego nalezalo by chyba zaczac,
    > jesli zwracasz uwage na neiscislosci w uzyciu i terminologii.

    O, jeszcze jeden idiota, który nie ma pojęcia o matematyce - myśli, że są
    "dwie" transformacje Fouriera - taka z podręcznika matematyki i taka z
    matlabów.

    slawek



  • 9. Data: 2010-08-25 07:35:42
    Temat: Re: przewidywanie wartości cyklicznego wykresu
    Od: "slawek" <s...@h...pl>


    Użytkownik "bartekltg" <b...@g...com> napisał w wiadomości grup
    dyskusyjnych:d4ea9b3b-40aa-415a-8c64-f6f5630588e6@l2
    0g2000yqm.googlegroups.com...
    > A jak juz napieramy na terminologie, FFT to konkretny algorytm
    > realizacji dyskretnej transformty fouriera, ale obie mozna
    > spokojnie nazwac transformata fouriera, bo _są_ transformatami
    > fouriera na odpowiedniej przestrzeni (wektorow |C^N).

    "Spokojnie" to może je tak nazywać idiota-administrator od wymiany papieru w
    drukarkach.

    Wystarczy prowadzić obliczenia na konkretnych fizycznych zmiennych, z
    użyciem jednostek, aby zrozumieć o co biega. No, ale taki "informatyk" to
    nigdy tego nie robi - dla niego liczy się tylko to, że ma w bibliotece
    procedur coś ze słowem Fourier w środku. Jak to zastosuje do danych
    wejściowych - to na wyjściu będzie miał "fouriera".

    No, Bartuś, dla ciebie to czy zarabiasz 100 tysięcy euro, 100 tysięcy
    dolarów, 100 tysięcy złotych czy 100 tysięcy koron - jest nieważne - prawda?
    Może być nawet 100 tysięcy groszy, ważne że cyferki są takie same, no nie?
    FFT wypindala wynik bez wymnożenia przez krok, jak zaczniesz zmieniać krok,
    to wyniki będą ci jeździć w te i we te. Dokładnie tak samo, jak zmiana
    waluty bez zmiany cyferek na kontrakcie.

    Pomijając rzecz najoczywistszą - Fourier dawno był martwy, gdy powstawał
    FFT.

    > I to, ze algorytm FFT wymaga 2^n probek tez nie jest prawda,
    > ale dodaleś przymiotnik 'zwykla' to moze wszedzie jest
    > zaimplementowana niezwykla:)

    Ciekawe. Z tego co pamiętam to algorytm Cooley'a-Turkey'a wymaga jak
    najbardziej. Oczywiście, to nie jedyny sposób liczenia - są rozmaite
    modyfikacje, ulepszenia itd. itp. Nie zmienia to (dość oczywistego) faktu,
    że na wersję 2^n można po prostu trafić - a wersje z np. nieparzystą liczbą
    elementów 2 m + 1 niejasno określają jaki znak ma częstotliwość przy
    odpowiadający m+1, czyli dokładnie ze środeczka. Nic strasznego, ale kolejna
    rzecz o której trzeba pamiętać.

    slawek



  • 10. Data: 2010-08-25 08:14:05
    Temat: Re: przewidywanie wartości cyklicznego wykresu
    Od: "marek.hudyma" <m...@g...com>

    [.....]

    Dziękuję za zainteresowanie i dyskusję na temat Fouriera. Aż wstyd się
    przyznać, po skończeniu politechniki, niewiele mi już zostało w głowie
    z tego tematu.
    Jak każdy inteligentny człowiek, jestem w stanie powtórzyć sobie
    gruntownie wiedzę z tego zakresu.
    Moje pytanie brzmi, czy powinienem ??

    W moim problemie "cykl" próbek może wahać się o kilka procent (oceniam
    że raz cykl może być dłuższy raz krótszy do 15-20%). Czasem może
    brakować próbek, a czasmi 'piki' mają nie być brane pod uwagę.

    Czy w takim przypadku Fourier jest w stanie mi pomóc ?

    Dziękuję za podpowiedź

strony : [ 1 ] . 2


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: