regresija - R^2

O matematiki, številih, množicah in računih...
Odgovori
Uporabniški avatar
fogl
Prispevkov: 546
Pridružen: 7.11.2004 20:25
Kraj: Radovljica

regresija - R^2

Odgovor Napisal/-a fogl »

Kaj predstavlja vrednost R^2 pri regresiji? Sam sem mislil da predstavlja ujemanje med dejanskimi podatki in izračunano regresijsko funkcijo - čim bliže 1 je boljše je... ampak če pogledam en primer, je R^2 zelo velik, če pa pogledaš graf pa ni videt nikakršnega ujemanja. Kako je s tem?
http://www.shrani.si/f/29/pR/41XbLTym/prtscr.png

Uporabniški avatar
shrink
Prispevkov: 14610
Pridružen: 4.9.2004 18:45

Re: regresija - R^2

Odgovor Napisal/-a shrink »

Tvoji rezultati za dani primer so sumljivi; prilepi celotno kodo.

Drugače je R^2 res "goodness of fit".

Uporabniški avatar
fogl
Prispevkov: 546
Pridružen: 7.11.2004 20:25
Kraj: Radovljica

Re: regresija - R^2

Odgovor Napisal/-a fogl »

Koda: Izberi vse

Needs["LinearRegression`"];
Needs["NonlinearRegression`"];
temperaturadan = {15.6`, 15.`, 15.2`, 14.7`, 14.5`, 14.6`, 14.5`, 
   15.`, 15.1`, 15.5`, 14.3`, 14.1`, 14.4`, 14.7`, 14.1`, 14.3`, 
   14.4`, 15.`, 15.4`, 14.6`, 13.8`, 13.4`, 12.9`, 13.`};
nff = NonlinearModelFit[temperaturadan, 
  a + b*Sin[(t - fi)/24*2*Pi], {a, b, fi}, {t}]
nff[{"RSquared"}]



t1 = ListLinePlot[temperaturadan, PlotRange -> All, PlotStyle -> Blue];
t2 = Plot[\!\(\*
TagBox[
RowBox[{"14.504166666666666`", " ", "+", 
RowBox[{"0.343862085430857`", " ", 
RowBox[{"Sin", "[", 
RowBox[{
FractionBox["1", "12"], " ", "\[Pi]", " ", 
RowBox[{"(", 
RowBox[{
RowBox[{"-", "2.767203439080579`"}], "+", "t"}], ")"}]}], "]"}]}]}],
Short]\), {t, 0, 24}, PlotStyle -> Red];
Show[{t1, t2}, Frame -> True, FrameLabel -> {"t[h]", "T[\[Degree]C]"}]
Pa še link do fajla.

Uporabniški avatar
shrink
Prispevkov: 14610
Pridružen: 4.9.2004 18:45

Re: regresija - R^2

Odgovor Napisal/-a shrink »

Sem pogledal: kaže, da ni nič narobe. Je pa treba vzeti v zakup nekaj drugega: pri nelinearni regresiji R^2 ni tako dobro merilo za "goodness of fit" kot pri linearni regresiji. Na to kaže tudi dejstvo, da v starejših verzijah Mathematice funkcije za nelinearno regresijo niso računale R^2, glej npr.:

http://opticalradiation.wordpress.com/2010/08/16/r2/

Uporabniški avatar
fogl
Prispevkov: 546
Pridružen: 7.11.2004 20:25
Kraj: Radovljica

Re: regresija - R^2

Odgovor Napisal/-a fogl »

A mogoče poleg R^2 obstaja še kako drugo merilo za "goodness of fit"?

Uporabniški avatar
fogl
Prispevkov: 546
Pridružen: 7.11.2004 20:25
Kraj: Radovljica

Re: regresija - R^2

Odgovor Napisal/-a fogl »

Tukaj sem bral, zakaj pri regresiji iščemo koeficiente neke funkcije tako, da je vsota kvadratov odmikov najmanjša. Piše:
"Why not simply minimize the sum of the actual distances?If the random scatter follows a Gaussian distribution, it is far more likely to have two medium size deviations (say 5 units each) than to have one small deviation (1 unit) and one large (9 units). A procedure that minimized the sum of the absolute value of the distances would have no preference over a curve that was 5 units away from two points and one that was 1 unit away from one point and 9 units from another. The sum of the distances (more precisely, the sum of the absolute value of the distances) is 10 units in each case. A procedure that minimizes the sum of the squares of the distances prefers to be 5 units away from two points (sum-of-squares = 50) rather than 1 unit away from one point and 9 units away from another (sum-of-squares = 82). If the scatter is Gaussian (or nearly so), the curve determined by minimizing the sum-of-squares is most likely to be correct."
Zanima me, zakaj ne bi namesto kvadrata odmika vzeli tretjo potenco, ali pa četrto... na ta način bi ravno tako favorizirali Gaussovo porazdelitev, mar ne?

Uporabniški avatar
Aniviller
Prispevkov: 7263
Pridružen: 15.11.2004 18:16

Re: regresija - R^2

Odgovor Napisal/-a Aniviller »

Kot prvo, za lihe potence bi morali vzeti absolutno vrednost, kar pomeni da zraz sploh ni vec analiticen.

In odgovor na vprasanje je NE.

