Discussion:
Regresja ortogonalna (?)
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
MZ
2009-07-13 15:59:03 UTC
Permalink
(chyba tak to się nazywa?)

Potrzebuję algorytmu/wzoru na wyznaczenie parametrów prostej, dla której
suma kwadratów ODLEGŁOŚCI do wszystkich zadanych punktów jest minimalna.
Innymi słowy - minimalizacji mają podlegać prostopadłe "odchyłki" punktów od
wyznaczanej prostej.

Pierwsze, co mi przyszło do głowy, to wstępna minimalizacja odchyłek
po "igrekach", następnie obrót całego układu do "wypoziomowania" wyznaczonej
prostej, kolejna minimalizacja "igreków"... i tak dalej, do... skutku. :-)
Algorytm pewnie byłby skuteczny, ale jest jakiś taki... mało elegancki.

Poza tym - żeby było trudniej - potrzebuję analogicznego algorytmu dla
okręgu.

Próbowałem coś wygooglać, ale albo google się popsuły, albo za stary już
jestem... :-(
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Luke
2009-07-15 09:18:59 UTC
Permalink
Post by MZ
Poza tym - żeby było trudniej - potrzebuję analogicznego algorytmu dla
okręgu.
Zobacz:

Downs T.D.1; Mardia K.V.2, Circular regression. Biometrika, Volume 89,
Number 3, August 2002 , pp. 683-698(16)

a potem google na "circular regression".

O ile pamiętam jakieś gotowe kawałki kodu są w pakiecie do R.

A w przypadku linii prostej to mam jakieś dziwne przeczucie, że
rozwiązanie najmniejszych kwadratów reszt jest identyczne z rozwiązaniem
"ortogonalnych" reszt, aczkolwiek nie próbowałem tego udowodnić.

Luke
SDD
2009-07-16 10:35:29 UTC
Permalink
Post by Luke
A w przypadku linii prostej to mam jakieś dziwne przeczucie, że
rozwiązanie najmniejszych kwadratów reszt jest identyczne z rozwiązaniem
"ortogonalnych" reszt, aczkolwiek nie próbowałem tego udowodnić.
Ale przeciez inne sa wartosci wspolczynnikow, gdy zmienna niezalezna
(objasniajaca) jest X /odchylki w pionie/, inne - gdy Y /odchylki w
poziomie/, to i inne musza byc dla ortogonalnej. W poreczniku Krysicki,
Bartos i inni cz. 2 jest wzor na wspolczynniki linii regresji ortogonalnej.

Pozdrawiam
SDD
Gik
2009-07-15 11:55:22 UTC
Permalink
Post by MZ
Potrzebuję algorytmu/wzoru na wyznaczenie parametrów prostej, dla której
suma kwadratów ODLEGŁOŚCI do wszystkich zadanych punktów jest minimalna.
Innymi słowy - minimalizacji mają podlegać prostopadłe "odchyłki" punktów od
wyznaczanej prostej.
Od punktu (Xi,Yi) poprowadź odcinek prostopadły do prostej a X + b. (1)
Od punktu (Xi,Yi) poprowadź odcinek pionowy do prostej a X + b (2)
długość odcinka (2) (Yi- (a Xi + b)) (3)
Odcinek (1) , (2) i prosta a X + b tworzą trójkąt (4)
Z trójkąta (4) obliczysz ,że d ( długość odcinka(1) ) wynosi
d = (Yi- (a Xi + b)) * sin(Pi/2 - fi) gdzie fi nachylenie prostej
czyli d = (Yi- (a Xi + b))/sqrt(1 + a^2) (5)
suma kwadratów odległości wszystkich punktów od prostej wynosi

SK = Suma((od i=1 do n) ( (Yi- (a Xi + b))^2/(1 + a^2) )) (6)

Dalej już klasycznie : obliczasz pochodne względem b i a i muszą one być
równe zeru :
Zakładam , że znasz klasyczne wyprowadzenie dla zwykłej prostej.
wynik :
b = Yśr - a * Xśr (7)
czyli prosta ortogonalna przechodzi dokładnie przez ten sam punkt co
prosta ze zwykłej regresji
(7) wstawiamy do (6) i otrzymujemy :
SK = Suma((od i=1 do n) ( (Yi- Yśr)-a (Xi - XŚr))^2/(1 + a^2) )) (8)

Wbrew pozorom, obliczenie pochodnej SK , przyrównanie jej do zera i
obliczenie 'a' jest może kłopotliwe ale da się obliczyć analitycznie.
Polecam wykonanie tych przekształceń. Poniżej masz wynik

a = (var(Y)-var(X) +- sqrt((var(Y)-var(X))^2 + 4 cov(X,Y)^2
))/2/cov(X,Y) (9)
gdzie var -> wariancja , cov -> kowariancja
Jeżeli cov >0 to przed sqrt '+' w przeciwnym wypadku '-'
Jak obliczysz 'a' ze wzoru (9) to 'b' obliczysz ze wzoru (7)

Uwaga : nachylenie 'a' regresji liniowej ortogonalnej zależy do
skalowania wyników !( pomnożenie Y przez dowolną liczbę zmienia wynik).
Post by MZ
Poza tym - żeby było trudniej - potrzebuję analogicznego algorytmu dla
okręgu.
To jest wyjątkowo proste. Prosta prostopadła do okręgu przechodząca
przez dowolny punkt(Xi,Yi) zawsze przechodzi przez środek koła !!.
Sumę kwadratów definiujemy więc

SK = Suma( (od i=1 do n) ((sqrt( (Xi - xs)^2 + (Yi - ys)^2 ) - r )^2 )
(10)
gdzie xs, ys - współrzędne środka koła , r - promień koła

Minimalizację SK nie można przeprowadzić metodą analityczną. Wystarczy
jednak użyć dowolnej numerycznej metody minimalizacji SK i wyznaczyć xs
,ys, r. Łatwe i przyjemne pod warunkiem, że masz 'pod ręką' gotową
procedurą minimalizacji ( Matlab, Octave, Maple, Mathematica etc )
--
Gik
MZ
2009-08-12 16:50:22 UTC
Permalink
Post by Gik
Łatwe i przyjemne pod warunkiem, że masz 'pod ręką' gotową
procedurą minimalizacji ( Matlab, Octave, Maple, Mathematica etc )
Kurcze... Średnio się w tym wszystkim orientuję. :-(

Jest jakiś darmowy program, który policzy best-fit circle?
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Mariusz Marszałkowski
2009-08-14 14:36:02 UTC
Permalink
Post by Gik
Post by MZ
Potrzebuję algorytmu/wzoru na wyznaczenie parametrów prostej, dla której
suma kwadratów ODLEGŁOŚCI do wszystkich zadanych punktów jest minimalna.
Innymi słowy - minimalizacji mają podlegać prostopadłe "odchyłki" punktów od
wyznaczanej prostej.
Od punktu (Xi,Yi) poprowadź odcinek prostopadły do prostej a X + b. (1)
Od punktu (Xi,Yi) poprowadź odcinek pionowy do prostej a X + b (2)
A co w przypadku gdy najlepszym dopasowaniem jest linia pionowa?

Nie wiem, to tylko moje przemyślenia, ale może należałoby wziąć dwa
punkty (x1,y1), (x2,y2) które jednoznacznie wyznaczają prostą i pochodną
liczyć współrzędnych tych punktów?

Pozdrawiam
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Loading...