2012-06-11 61 views
9

To tylko podstawowe pytanie. Dopasowuję linie do punktów rozrzutu za pomocą polyfit. Mam kilka przypadków, w których moje punkty rozproszone mają takie same wartości X i polyfit nie można dopasować do niego. Musi być coś, co poradzi sobie z tą sytuacją. W końcu to tylko linia pasuje.Dopasowanie linii pionowej za pomocą polyfitu

Mogę spróbować zamieniać X i Y, a następnie wypuścić linię. Każda łatwiejsza metoda, ponieważ mam wiele zestawów punktów rozproszonych i chcę ogólnej metody sprawdzania linii.

Głównym celem jest znalezienie linii dopasowujących i upuścić nieliniowe cechy.

+0

Cóż, ze względu na odpowiedź, zamiana X i Y, gdy masz zbyt mało wartości x, działa poprawnie. – Naresh

Odpowiedz

6

Przede wszystkim dzieje się tak z powodu metody dopasowania, z której korzystasz. Wykonując polyfit, używasz metody najmniejszych kwadratów na odległości od linii Y.

http://www.une.edu.au/WebStat/unit_materials/c4_descriptive_statistics/image23.gif

Oczywiście, to nie będzie działać dla linii pionowych. Przy okazji, nawet jeśli masz coś zbliżonego do pionowych linii, możesz uzyskać niestabilne wyniki liczbowe.

Są 2 rozwiązania:

  1. Zmienne X i Y, jak pan powiedział, jeśli wiesz, że linia jest prawie pionowe. Następnie obliczyć odwrotną funkcję liniową.
  2. Używaj najmniejszych kwadratów prostopadłej odległości od linii, zamiast pionowej (patrz zdjęcie poniżej) (więcej wyjaśnień w here)

http://mathworld.wolfram.com/images/eps-gif/LeastSquaresOffsets_1000.gif

+0

hmm. Umieszczenie go w kodzie w matlab. Publikuję, gdy będę mieć coś, co działa. – Naresh

+0

Bardzo ładne rozwiązanie :) – feelfree

+0

Czy jest już dostępne jakieś rozwiązanie, Matlab polyfit w oparciu o prostopadłą odległość od linii? –

2

polyfit wykorzystuje liniowy zwykłą metodą najmniejszych kwadratów zbliżenia i nie będzie Pozwól na powtórzenie odciętej, ponieważ wynikowa macierz Vandermonde będzie miała niedobór rang. Sugerowałbym próbę znalezienia czegoś o bardziej statystycznym charakterze. Jeśli chcesz badać metody Andreys zwykle idzie pod nazwami Wszystkich najmniejszych kwadratów lub prostopadle regresji odległość http://en.wikipedia.org/wiki/Total_least_squares

bym wstępnie przedstawiła również możliwość wykrywania kiedy masz jednoczesnych wartości x, a następnie obracając danych o pochodzeniu , dopasowując linię, a następnie przekształcając linię z powrotem. Nie mogłem powiedzieć, jak źle by to działało i tylko ty mógłbyś zdecydować, czy była to opcja oparta na twoich wymaganiach co do dokładności.

+0

dzięki za komentarz. Wiem to. Potrzebuję rozwiązania. Potrzebuję tego "czegoś o bardziej statystycznym charakterze". Jakieś sugestie? – Naresh