suma ( y_mi - y_ei )^2
R^2 = 1 - --------------------------
suma ( y_ei - y_e_sr )^2
gdzie:
u_ei - wartości empiryczne,
u_mi - wartości prognozowane (uzyskane z modelu aproksymującego)
u_e_sr - średnia z wartości empirycznych (u_ei).
Niestety przy większych odchyłkach modelu od danych empirycznych zdarza się, że
wartości R^2 są niższe od zera (np. -0,1144), a chyba tak nie powinno być. Mam
pytanie - czy stosuję dobry wzór do wyznaczenia współczynnika determinacji R^2?
Zagadnienie raczej nie jest liniowe. Dziękuję za wszelkie sugestie.
Pozdrawiam,
Sławek
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
> próbuję wyznaczyć współczynnik determinacji R^2 z następującego wzoru:
>
> suma ( y_mi - y_ei )^2
> R^2 = 1 - --------------------------
> suma ( y_ei - y_e_sr )^2
>
Wzór jest OK od warunkiem :
1 ze suma ( y_mi - y_ei )^2 to naprawdę
suma(( y_mi - y_ei )^2) tzn obliczamy kwadraty a potem z nich sumę
2. y_mi - wartości prognozowane obliczone są z poprawnie obliczonych
parametrów modelu
3. zrób wykres y_mi - y_ei ; punkty powinny być w miarą równo po stronie
dodatniej u ujemnej
4 suma( y_mi - y_ei ) powinno być równa zeru lub prawie zero
> Niestety przy większych odchyłkach modelu od danych empirycznych zdarza się, że
> wartości R^2 są niższe od zera (np. -0,1144), a chyba tak nie powinno być.
..
> Zagadnienie raczej nie jest liniowe. Dziękuję za wszelkie sugestie.
Nie może być ujemne. Sprawdź poprzednie 4 punkty. Najbardziej
prawdopodobny jest błąd w pkt 2, zwłaszcza że mówisz o równaniach
nieliniowych.
--
Gik
> 2. y_mi - wartości prognozowane obliczone są z poprawnie obliczonych
> parametrów modelu
Parametry są właśnie niezbyt dokładne - ja chcę wyznaczyć dokładniejsze
wartości, dające lepsze dopasowanie modelu do danych empirycznych. Innymi
słowy - te parametry, które dają UJEMNE wartości współczynnika determinacji
R^2 są nieprecyzyjne (a już napewno dla tego modelu).
> 3. zrób wykres y_mi - y_ei ; punkty powinny być w miarą równo po stronie
> dodatniej u ujemnej
Wykres danych prognozowanych przebiega poniżej wykresu danych empirycznych
dla każdej wartości zmiennej niezależnej (czasu) - lokalny błąd względny
aproksymacji dochodzi do 38%.
> 4 suma( y_mi - y_ei ) powinno być równa zeru lub prawie zero
Otrzymuję coś takiego: R^2 = 1 - 0,96..../0,86...., wychodzi wartość ujemna
R^2.
>> Niestety przy większych odchyłkach modelu od danych empirycznych zdarza
>> się, że
>> wartości R^2 są niższe od zera (np. -0,1144), a chyba tak nie powinno
>> być.
> ..
>> Zagadnienie raczej nie jest liniowe. Dziękuję za wszelkie sugestie.
>
> Nie może być ujemne. Sprawdź poprzednie 4 punkty. Najbardziej
> prawdopodobny jest błąd w pkt 2, zwłaszcza że mówisz o równaniach
> nieliniowych.
Wychodzą wartości ujemne, ale chyba zaczynam rozumiem że w tej sytuacji tak
może być. Tak naprawdę ja korzystając z tych błędnych, nieprecyzyjnych
współczynników wyznaczam nowe, starając się poprawić wsp. determinacji i to
się udaje (wychodzi ok. 0,96). Dziwiło mnie tylko, że dla dowolnych wartości
współczynników (powiedzmy startowych, wyznaczonych przez kogoś innego dla
nieco innych warunków) współczynnik determinacji R^2 wychodził ujemny. Ale
chyba zaczynam rozumieć, że dla modelu nieliniowego i do tego z bardzo
nieprecyzyjnymi wartościami współczynników, wartości R^2 mogą być ujemne.
Czy dobrze myślę?
Pozdrawiam,
Sławek
> Dziwiło mnie tylko, że dla dowolnych wartości
> współczynników (powiedzmy startowych, wyznaczonych przez kogoś innego dla
> nieco innych warunków) współczynnik determinacji R^2 wychodził ujemny.
R^2 może być obliczany TYLKO dla dokładnych parametrów modelu tzn takich
dla których obliczona równanie przechodzi optymalnie pomiędzy punktami
eksperymentalnymi
> Ale chyba zaczynam rozumieć, że dla modelu nieliniowego i do tego z bardzo
> nieprecyzyjnymi wartościami współczynników, wartości R^2 mogą być ujemne.
> Czy dobrze myślę?
Niedokładnie myślisz. Dla każdego modelu ( nie tylko nieliniowego) nie
można użyć 'nieprecyzyjnych' wartości współczynników do obliczenia R^2,
bo to wtedy nie będzie R^2
--
Gik
Może być niestety ujemne. Oznacza to nic innego tylko, że
wartość średniokwadratowa błędu jest większa niż wariancja
zmiennej empirycznej.
Co oznacza, że model jest raczej bez sensu(*), lepszym
w sensie średniokwadratowym modelem jest wartość średnia ;)
(*) Napisałem o modelu "raczej bez sensu", ale mogę sobie
wyobrazić też przypadek, że tak użyta/zdefiniowana miara jest
nieużyteczna. Wyobraźmy sobie dane, które reprezentują np.
jakąś krzywą, ale występują liczne, jednostronne i o dużej
amplitudzie wartości odstające.
Widziałem gdzieś takie dane, ale nie przytoczę nic teraz
konkretnego :(
>>> suma ( y_mi - y_ei )^2
>>> R^2 = 1 - --------------------------
>>> suma ( y_ei - y_e_sr )^2
>>>
>> ..
>> Nie może być ujemne. Sprawdź poprzednie 4 punkty.
>
> Może być niestety ujemne. Oznacza to nic innego tylko, że
> wartość średniokwadratowa błędu jest większa niż wariancja
> zmiennej empirycznej.
Dziwne, że muszę to powtarzać. Błąd śr kwad. NIE może(**) być większy
niż wariancja 'y' pod warunkiem, że parametry modelu są poprawnie
wyznaczone tzn obliczona krzywa przechodzi pomiędzy punktami
eksperymentalnymi
> Co oznacza, że model jest raczej bez sensu(*), lepszym
> w sensie średniokwadratowym modelem jest wartość średnia ;)
Bez względu czy model ma sens czy nie, wyznaczone parametry metodą MNK
zawsze poprowadzą funkcję pomiędzy punktami. Model jako średnia wartość
to żart ?.
>
> (*) Napisałem o modelu "raczej bez sensu", ale mogę sobie
> wyobrazić też przypadek, że tak użyta/zdefiniowana miara jest
> nieużyteczna. Wyobraźmy sobie dane, które reprezentują np.
> jakąś krzywą, ale występują liczne, jednostronne i o dużej
> amplitudzie wartości odstające.
W takim przypadku obliczona funkcja 'dogina' się do tych odstających
punktów. W skrajnym przypadku np dwa bardzo odstający punkty będą po
jednej strony krzywej a pozostałe po drugiej. R^2 będzie marne ale >0!
> Widziałem gdzieś takie dane, ale nie przytoczę nic teraz
> konkretnego :(
No to znajdź ten przykład lub sam zasymuluj, to znajdziemy tam błąd.
(**) W szczególnym przypadku, gdy modelem jest wielomian bez wyrazu
wolnego to może się zdarzyć że obliczona w/g powyższego wzoru wartość
R^2 < 0 . Tylko, że jest to niepoprawne użycie tego wzoru. W przypadku
tego modelu w mianowniku powinno być suma( y_ei^2) i znów będzie zawsze
R^2>0
--
Gik