Hướng dẫn how does python calculate quantiles? - làm thế nào để python tính toán lượng tử?

numpy.quantile (a, q, axis = none, out = none, overwrite_input = false, meathquantile(a, q, axis=None, out=None, overwrite_input=False, method='linear', keepdims=False, *, interpolation=None)[source]#

Tính toán lượng tử Q-th của dữ liệu dọc theo trục được chỉ định.

Mới trong phiên bản 1.15.0.

Parametersaarray_likeaarray_like

Mảng đầu vào hoặc đối tượng có thể được chuyển đổi thành một mảng.

qarray_like của phaoarray_like of float

Quantile hoặc trình tự lượng tử để tính toán, phải bao gồm từ 0 đến 1.

trục {int, tuple of int, none}, tùy chọn{int, tuple of int, None}, optional

Trục hoặc trục dọc theo đó các lượng tử được tính toán. Mặc định là tính toán (các) lượng tử dọc theo phiên bản phẳng của mảng.

Outndarray, tùy chọnndarray, optional

Mảng đầu ra thay thế để đặt kết quả. Nó phải có hình dạng và chiều dài bộ đệm giống như đầu ra dự kiến, nhưng loại (của đầu ra) sẽ được đúc nếu cần thiết.

Overwrite_InputBool, Tùy chọnbool, optional

Nếu đúng, sau đó cho phép mảng đầu vào A được sửa đổi bằng các tính toán trung gian, để lưu bộ nhớ. Trong trường hợp này, nội dung của đầu vào A sau khi chức năng này hoàn thành là không xác định.

Phương thức, tùy chọnstr, optional

Tham số này chỉ định phương pháp sử dụng để ước tính lượng tử. Có nhiều phương pháp khác nhau, một số duy nhất cho Numpy. Xem các ghi chú để giải thích. Các tùy chọn được sắp xếp theo loại R của chúng như được tóm tắt trong giấy H & F [1] là:

  1. Đảo ngược_cdf,

  2. ’Trung bình_inverted_cdf,

  3. Gần nhất_observation

  4. Nội suy_inverted_cdf

  5. Hazen ”

  6. Weibull

  7. ‘Tuyến tính (mặc định)

  8. Median_unbiased

  9. Authalmal_unbiased

Ba phương pháp đầu tiên không liên tục. Numpy xác định thêm các biến thể không liên tục sau của tùy chọn ‘tuyến tính mặc định (7.):

  • 'thấp hơn'

  • ’Cao hơn,

  • Điểm giữa

  • 'gần nhất'

Đã thay đổi trong phiên bản 1.22.0: Đối số này trước đây được gọi là nội suy của Cameron và chỉ cung cấp mặc định của tuyến tính và bốn tùy chọn cuối cùng.This argument was previously called “interpolation” and only offered the “linear” default and last four options.

Keepdimsbool, tùy chọnbool, optional

Nếu điều này được đặt thành TRUE, các trục bị giảm được để lại trong kết quả là kích thước với kích thước một. Với tùy chọn này, kết quả sẽ phát sóng chính xác so với mảng gốc a.

Nội suy, tùy chọnstr, optional

Tên không dùng cho đối số từ khóa phương thức.

Không dùng nữa kể từ phiên bản 1.22.0.

ReturnSquantilescalar hoặc ndarrayquantilescalar or ndarray

Nếu Q là một lượng tử duy nhất và trục = không có, thì kết quả là vô hướng. Nếu nhiều lượng tử được đưa ra, trục đầu tiên của kết quả tương ứng với các lượng tử. Các trục khác là các trục còn lại sau khi giảm a. Nếu đầu vào chứa số nguyên hoặc nổi nhỏ hơn float64, loại dữ liệu đầu ra là float64. Mặt khác, loại dữ liệu đầu ra giống như đầu vào. Nếu ra ngoài được chỉ định, mảng đó được trả về thay thế.

Ghi chú

Với một vectơ V có độ dài N, lượng tử Q-th của V là giá trị q của cách từ mức tối thiểu đến tối đa trong một bản sao được sắp xếp của V. Các giá trị và khoảng cách của hai hàng xóm gần nhất cũng như tham số phương thức sẽ xác định lượng tử nếu xếp hạng chuẩn hóa không khớp với vị trí của q chính xác. Hàm này giống như trung bình nếu q=0.5, giống như mức tối thiểu nếu float640 và giống như tối đa nếu float641.

Tham số phương thức tùy chọn chỉ định phương thức sử dụng khi lượng tử mong muốn nằm giữa hai điểm dữ liệu float642. Nếu float643 là phần phân số của chỉ số được bao quanh bởi float644 và float645, và alpha và beta là các hằng số hiệu chỉnh sửa đổi I và J:

\ [i + g = (q - alpha) / (n - alpha - beta + 1) \]

Các phương pháp khác nhau sau đó hoạt động như sau

inverted_cdf:

Phương pháp 1 của H & F [1]. Phương pháp này cho kết quả không liên tục:

  • Nếu g> 0; sau đó lấy j

  • Nếu g = 0; sau đó lấy tôi

averaged_inverted_cdf:

Phương pháp 2 của H & F [1]. Phương pháp này cho kết quả không liên tục:

  • Nếu g> 0; sau đó lấy j

  • Nếu g = 0; sau đó lấy tôi

closest_observation:

Phương pháp 2 của H & F [1]. Phương pháp này cho kết quả không liên tục:

  • Nếu g> 0; sau đó lấy j

  • Nếu g = 0; sau đó lấy tôi

  • Phương pháp 2 của H & F [1]. Phương pháp này cho kết quả không liên tục:

Nếu g = 0; Sau đó, trung bình giữa các giới hạn

Phương pháp 3 của H & F [1]. Phương pháp này cho kết quả không liên tục:

  • Nếu g = 0 và chỉ mục là lẻ; sau đó lấy j

  • Nếu g = 0 và chỉ mục là chẵn; sau đó lấy tôi

hazen:

Interpolated_inverted_cdf:

  • Phương pháp 4 của H & F [1]. Phương pháp này cho kết quả liên tục bằng cách sử dụng:

  • Alpha = 0

weibull:

Beta = 1

  • Nếu g = 0 và chỉ mục là lẻ; sau đó lấy j

  • Nếu g = 0 và chỉ mục là chẵn; sau đó lấy tôi

linear:

Interpolated_inverted_cdf:

  • Phương pháp 4 của H & F [1]. Phương pháp này cho kết quả liên tục bằng cách sử dụng:

  • Nếu g = 0 và chỉ mục là chẵn; sau đó lấy tôi

median_unbiased:

Interpolated_inverted_cdf:

  • Phương pháp 4 của H & F [1]. Phương pháp này cho kết quả liên tục bằng cách sử dụng:

  • Alpha = 0

normal_unbiased:

Beta = 1

  • Alpha = 3/8

  • Beta = 3/8

lower:

Phương pháp Numpy được giữ để tương thích ngược. Lấy float644 làm điểm nội suy.

higher:

Phương pháp Numpy được giữ để tương thích ngược. Lấy float645 làm điểm nội suy.

nearest:

Phương pháp Numpy được giữ để tương thích ngược. Mất float644 hoặc float645, tùy theo mức nào gần nhất.

midpoint:

Phương pháp Numpy được giữ để tương thích ngược. Sử dụng float640.

Người giới thiệu

1(1,2,3,4,5,6,7,8,9,10)(1,2,3,4,5,6,7,8,9,10)

R. J. Hyndman và Y. Fan, Quantiles mẫu trong các gói thống kê, Nhà thống kê người Mỹ, 50 (4), trang 361-365, 1996

Ví dụ

>>> a = np.array([[10, 7, 4], [3, 2, 1]])
>>> a
array([[10,  7,  4],
       [ 3,  2,  1]])
>>> np.quantile(a, 0.5)
3.5
>>> np.quantile(a, 0.5, axis=0)
array([6.5, 4.5, 2.5])
>>> np.quantile(a, 0.5, axis=1)
array([7.,  2.])
>>> np.quantile(a, 0.5, axis=1, keepdims=True)
array([[7.],
       [2.]])
>>> m = np.quantile(a, 0.5, axis=0)
>>> out = np.zeros_like(m)
>>> np.quantile(a, 0.5, axis=0, out=out)
array([6.5, 4.5, 2.5])
>>> m
array([6.5, 4.5, 2.5])
>>> b = a.copy()
>>> np.quantile(b, 0.5, axis=1, overwrite_input=True)
array([7.,  2.])
>>> assert not np.all(a == b)

Xem thêm float641 để biết trực quan hóa hầu hết các phương pháp.

Quantiles được tính toán như thế nào?

Lượng tử của một dân số.Pr [x ≤ x] k/q.Đối với một quần thể hữu hạn của các giá trị có thể xảy ra bằng nhau được lập chỉ mục 1, độ, n từ thấp nhất đến cao nhất, K-th q-Quantile của dân số này có thể được tính toán tương đương thông qua giá trị của ip = n k/q.Ip = N k/q.

Lượng tử 0,75 là gì?

Bộ tứ thứ ba (Q3) là giá trị trung bình giữa trung bình và giá trị cao nhất (tối đa) của tập dữ liệu.Nó được gọi là phần tư theo kinh nghiệm trên hoặc thứ 75, vì 75% dữ liệu nằm dưới điểm này.3) is the middle value between the median and the highest value (maximum) of the data set. It is known as the upper or 75th empirical quartile, as 75% of the data lies below this point.

Lượng tử 90% là gì?

Tỷ lệ phần trăm thứ 90 cho thấy điểm trong đó 90% phần trăm dữ liệu có giá trị thấp hơn số này.Tổng quát hơn, phần trăm PTH là số n mà p% dữ liệu nhỏ hơn n.the point where 90% percent of the data have values less than this number. More generally, the pth percentile is the number n for which p% of the data is less than n.