Có thể tích lũy một tập hợp các số liệu thống kê mô tả một số lượng lớn các mẫu để sau đó tôi có thể tạo ra một boxplot không?


22

Tôi phải làm rõ ngay rằng tôi là một nhà phát triển phần mềm thực hành, không phải là một nhà thống kê và rằng lớp thống kê đại học của tôi cách đây rất lâu

Điều đó nói rằng, tôi muốn biết nếu có một phương pháp để tích lũy một tập hợp các số liệu thống kê mô tả mà sau đó có thể được sử dụng để sản xuất một boxplot, điều đó không đòi hỏi phải lưu trữ một loạt các mẫu riêng lẻ?

Những gì tôi đang cố gắng làm là tạo ra một bản tóm tắt đồ họa về thời gian phục vụ hàng đợi trong một quy trình đa hàng đợi phức tạp. Trước đây tôi đã sử dụng một gói có tên là tnftools cho phép tích lũy các mẫu lớn và sau đó được xử lý sau thành một biểu đồ đẹp về thời gian phản hồi và ngoại lệ. Nhưng tnftools không có sẵn cho nền tảng hiện tại của tôi.

Lý tưởng nhất là tôi muốn có thể tích lũy một bộ số liệu thống kê mô tả "nhanh chóng" khi quá trình chạy, và sau đó trích xuất dữ liệu để phân tích theo yêu cầu. Nhưng tôi không thể đơn giản có quá trình tích lũy các mẫu vì bộ nhớ / IO liên quan đến việc đó sẽ có tác động không thể chấp nhận được đối với hiệu suất của hệ thống.


Kaelin:> bạn có nghĩa là liệu có tồn tại phương pháp 'trên đường bay' để tính toán các số liệu thống kê tóm tắt như trung vị và tứ phân vị không? Nếu đây là những gì bạn muốn tôi có thể cung cấp cho bạn các liên kết đến các giấy tờ chi tiết chúng. Bạn cũng có thể cung cấp thêm chi tiết về các nền tảng bạn đang làm việc khi triển khai GNU hiệu quả các phương thức này có khả năng tồn tại trong R.
user603

@kwak: Vâng, nghe có vẻ như những gì tôi đang tìm kiếm. Tôi sẽ đánh giá rất cao những liên kết đó. :-) Tôi đang làm việc trên Mac OS X, tôi có thể sử dụng R để xử lý dữ liệu sau, nhưng không thể liên kết mã GPL với sản phẩm của công ty tôi vì những lý do thông thường.
Kaelin Colclasure

Câu trả lời:


27

Đối với boxplot 'on the fly', bạn sẽ cần 'trên bay' tối thiểu / tối thiểu (tầm thường) cũng như các tứ phân vị 'trên đường bay' (0,25,0,5 = trung bình và 0,75).

Gần đây, rất nhiều công việc đang diễn ra trong vấn đề thuật toán trực tuyến (hoặc 'đang hoạt động') để tính toán trung bình.

Một sự phát triển gần đây là binmedian . Là một cú đá phụ, nó cũng tận hưởng sự phức tạp trong trường hợp xấu nhất tốt hơn so với quickselect (không trực tuyến cũng không vượt qua một lần).

Bạn có thể tìm thấy giấy liên quan cũng như mã C và FORTRAN trực tuyến tại đây . Bạn có thể phải kiểm tra các chi tiết cấp phép với các tác giả.

Bạn cũng sẽ cần một thuật toán vượt qua duy nhất cho các phần tư, mà bạn có thể sử dụng cách tiếp cận ở trên và đặc tính đệ quy sau của các phần tư theo các giá trị trung bình:

Q0,75(x)Q0,5(xtôi:xtôi>Q0,5(x))

Q0,25(x)Q0,5(xtôi:xtôi<Q0,5(x))

tức là phần tư 25 (75) phần trăm rất gần với trung vị của những quan sát nhỏ hơn (lớn hơn) so với trung vị.

Phụ lục:

Tồn tại một loạt các phương pháp đa vượt qua cũ để tính toán lượng tử. Một cách tiếp cận phổ biến là duy trì / cập nhật một kho quan sát có kích thước xác định được chọn ngẫu nhiên từ luồng và tính toán đệ quy lượng tử (xem tổng quan này ) trên hồ chứa này. Cách tiếp cận này (và có liên quan) được thay thế bởi phương pháp được đề xuất ở trên.


1
Quyền +1; Tôi vẫn còn trong thời kỳ đen tối của việc thực hiện xấp xỉ từ biểu đồ.

Tôi có hiểu chính xác rằng định nghĩa đệ quy như vậy của các tứ phân vị từ trung vị đòi hỏi hai lần vượt qua nếu được thực hiện một cách ngây thơ không? Bạn có biết các thuật toán vượt qua duy nhất?
Thạch anh

@Quartz: không, một lần vượt qua sẽ làm: bạn có hai, vượt qua một lần, chạy tính toán trung bình.
user603

2

Thay vì chỉ tìm trung vị, có một thuật toán duy trì trực tiếp biểu đồ ước tính: " Thuật toán P-Square để tính toán động lượng tử và biểu đồ mà không cần lưu trữ quan sát". Điều này có thể sẽ hiệu quả hơn nhiều khi lặp đi lặp lại việc tạo thùng cho mọi lượng tử bạn muốn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.