lucp / TimeSeriesAnalysis

Analiza szeregów czasowych – sieci neuronowe / algorytmy genetyczne
0 stars 0 forks source link

Statystyka - funkcje lib + implementacja brakujacych #4

Open trzytematyczna opened 10 years ago

trzytematyczna commented 10 years ago

Obsluga wszystkich korelacji (regresje liniowe) i innych, czesc za pomoca libki - proponuje JSat ( http://code.google.com/p/java-statistical-analysis-tool/ ) lub ComonsMath (http://commons.apache.org/proper/commons-math/) chociaz bardziej podoba mi sie to pierwsze. Oczywiscie w calosc wchodzi rowniez implementacja tej czesci statystyki, ktorej nie ma w lib ;)

synusynu commented 10 years ago
olgierdg commented 10 years ago

Spytałem dzisiaj Zachary o to jakie on widzi relacje statystyczne oprócz korelacji i rozkładu normalnego wartości oczekiwanej, odpowiedział że w sumie to tylko te dwie. Jednak proponuję się przejść do niego i dopytać, bo może się okazać że jeszcze zmieni zdanie.

synusynu commented 10 years ago

JSat okazał się nieprzydatny, bo:

  1. nie znalazłem w nim tak prostych rzeczy, jak współczynnik korelacji, za to można nim chyba sterować kosmosem;
  2. może operować tylko na danych w jakimś zrytym formacie (ARFF), a że my mamy to w CSV, wykorzystałem CommonMatha.
synusynu commented 10 years ago

dobra, dodałem obsługę tego TimeSeries. co do samego działania tego badziewia, wyczytałem, że cross-correlation metodą Spearmana powinno załatwiać sprawę zależności nieliniowych i wystepującach z dowolnym przesunięciem czasowym.

Z tym, że w tym momencie: -funkcja getCorrelationCoefficients zwraca tablicę 2*N-1 elementów (dla dwóch szeregów długości n) z wartościami korelacji. Na razie proponuję nic z tym nie robić, ew. wypisywać w GUI max(abs(wspolczynikow)), a jak wymyślę, w jaki sposób można interpretować te wyniki, to to zrobię. -ew. można wyrysować też współczynniki i będzie bardziej cool

synusynu commented 10 years ago

ok, wrzuciłem update:

  1. Zwracane są współczynniki korelacji wzajemnej: tablica doubli, można ją wykreślić, chociaż chyba nie ma to sensu jednak
  2. zwracane są przedziały w/w współczynników dla 95% przedziału ufności (czy coś) czyli mamy wartości np: 0.4 -0.25 0.49 czyli korelacja 0.4, w przedziale -0.25 do 0.49 czyli mało wiarygodne albo korelacja -0.8, i przedział 0.75 do 0.82, czyli wiarygodnie (dla przypomnienia: korelacja 0 - brak zależności, 1 albo -1 - bezpośrednia zależność danych)
  3. średnia i wariancja dla każdego szeregu
  4. Ograniczenia: długości obu szeregów muszą być równe i większe niż 4.

Inna sprawa jak te wyniki interpretować, dalej nie wymyśliłem nic finalnie przekonującego mnie. Myślę, że z wykresów jakichkolwiek możemy zrezygnować i wypisywać tylko tabelkę z: średnimi szeregów wariancjami np 10 najwiarygodniejszych wyników (z najwęższymi przedziałami), albo 10 największych wsp korelacji i ich przedziały, na tej podstawie można będzie stwierdzić, czy dwa szeregi mają jakiekolwiek wspólne cechy, czy nie.

Jeżeli macie jakieś inne pomysły jak te dane rozumieć, to rzucajcie mie tu.

Wrzuciłem też ten plik pom, ale robiłem go kopypejstem, więc może to być durnota :)

Dziś już nie będę miał czasu na to, będę miał jutro.

Btw, zapraszam dziś na koncert :)