eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › Jak dobrze uwarunkować metodę najmniejszych kwadratów
Ilość wypowiedzi w tym wątku: 56

  • 31. Data: 2016-04-05 00:05:48
    Temat: Re: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: slawek <f...@f...com>

    On Mon, 04 Apr 2016 15:20:12 -0500, RW <b...@g...pl>
    wrote:
    > Zalezy w jakim problemie, jezeli rozwiazujesz problem predykcji,
    kiedy X
    > jest znane a Y losowe, to nie ma sensu wymagac niezmienniczosci
    wzgledem
    > transformacji, bo X i Y nie sa rownowazne.

    Oczywiście. Tyle że Y będzie losowe tylko trochę. Bo jak kompletne
    random, to regresja i tak nie będzie miała sensu.

    Najczęściej dane są niepewne i w X, i w Y. Np. jeżeli X to kolejne
    dni, to Delta X będzie gdzieś między 12 godzin a czasem Plancka.
    Czyli nie zero. Nawet jeżeli to będzie 1E-999 to transformacja
    nieliniowa da konkretnie różne wagi dla różnych x.


  • 32. Data: 2016-04-05 16:09:22
    Temat: Re: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: bartekltg <b...@g...com>

    On 01.04.2016 04:30, Borneq wrote:
    > Rysowałem punkty na płaszczyźnie i chciałem do tego dopasować prostą.

    To albo nieprecyzyjne opisanie problemu, albo opisanie problemu
    innego, niż starasz się rozwiązać.

    Regresja liniowa jest estymatorem największej wiarygodności dla
    modelu
    Y_i = a*X_i + b + e_i
    gdzie e_i jest błędem o rozkłądzie normalnym.
    Czyli dopasowanie funkcji liniowej do wykresu punktów.

    Dopasowanie prostej do punktów na płaszczyźnie (pelna symetria) robi
    się przez SVD.
    http://mst.mimuw.edu.pl/lecture.php?lecture=ona&part
    =Ch7


    > Metodą najmniejszych kwadratów (np.
    > http://www.algorytm.org/procedury-numeryczne/metoda-
    najmniejszych-kwadratow.html)

    > Współczynnik a był w ogóle nie przystający do danych. Nie wiedziałem
    > dlaczego, szukałem błędu a wszystko się zgadzało.
    > W końcu odkryłem że miałem float a nie double.

    Fuuuu.
    :)

    > Problemem było to , że
    > odejmowaliśmy dwie bliskie sobie duże liczby a wynik był małą liczbą.
    > Czy można zmienić wzorki tak, by zadanie było lepiej uwarunkowane?

    Na dzień dobry zalecam nie używać serwisów dla licealistów;-)
    Tyle materiałow w sieci leży.

    http://www.mimuw.edu.pl/~pokar/StatystykaI/Ksiazki/N
    iemiroBook.pdf (9.2.1)
    Czy nawet wiki:
    https://en.wikipedia.org/wiki/Simple_linear_regressi
    on#Fitting_the_regression_line

    a = sum[ (y- y_sr)(x- x_sr) ] / sum[ (x- x_sr)^2 ]

    b = y_sr - a * x_sr


    Dwuprzebiegowe... I co z tego:)

    Wriancje (mianownik piwrwszego ułamka) da się policzyć w jednym przbiegu
    https://en.wikipedia.org/wiki/Algorithms_for_calcula
    ting_variance#Online_algorithm
    więc pewnie jakby pokombinować, da się poodbnie policzyć
    korelacje x,y (licznik) ale to i tak jest ciut mniej dokładne niż
    przez policzenie najpierw średniej.

    Dodatkowo, jeśli danych masz naprawdę dużo, trzeba je posumować
    ostrożnie. Sposoby są od odpowiedniego uporzadkowania
    od najmniejszych, od najwiekszych, kopiec w porzadku wartosci
    bezwzglednej i zawsze dwie najmniejsze, czy wrescei takie wynalazki:
    https://en.wikipedia.org/wiki/Pairwise_summation
    https://en.wikipedia.org/wiki/Kahan_summation_algori
    thm
    albo po prostu użyj powiekszonej precyzji. Float128 jest już wszędzie.

    Pamietaj, że nigdy nie dostaniesz lepszego względnego wyniku niż
    precyzje danych * uwarunkowanie sumy ( sum |x_i| / sum x_i).


    Co do przesuwania i reskalowania danych:

    Wróćmy do prawdziwej, pełnej (chyba po polsku oficjalna nazwa to
    wieloraka) regresji. Zwyłą regresję
    y_i = b_1 x_i + b_0 + e_i

    zapisujemy jako

    Y = X b + e

    Y to wektor [y_1;,y_2...]
    b to wektor [b_1; b_0]
    (oba stojące)
    e_i to wektor błędów
    X to maceirz
    X = [x_1, 1 ;
    x_2, 1;
    x_3, 1;
    ...]
    (kolumna x-ów i kolumna jedynek).

    Wzorki z regresji proistej są równoważne rozwiązaniu
    równanian normalnego:

    X^t Y = X^t X b

    X^t X = [ sum x_i^2 , sum x_i; sum x_i, n ]

    X^t Y = [ sum y_i x_i, sum y_i ]

    ponieważ do rozwiązania b potrzeba 'odwrócić' macierz X^t X,

    b = (X^t X)^-1 X^t Y

    pownaa mieć ona jak najmniejsze uwarunkowania

    Przesunięcie x-ów na środek pomaga, bo maceirz jest diagonalna
    sum x_i=0
    X^t X = [ sum x_i^2 , 0; 0, n ]

    Najlepsze uwarunkowanie (po prostu 1) będzie, gdy sum x_i^2 == n
    (ale po przesunieciu do centrum nie wiem, czy to nawet ma jeszcze
    znaczenie).

    pzdr
    bartekltg











  • 33. Data: 2016-04-05 20:26:35
    Temat: Re: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: slawek <f...@f...com>

    On Tue, 5 Apr 2016 16:09:22 +0200, bartekltg <b...@g...com>
    wrote:
    > Float128 jest już wszędzie.

    Sprzętowe?

    Sprzętowego double nie ma wszędzie. Ba! Nawet nie wszędzie jest
    float. I bywa że nie ma... mnożenia. Świat nie kończy się na Itanium.


  • 34. Data: 2016-04-05 20:42:02
    Temat: Re: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: bartekltg <b...@g...com>

    On 05.04.2016 20:26, slawek wrote:
    > On Tue, 5 Apr 2016 16:09:22 +0200, bartekltg <b...@g...com> wrote:
    >> Float128 jest już wszędzie.
    >
    > Sprzętowe?

    Nie.
    Skąd ten pomysł.


    pzdr
    bartekltg


  • 35. Data: 2016-04-05 21:54:57
    Temat: Re: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: RW <b...@g...pl>

    On Tue, 05 Apr 2016 20:26:35 +0200, slawek wrote:

    > On Tue, 5 Apr 2016 16:09:22 +0200, bartekltg <b...@g...com>
    > wrote:
    >> Float128 jest już wszędzie.
    >
    > Sprzętowe?
    >
    > Sprzętowego double nie ma wszędzie. Ba! Nawet nie wszędzie jest float. I
    > bywa że nie ma... mnożenia. Świat nie kończy się na Itanium.

    Ja pisze w jezyku, w ktorym nie ma dzielenia ;-)

    RW


  • 36. Data: 2016-04-05 21:56:12
    Temat: Re: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: RW <b...@g...pl>

    On Tue, 05 Apr 2016 00:05:48 +0200, slawek wrote:

    > On Mon, 04 Apr 2016 15:20:12 -0500, RW <b...@g...pl> wrote:
    >> Zalezy w jakim problemie, jezeli rozwiazujesz problem predykcji,
    > kiedy X
    >> jest znane a Y losowe, to nie ma sensu wymagac niezmienniczosci
    > wzgledem
    >> transformacji, bo X i Y nie sa rownowazne.
    >
    > Oczywiście. Tyle że Y będzie losowe tylko trochę. Bo jak kompletne
    > random, to regresja i tak nie będzie miała sensu.
    >
    > Najczęściej dane są niepewne i w X, i w Y.

    Nie zawsze. Np. jezeli X = ostatnia cena na gieldzie, to X z definicji
    jest wielokrotnoscia np. 0.05 EUR i jedynym bledem jest blad reprezentacji
    zmienno przecinkowej.

    RW


  • 37. Data: 2016-04-05 23:07:35
    Temat: Re: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: slawek <f...@f...com>

    On Tue, 05 Apr 2016 14:56:12 -0500, RW <b...@g...pl>
    wrote:
    > jest wielokrotnoscia np. 0.05 EUR i jedynym bledem jest blad
    reprezentacji
    > zmienno przecinkowej.

    Jak zwał tak zwał: ale niepewność jakaś taka jest.

    BTW, jeżeli kwota jest przeliczania na EUR z innej waluty, to wahania
    kursów i różne przeliczniki dla różnych walut (i być może w różnych
    miejscach) dają "błąd" (tj. niepewność) niekoniecznie mniejszy niż
    błąd kwantyzacji reprezentacji liczbowej. Raz bierzesz kurs USD na
    EUR z godziny 11:55 w USA, a raz kurs CHF na EUR z godziny 11:57 w
    Wenezueli. Do tego możesz być tego nieświadomy... po prostu ktoś
    zrobił przeliczenia dla ciebie i dał ci wynik w EUR na dziś.

    Jest nawet ciekawiej: uporczywe pytanie o ceny itp. może je zmieniać.
    ;)


  • 38. Data: 2016-04-06 01:55:32
    Temat: Re: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: Roman W <b...@g...pl>

    On Tue, 5 Apr 2016 16:09:22 +0200, bartekltg <b...@g...com>
    wrote:
    > Regresja liniowa jest estymatorem największej wiarygodności dla
    > modelu
    > Y_i = a*X_i + b + e_i
    > gdzie e_i jest błędem o rozkłądzie normalnym.

    Nie musi być normalny.

    RW


  • 39. Data: 2016-04-06 01:59:32
    Temat: Re: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: Roman W <b...@g...pl>

    On Tue, 05 Apr 2016 23:07:35 +0200, slawek <f...@f...com> wrote:
    > Jak zwał tak zwał: ale niepewność jakaś taka jest.

    Nie, nie powinno się mieszać błędu reprezentacji z błędem "wiedzy".

    > BTW, jeżeli kwota jest przeliczania na EUR z innej waluty, to
    wahania
    > kursów i różne przeliczniki dla różnych walut (i być może w różnych
    > miejscach) dają "błąd" (tj. niepewność) niekoniecznie mniejszy niż
    > błąd kwantyzacji reprezentacji liczbowej. Raz bierzesz kurs USD na
    > EUR z godziny 11:55 w USA, a raz kurs CHF na EUR z godziny 11:57 w
    > Wenezueli. Do tego możesz być tego nieświadomy... po prostu ktoś
    > zrobił przeliczenia dla ciebie i dał ci wynik w EUR na dziś.

    Tak ale nie mówiłem o takim przypadku, tylko o takim w którym akcja
    jest notowana w EUR i dozwolone ceny notowań są wielokrotnosciami
    0.05 EUR. Nic nie trzeba przeliczać na inne waluty.

    RW


  • 40. Data: 2016-04-06 02:23:19
    Temat: Re: Jak dobrze uwarunkować metodę najmniejszych kwadratów
    Od: bartekltg <b...@g...com>

    On 06.04.2016 01:55, Roman W wrote:
    > On Tue, 5 Apr 2016 16:09:22 +0200, bartekltg <b...@g...com> wrote:
    >> Regresja liniowa jest estymatorem największej wiarygodności dla
    >> modelu
    >> Y_i = a*X_i + b + e_i
    >> gdzie e_i jest błędem o rozkłądzie normalnym.
    >
    > Nie musi być normalny.

    Ale wtedy regresja liniowa (najczęściej) nie jest estytmatorem
    najwyższej wiarygodności i ogolnie może nie być najlepszym
    roziązaniem.

    Patologicznym przykładem jest rozkład Cauchy'eg, (porządna,
    symetryczna funkcja) gdzie średnia nie jest żadnym rozsądnym
    oszacowaniem środka rozkładu.

    Regresja najcześćiej działa bez przesadnego zastanawiania się nad
    teorią... ale i najcześćiej błędy są dość podobne do normalnych.

    pzdr
    bartekltg


strony : 1 ... 3 . [ 4 ] . 5 . 6


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: