Kruskal-Wallis post hoc Python

Trong trường hợp thiết kế khối, chúng ta có thừa số sơ cấp [e. g. điều trị] và một yếu tố ngăn chặn [e. g. tuổi hoặc giới tính]. Yếu tố cản trở còn được gọi là yếu tố gây phiền toái và nó thường là nguồn gốc của sự thay đổi cần được tính đến

Một tình huống ví dụ đang thử nghiệm tác động của bốn loại phân bón đối với năng suất cây trồng ở bốn cánh đồng ngô. Chúng ta có thể biểu diễn các kết quả bằng một ma trận trong đó các hàng tương ứng với hệ số chặn [trường] và các cột tương ứng với hệ số chính [sản lượng]

Tập dữ liệu sau đây là nhân tạo và được tạo chỉ để trình diễn quy trình

>>> data = np.array[[[ 8.82, 11.8 , 10.37, 12.08],
                     [ 8.92,  9.58, 10.59, 11.89],
                     [ 8.27, 11.46, 10.24, 11.6 ],
                     [ 8.83, 13.25,  8.33, 11.51]]]

Đầu tiên, chúng ta cần thực hiện một bài kiểm tra tổng hợp - Kiểm tra tổng xếp hạng Friedman. Nó được thực hiện trong scipy. gói con thống kê

>>> import scipy.stats as ss
>>> ss.friedmanchisquare[*data.T]
FriedmanchisquareResult[statistic=8.700000000000003, pvalue=0.03355726870553798]

Chúng ta có thể bác bỏ giả thuyết khống rằng các phương pháp điều trị của chúng ta có cùng phân phối, vì giá trị p nhỏ hơn 0. 05. Một số bài kiểm tra post hoc có sẵn trong gói scikit-posthocs cho dữ liệu thiết kế khối không sao chép. Trong ví dụ sau, kiểm định Nemenyi được sử dụng

>>> import scikit_posthocs as sp
>>> sp.posthoc_nemenyi_friedman[data]
          0         1         2         3
0 -1.000000  0.220908  0.823993  0.031375
1  0.220908 -1.000000  0.670273  0.823993
2  0.823993  0.670273 -1.000000  0.220908
3  0.031375  0.823993  0.220908 -1.000000

Hàm này trả về một DataFrame với các giá trị p thu được khi so sánh theo cặp giữa tất cả các phương pháp điều trị. Người ta cũng có thể chuyển DataFrame và chỉ định tên của các cột chứa giá trị biến phụ thuộc, chặn và giá trị yếu tố chính. Đoạn mã sau tạo DataFrame có cùng dữ liệu

tôi đã phải làm một cái gì đó tương tự. Mã dưới đây sẽ phù hợp với bạn. Nó thực hiện bài kiểm tra Kruskal-Wallis cùng với bài kiểm tra của Dunn. Các giá trị p trong bài kiểm tra của Dunn sử dụng hiệu chỉnh Bonferroni. Dữ liệu cần được cấu trúc trong một cột duy nhất, bao gồm một số chỉ số phân tầng. post_hoc_result_dict trả về tên biến, điểm z, giá trị p và giá trị p đã sửa theo thứ tự đó. Đoạn mã dưới đây sẽ phù hợp với bạn. lmk

GỌI CHỨC NĂNG

f1 = df1['Factor 1'].to_frame[name='value']
f1['factor'] = 'Factor 1'
f2 = df1['Factor 1'].to_frame[name='value']
f2['factor'] = 'Factor 2'
correct_format = pd.concat[[f1,f2]]
k,p,post_hoc_result_dict = kw_test[correct_format,'factor','value']

CHỨC NĂNG

def p_rounder[p_value]:
    if p_value < .0001:
        p_value = '

Chủ Đề