Quan hệ cấp bậc Python

Lưu ý cách chúng tôi có hai

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
9 trong cột
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
0. Điều này là do chúng ta hòa - các mục nhập
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
1 và
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
2 chia sẻ cùng một giá trị, và do đó, phương pháp
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
3 tính toán mức trung bình của thứ hạng của chúng (
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
4 theo mặc định), tức là mức trung bình của
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
5 và
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
6

Xếp hạng theo hàng

Hãy xem xét DataFrame sau

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
7

Để xếp hạng các giá trị cho mỗi hàng, hãy đặt

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
90

phương pháp xác định

Hãy xem xét DataFrame sau

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
91

trung bình

Theo mặc định,

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
4, có nghĩa là xếp hạng trung bình được tính cho các giá trị trùng lặp

tối đa

Để sử dụng thứ hạng lớn nhất của mỗi nhóm

Đây là

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
93 một lần nữa để bạn tham khảo

tối thiểu

Để sử dụng thứ hạng nhỏ nhất của mỗi nhóm

đầu tiên

Để sử dụng thứ tự của các giá trị trong DataFrame gốc

Ở đây, hãy lưu ý cách giá trị đầu tiên

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
94 được gán thứ hạng là
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
95, trong khi giá trị cuối cùng
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
94 được gán thứ hạng là
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
97. Điều này là do thứ tự của chúng trong
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
93, nghĩa là,
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
94 đầu tiên được xếp hạng thấp hơn vì nó xuất hiện sớm hơn trong
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
93

Đây là

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
93 một lần nữa để bạn tham khảo

ngu độn

Điều này tương tự với

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
02, ngoại trừ thứ hạng được tăng thêm một sau mỗi nhóm trùng lặp

Để làm rõ, trong trường hợp của

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
02, các giá trị của nhóm
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
94 được chỉ định thứ hạng là 3, nhưng đối với
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
05, thứ hạng chỉ được tăng thêm 1 sau mỗi nhóm, vì vậy chúng tôi kết thúc với thứ hạng là
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
6 cho nhóm tiếp theo

Chỉ định na_option

Hãy xem xét DataFrame sau với một số giá trị bị thiếu

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
07

Theo mặc định,

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
08, có nghĩa là các
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
09 bị bỏ qua trong quá trình xếp hạng và được giữ trong DataFrame kết quả

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
10

Để gán thứ hạng thấp nhất (

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
5,
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
6,
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
13) cho các giá trị bị thiếu

Ở đây, bạn thấy

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
9 ở đó vì chúng ta có 2
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
09, và do đó, trung bình của thứ hạng của họ (
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
5 và
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
6) đã được tính

Kiểm tra cấp bậc có chữ ký Wilcoxon kiểm tra giả thuyết khống rằng hai mẫu được ghép nối có liên quan đến từ cùng một phân phối. Cụ thể, nó kiểm tra xem phân phối của sự khác biệt

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
6 có đối xứng về không hay không. Đây là phiên bản phi tham số của thử nghiệm T được ghép nối

Tham sốx mảng_like

Tập hợp các phép đo đầu tiên (trong trường hợp này,

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
7 là tập hợp các phép đo thứ hai) hoặc sự khác biệt giữa hai tập hợp các phép đo (trong trường hợp đó,
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
7 không được chỉ định). ) Phải là một chiều

y array_like, tùy chọn

Tập hợp phép đo thứ hai (nếu

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
9 là tập hợp phép đo đầu tiên) hoặc không được chỉ định (nếu
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
9 là sự khác biệt giữa hai tập hợp phép đo. ) Phải là một chiều

zero_method {“wilcox”, “pratt”, “zsplit”}, tùy chọn

Có các quy ước khác nhau để xử lý các cặp quan sát có giá trị bằng nhau (“zero-differences”, hoặc “zero”)

  • “wilcox”. Loại bỏ tất cả các khác biệt bằng 0 (mặc định);

  • “vất vả”. Bao gồm các điểm không khác biệt trong quá trình xếp hạng, nhưng giảm thứ hạng của các điểm không (thận trọng hơn); . Trong trường hợp này, xấp xỉ bình thường được điều chỉnh như trong

  • “zsplit”. Bao gồm các khác biệt bằng 0 trong quá trình xếp hạng và phân chia thứ hạng 0 giữa thứ hạng tích cực và tiêu cực

chỉnh sửa bool, tùy chọn

Nếu Đúng, hãy áp dụng hiệu chỉnh liên tục bằng cách điều chỉnh thống kê xếp hạng Wilcoxon bằng 0. 5 về phía giá trị trung bình khi tính toán thống kê z nếu sử dụng phép tính gần đúng bình thường. Mặc định là Sai

