Làm thế nào tôi có thể tính toán trung bình cắt hoặc cắt? Hãy nói rằng cắt ngắn 10%?
Tôi có thể tưởng tượng làm thế nào để làm điều đó nếu bạn có 10 mục hoặc hơn, nhưng làm thế nào tôi có thể làm điều đó cho rất nhiều mục?
Làm thế nào tôi có thể tính toán trung bình cắt hoặc cắt? Hãy nói rằng cắt ngắn 10%?
Tôi có thể tưởng tượng làm thế nào để làm điều đó nếu bạn có 10 mục hoặc hơn, nhưng làm thế nào tôi có thể làm điều đó cho rất nhiều mục?
Câu trả lời:
Cắt tỉa có nghĩa là cắt tỉa quan sát phần trăm từ cả hai đầu.
Ví dụ: Nếu bạn được yêu cầu tính trung bình cắt 10%, .
Đưa ra một loạt các quan sát, :
Nếu là số nguyên sử dụng k = n p và cắt k quan sát ở cả hai đầu.
= các quan sát còn lại = n - 2 k .
Tỉa trung bình =
Ví dụ : Tìm trung bình cắt 10% của
2, 4, 6, 7, 11, 21, 81, 90, 105, 121
Ở đây, là một số nguyên nên cắt chính xác một quan sát ở mỗi đầu, vì k = 1 . Do đó cắt bỏ 2 và 121. Chúng ta còn lại với R = n - 2 k = 10 - 2 = 8 quan sát.
Trung bình cắt 10% = (1/8) * (4 + 6 + 7 + 11 + 21 + 81 + 90 + 105) = 40.625
Nếu có một phần phân số, giá trị trung bình phức tạp hơn một chút. Trong ví dụ trên, nếu chúng ta muốn trung bình cắt 15%, P = 15 , p = 0,15 , n = 10 , k = n p = 1,5 . Điều này có phần nguyên 1 và phần 0,5 là có mặt. R = n - 2 k = 10 - 2 ∗ 1,5 = 10 - 3 = 7 . Do đó R = 7 các quan sát được giữ lại.
$X_i$
Ngoài câu trả lời ở trên, nếu có nhiều mục (giả sử n), thì trước tiên việc sắp xếp chúng sẽ mất thời gian O (n log n). Tuy nhiên, có một giải pháp thời gian tuyến tính.
Tính toán U-quantile L và (1-P) -quantile U. Có một thuật toán đơn giản (giống như quicksort) cho thuật toán này chạy trong thời gian tuyến tính dự kiến. Ngoài ra còn có một thuật toán phức tạp hơn chạy trong trường hợp tuyến tính tồi tệ nhất. Cả hai có thể được tìm thấy, ví dụ, trong: Cormen, Leiserson, Rivest, Stein: Giới thiệu về Algortithms.
Quét qua tất cả các giá trị và thêm các giá trị giữa L và U. Điều này rõ ràng cần thời gian tuyến tính.
Nếu có các mối quan hệ và các lượng tử tính toán tồn tại nhiều lần trong số các giá trị, chúng ta có thể đã thêm quá nhiều hoặc quá ít giá trị và có thể cần phải sửa cho điều này một cách thích hợp. Vì chúng tôi biết có bao nhiêu số chúng tôi đã thêm trong bước 2 và cũng bao nhiêu lần chúng tôi đã thấy L và U, điều này có thể được thực hiện trong thời gian không đổi.
Chia tổng số tiền cho số triệu hồi.
Lưu ý rằng công thức trên chỉ có giá trị nếu n thực sự lớn và sắp xếp tất cả chúng sẽ là một thành tích hiệu quả, có thể là vài triệu.