2012-06-11 44 views
9

Đó chỉ là một câu hỏi cơ bản. Tôi đang xếp hàng để phân tán các điểm bằng cách sử dụng polyfit. Tôi có một số trường hợp các điểm phân tán của tôi có cùng giá trị X và polyfit không thể phù hợp với một dòng. Phải có cái gì đó có thể xử lý tình huống này. Sau khi tất cả, nó chỉ là một dòng phù hợp.Đường thẳng đứng vừa với polyfit

Tôi có thể thử trao đổi X và Y và sau đó đánh dấu một dòng. Bất kỳ phương pháp dễ dàng hơn bởi vì tôi có rất nhiều bộ phân tán điểm và muốn có một phương pháp chung để kiểm tra các dòng.

Mục tiêu chính là tìm các đường phù hợp và thả các đối tượng địa lý phi tuyến tính.

+0

Cũng vì lợi ích của câu trả lời, trao đổi X và Y khi bạn có quá ít giá trị x hoạt động tốt. – Naresh

Trả lời

6

Trước hết, điều này xảy ra do phương pháp phù hợp mà bạn đang sử dụng. Khi thực hiện polyfit, bạn đang sử dụng phương pháp bình phương tối thiểu trên khoảng cách Y từ dòng.

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

Rõ ràng, nó sẽ không hoạt động cho các đường thẳng đứng. Nhân tiện, ngay cả khi bạn có thứ gì đó gần với đường thẳng đứng, bạn có thể nhận được kết quả không ổn định về số lượng.

Có 2 giải pháp:

  1. Swap x và y, như bạn nói, nếu bạn biết rằng dòng gần như thẳng đứng. Sau đó, tính toán hàm tuyến tính nghịch đảo.
  2. Sử dụng bình phương nhỏ nhất trên khoảng cách vuông góc từ dòng, thay vì thẳng đứng (Xem hình dưới đây) (giải thích thêm trong here)

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

+0

hmm. Đặt nó trong mã trong MATLAB. Sẽ đăng một lần tôi có thứ gì đó hoạt động. – Naresh

+0

Giải pháp rất đẹp :) – feelfree

+0

Có giải pháp nào khác đã có sẵn, Matlab polyfit dựa trên khoảng cách vuông góc từ đường dây không? –

2

polyfit sử dụng bình thường xấp xỉ bình phương nhỏ nhất tuyến tính và sẽ không cho phép abscissa lặp đi lặp lại như ma trận Vandermonde kết quả sẽ được xếp hạng thiếu. Tôi sẽ đề nghị cố gắng tìm một cái gì đó có tính chất thống kê hơn. Nếu bạn muốn nghiên cứu phương pháp Andreys nó thường đi theo tên tổng bình phương nhỏ nhất hoặc khoảng cách hồi quy Orthogonal http://en.wikipedia.org/wiki/Total_least_squares

tôi sẽ dự kiến ​​cũng đưa ra khả năng phát hiện khi bạn có giá trị x đồng thời, sau đó xoay dữ liệu của bạn về nguồn gốc , phù hợp với dòng và sau đó chuyển đổi dòng trở lại. Tôi không thể nói nó kém hiệu quả như thế nào và chỉ có bạn mới có thể quyết định xem đó có phải là một lựa chọn dựa trên các yêu cầu về độ chính xác của bạn hay không.

+0

cảm ơn nhận xét. Tôi biết điều đó. Tôi cần một giải pháp. Tôi cần cái gì đó có tính chất thống kê hơn. Bất kì lời đề nghị nào? – Naresh

Các vấn đề liên quan