alternative {“hai mặt”, “lớn hơn”, “ít hơn”}, tùy chọn

Xác định giả thuyết thay thế. Mặc định là 'hai mặt'. Trong phần sau đây, hãy để

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
0 đại diện cho sự khác biệt giữa các mẫu được ghép nối.
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
1 nếu cả
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
9 và
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
7 đều được cung cấp, hoặc
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
4 nếu không

  • 'hai mặt'. phân phối bên dưới

    >>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
    
    0 không đối xứng về không

  • 'ít hơn'. phân phối bên dưới

    >>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
    
    0 ngẫu nhiên nhỏ hơn phân phối đối xứng về không

  • 'lớn hơn'. phân phối bên dưới

    >>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
    
    0 ngẫu nhiên lớn hơn phân phối đối xứng về không

phương pháp {“tự động”, “chính xác”, “xấp xỉ”}, tùy chọn

Phương pháp tính giá trị p, xem Ghi chú. Mặc định là “tự động”

axis int hoặc Không, mặc định. 0

Nếu một int, trục của đầu vào dọc theo đó để tính toán thống kê. Thống kê của từng lát cắt trục (e. g. hàng) của đầu vào sẽ xuất hiện trong phần tử tương ứng của đầu ra. Nếu

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
8, đầu vào sẽ được chia nhỏ trước khi tính toán thống kê

nan_policy {'tuyên truyền', 'bỏ ​​qua', 'nâng cao'}

Xác định cách xử lý các NaN đầu vào

  • >>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
    
    9. nếu một NaN có mặt trong lát cắt trục (e. g. hàng) dọc theo đó thống kê được tính toán, mục nhập tương ứng của đầu ra sẽ là NaN

  • >>> from scipy.stats import wilcoxon
    >>> res = wilcoxon(d)
    >>> res.statistic, res.pvalue
    (24.0, 0.041259765625)
    
    0. NaN sẽ bị bỏ qua khi thực hiện phép tính. Nếu dữ liệu không đủ vẫn còn trong lát trục dọc theo đó thống kê được tính toán, mục nhập tương ứng của đầu ra sẽ là NaN

  • >>> from scipy.stats import wilcoxon
    >>> res = wilcoxon(d)
    >>> res.statistic, res.pvalue
    (24.0, 0.041259765625)
    
    1. nếu có NaN, một
    >>> from scipy.stats import wilcoxon
    >>> res = wilcoxon(d)
    >>> res.statistic, res.pvalue
    (24.0, 0.041259765625)
    
    2 sẽ được nâng lên

keepdims bool, mặc định. Sai

Nếu điều này được đặt thành True, các trục bị giảm sẽ được để lại trong kết quả dưới dạng 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 chính xác đối với mảng đầu vào

Trả về một đối tượng có các thuộc tính sau. thống kê mảng_like

Nếu phương án thay thế là “hai bên”, tổng các bậc của sự khác biệt trên hoặc dưới 0, tùy theo giá trị nào nhỏ hơn. Mặt khác, tổng các bậc của sự khác biệt trên 0

pvalue mảng_like

Giá trị p cho thử nghiệm tùy thuộc vào phương án và phương pháp

zstatistic mảng_like

Khi

>>> from scipy.stats import wilcoxon
>>> res = wilcoxon(d)
>>> res.statistic, res.pvalue
(24.0, 0.041259765625)
3, đây là thống kê z đã chuẩn hóa

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
2

trong đó

>>> from scipy.stats import wilcoxon
>>> res = wilcoxon(d)
>>> res.statistic, res.pvalue
(24.0, 0.041259765625)
4 là thống kê như được định nghĩa ở trên,
>>> from scipy.stats import wilcoxon
>>> res = wilcoxon(d)
>>> res.statistic, res.pvalue
(24.0, 0.041259765625)
5 là giá trị trung bình của phân phối theo giả thuyết không,
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
0 là hiệu chỉnh liên tục và
>>> from scipy.stats import wilcoxon
>>> res = wilcoxon(d)
>>> res.statistic, res.pvalue
(24.0, 0.041259765625)
7 là sai số chuẩn. Khi
>>> from scipy.stats import wilcoxon
>>> res = wilcoxon(d)
>>> res.statistic, res.pvalue
(24.0, 0.041259765625)
8, thuộc tính này không khả dụng

Xem thêm

,

ghi chú