Fit si lahko predstavljas kot iskanje NAJBOLJ VERJETNE porazdelitve. Torej, ce imas verjetnostno porazdelitev w(y,a) (a je parameter za fitanje, lahko jih je tudi vec) in izmerke y_i, potem maksimiziras verjetnost - ta je produkt verjetnosti za posamezne izmerke, torej
\(P(a)=\prod_i w(y_i,a)\)
Iscemo maksimum tega (to poiscemo tako da gledamo niclo odvoda).
\(\frac{\partial P(a)}{\partial a}=0\)
Zdaj se delimo s P(a) - to nic ne spremeni, vendar s tem dosezemo da imamo na levi odvod logaritma P, kar bo lazje odvajat ker se produkt prevede na vsoto.
\(\frac{\partial \ln P(a)}{\partial a}=0\)

Maksimizacija verjetnosti P(a) je enako kot bi minimizirali funkcijo \(-\ln P(a)=-\sum_i \ln w(y_i,a)\).

Ce se spremeljivka "y" obnasa po Gaussovi porazdelitvi z neko sigmo (nas parameter ki ga iscemo je pa recimo povprecna vrednost):
\(w(x,a)=A e^{-(y-a)^2/2\sigma^2}\)
potem bo maksimalna verjetnost pri minimalni vrednosti funkcije
\(-\ln P(a)=-\sum_i \ln w(y_i,a)=\sum_i \frac{(y_i-a)^2}{2\sigma^2}\).

Ce ne fitas samo povprecja "a" ampak neko splosno funkcijo f(x), velja isti sklep za vsako koordinato "x" posebej: za vsako vrednost x imas vrednosti y_i raztresene okrog y=f(x). Ce ima vsak izmerek y svojo oceno napake, so sigme v zgornji formuli za vsoto kvadratov lahko razlicne.

Ce pricakujes, da je porazdelitev izmerkov okrog prave vrednosti kako drugacna kot Gaussova, si pa sam logaritmiraj porazdelitev in poglej kaj se minimizira.

Uporabniški avatar
fogl
Prispevkov: 546
Pridružen: 7.11.2004 20:25
Kraj: Radovljica

Re: regresija - R^2

Odgovor Napisal/-a fogl »

Hvala za razlago... edino ni mi jasno kako iz \(\frac{\partial P(a)}{\partial a}=0\) po deljenju z P(a) nastane \(\frac{\partial \ln P(a)}{\partial a}=0\)

Še nekaj me zanima... ali lahko potem lahko z metodo najmanjših kvadratov aproksimiramo samo recimo neke meritve, kjer je zraven še neka naključna komponenta, ki ima Gaussovo porazdelitev. Zakaj recimo velikokrat neke rezultate računalniških simulacij ravno tako aproksimiramo z neko funkcijo po metodi najmanjših kvadratov - saj v tem primeru to nima nobene povezave z Gaussovo porazdelitvijo, ali ima?

Uporabniški avatar
Aniviller
Prispevkov: 7263
Pridružen: 15.11.2004 18:16

Re: regresija - R^2

Odgovor Napisal/-a Aniviller »

\((\ln y)'=\frac{y'}{y}\) (verizno pravilo).

Ne glede na prvotno porazdelitev se pri statisticno signifikantni kolicini podatkov vse priblizuje Gaussovi porazdelitvi (centralni limitni izrek). Tako da razen v kaksnem posebnem primeru je privzetek da je vse porazdeljeno po Gaussu cisto upravicen.

Kar se tice simulacij pa takole: v takem primeru sicer (razen ce uporabis stohasticne metode) res ni neke nakljucne porazdelitve po kateri bi se stvar ravnala. Se vedno je pa normalizirana vsota kvadratnih odmikov (chi kvadrat funkcional) merilo ujemanja simulacije z modelsko funkcijo (ce so pa v igri tudi eksperimentalni podatki smo pa spet na Gaussu). Lahko gledas tudi takole: ne glede na porazdelitev lahko gledas na vsoto kvadratov kot na prvi priblizek v razvoju v potencno vrsto, kar je za namen fitanja cisto dovolj, se posebej ce pravzaprav nihce ne ve kaksne so tocne verjetnostne porazdelitve kolicin.

Uporabniški avatar
fogl
Prispevkov: 546
Pridružen: 7.11.2004 20:25
Kraj: Radovljica

Re: regresija - R^2

Odgovor Napisal/-a fogl »

Hvala!

Še nekaj me zanima glede uzračuna R^2 nelinearne regresije. Mathematica naj bi to računala narobe (po enačbi \(R^2=1-\frac{\sum{(y_i-f(x_i))^2}}{\sum{y_i^2}}\)) oz ta izračun sploh ni smiseln za nelinearno regresijo. Zdej me pa zanima, če lahko izračunam R^2 tako, da izračunam kar navadno linearno regresijo med začetnimi podatki in izračunanimi vrednostmi s to nelinearno aproksimacijo pri teh začetnih podatkih - se pravi namesto da računam nelinearno regresijo med \(x_i\) in \(y_i\) bi izračunal linearno regresijo med \(y_i\) in \(f(x_i)\) in iz tega sklepal na ujemanje? V tem primeru, kljub temu da je aproksimacijska funkcija nelinearna, vedno dobiš neko premico.

Uporabniški avatar
fogl
Prispevkov: 546
Pridružen: 7.11.2004 20:25
Kraj: Radovljica

Re: regresija - R^2

Odgovor Napisal/-a fogl »

Takole sem mislil (glej pdf). Lahko uporabim za izračun R^2 kar tega od linearne regresije (0,85), namesto vrednosti pri nelinearni regresiji (0,99) ki ni videti uporabna?
Priponke
regresija.pdf
(55.49 KiB) Prenešeno 190 krat

Odgovori