Trong phần sau đây, hãy để

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
0 đại diện cho sự khác biệt giữa các mẫu được ghép nối.
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
1 nếu cả
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
9 và
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
7 đều được cung cấp, hoặc
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
4 nếu không. Giả sử rằng tất cả các phần tử của
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
0 là các quan sát độc lập và được phân phối giống hệt nhau, và tất cả đều phân biệt và khác không

  • Khi

    >>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
    
    27 đủ lớn, phân phối null của thống kê kiểm tra chuẩn hóa (zstatistic ở trên) là xấp xỉ bình thường và có thể sử dụng
    >>> from scipy.stats import wilcoxon
    >>> res = wilcoxon(d)
    >>> res.statistic, res.pvalue
    (24.0, 0.041259765625)
    
    3 để tính giá trị p

  • Khi

    >>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
    
    27 nhỏ, phép tính gần đúng thông thường có thể không chính xác và
    >>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
    
    50 được ưu tiên hơn (với chi phí là thời gian thực hiện bổ sung)

  • Mặc định,

    >>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
    
    51, chọn giữa hai. khi
    >>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
    
    52, phương pháp chính xác được sử dụng;

Sự hiện diện của "mối quan hệ" (i. e. không phải tất cả các phần tử của

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
0 đều là duy nhất) và “số không” (i. e. các phần tử của
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
0 bằng 0) thay đổi phân phối null của thống kê kiểm tra và
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
50 không còn tính toán giá trị p chính xác. Nếu
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
56, thống kê z được điều chỉnh để so sánh chính xác hơn với chuẩn tắc chuẩn, tuy nhiên, đối với các cỡ mẫu hữu hạn, chuẩn tắc chuẩn chỉ là xấp xỉ của phân phối null thực của thống kê z. Không có sự đồng thuận rõ ràng giữa các tài liệu tham khảo về phương pháp nào xấp xỉ chính xác nhất giá trị p cho các mẫu nhỏ khi có số 0 và/hoặc mối quan hệ. Trong mọi trường hợp, đây là hành vi khi
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
58 được sử dụng khi
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
52 và không có số không;

Bắt đầu từ SciPy 1. 9, Đầu vào

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
61 (không được khuyến nghị cho mã mới) được chuyển đổi thành
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
62 trước khi thực hiện phép tính. Trong trường hợp này, đầu ra sẽ là một
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
62 vô hướng hoặc có hình dạng thích hợp hơn là một
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
61 2D. Tương tự, trong khi các phần tử bị che của mảng bị che bị bỏ qua, đầu ra sẽ là một mảng vô hướng hoặc
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
62 chứ không phải là một mảng bị che với
>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
66

Người giới thiệu

1

https. // vi. wikipedia. org/wiki/Wilcoxon_signed-rank_test

2

Conover, W. J. , Thống kê phi tham số thực tế, 1971

Pratt, J. W. , Remarks on Zeros and Ties in the Wilcoxon Signed Rank Procedures, Tạp chí của Hiệp hội Thống kê Hoa Kỳ, Tập. 54, 1959, trang. 655-667. DOI. 10. 1080/01621459. 1959. 10501526

4(,)

Wilcoxon, F. , So sánh cá nhân theo phương pháp xếp hạng, Biometrics Bulletin, Vol. 1, 1945, trang. 80-83. DOI. 10. 2307/3001968

Cureton, E. E. , The Normal Approximation to the Signed-Rank Sampling Distribution When Zero Differences, Tạp chí của Hiệp hội Thống kê Hoa Kỳ, Tập. 62, 1967, trang. 1068-1069. DOI. 10. 1080/01621459. 1967. 10500917

ví dụ

Trong , sự khác biệt về chiều cao giữa cây ngô thụ phấn chéo và ngô tự thụ tinh được đưa ra như sau

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]

Cây thụ phấn chéo dường như cao hơn. Để kiểm tra giả thuyết khống rằng không có sự khác biệt về chiều cao, chúng ta có thể áp dụng phép thử hai phía

________số 8

Do đó, chúng tôi sẽ bác bỏ giả thuyết khống ở mức tin cậy 5%, kết luận rằng có sự khác biệt về chiều cao giữa các nhóm. Để xác nhận rằng trung bình của sự khác biệt có thể được coi là tích cực, chúng tôi sử dụng

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
2

Điều này cho thấy rằng giả thuyết khống rằng trung vị là âm có thể bị bác bỏ ở mức độ tin cậy 5% ủng hộ phương án thay thế mà trung vị lớn hơn 0. Các giá trị p ở trên là chính xác. Sử dụng xấp xỉ bình thường cho các giá trị rất giống nhau

>>> d = [6, 8, 14, 16, 23, 24, 28, 29, 41, -48, 49, 56, 60, -67, 75]
5

Lưu ý rằng thống kê đã thay đổi thành 96 trong trường hợp một phía (tổng các bậc khác biệt dương) trong khi đó là 24 trong trường hợp hai phía (tổng các bậc trên và dưới 0 tối thiểu)