Kích thước hiệu ứng kiểm tra Kruskal-Wallis có thể được tính toán dựa trên các công thức từ bài viết,
Khi thử nghiệm H Kruskal-Wallis đã được tính toán, ước tính bình phương Epsilon có thể được tính toán
Tuy nhiên, kích thước hiệu ứng mà tôi hiện có được bằng cách sử dụng các công thức ở trên [với giá trị thống kê kiểm tra K-W sử dụng scipy.stats.kruskal
của Python] lớn hơn 1.
from scipy import stats
n = len[X_train]
k = X_train["type_call"].nunique[]
result = stats.kruskal[X_train["type_call"].astype["category"].cat.codes, y_train]
print["size:", n]
print["number of groups:", k]
print["KW result:", result]
print["effect size:", result[0]/[len[X_train] - 1]] # simplify formulae
# Output
size: 28047
number of groups: 4
KW result: KruskalResult[statistic=43767.1470692367, pvalue=0.0]
effect size: 1.560548636855049
Không phải kích thước hiệu ứng giữa giá trị 0 và 1, trong đó 0 cho thấy không có mối quan hệ và 1 cho thấy mối quan hệ mạnh mẽ?
EDIT: Tôi cũng đã thử sử dụng một máy tính trực tuyến để tính toán kích thước hiệu ứng và thu được kết quả tương tự như mã Python của tôi.: I also tried using an online calculator to calculate the effect size and obtained the same result as my Python code.
Tôi đang cố gắng làm thử nghiệm Kruskal Wallis trong Python không chỉ mang lại cho tôi số liệu thống kê H và giá trị P, mà còn cả kích thước hiệu ứng.
Tôi đã thử chức năng Stat.kruskal [] của Scipy, nhưng chỉ có H và P được trả về. Với một khung dữ liệu gấu trúc, vì vậy tôi đã chuyển đổi hai cột của DataFrame [trong tương lai tôi có thể cần nhiều hơn hai] thành mảng và chạy scipy.stats.kruskal [l_arr, e_arr]
Đầu tiên tôi chuyển đổi hai cột quan tâm từ một gấu trúc DataFrame sang hai mảng l_arr và e_arr. Sau đó tôi đã chạy:
import scipy.stats as stats
stats.kruskal[L_arr, E_arr]
Kết quả tôi nhận được: Kruskalresult [thống kê = 1.2752179327521276, pvalue = 0.2587900768563777] Tôi muốn có một số cách để tôi có được kích thước hiệu ứng?
Compute the effect size for Kruskal-Wallis test as the eta squared based on the H-statistic: eta2[H] = [H - k + 1]/[n - k]; where H is the value obtained in the Kruskal-Wallis test; k is the number of groups; n is the total number of observations.,The eta-squared estimate assumes values from 0 to 1 and multiplied by 100 indicates the percentage of variance in the dependent variable explained by the independent variable. The interpretation values commonly in published
litterature are: 0.01- < 0.06 [small effect], 0.06 - < 0.14 [moderate effect] and >= 0.14 [large effect].,a formula of the form x ~ group where x is a numeric variable giving the data values and group is a factor with one or multiple levels giving the corresponding groups. For example, formula = TP53 ~ cancer_group.,Maciej Tomczak and Ewa Tomczak. The need to report effect size estimates revisited. An overview of some recommended measures of effect size. Trends in Sport Sciences. 2014;
1[21]:19-25. 1._kruskal_effsize[
data,
formula,
ci = FALSE,
conf.level = 0.95,
ci.type = "perc",
nboot = 1000
]
Ví dụ
# Load data #::::::::::::::::::::::::::::::::::::::: data["ToothGrowth"] df % kruskal_effsize[len ~ dose]#> # A tibble: 1 x 5 #> .y. n effsize method magnitude #> * #> 1 len 60 0.678 eta2[H] large # Grouped data df %>% group_by[supp] %>% kruskal_effsize[len ~ dose]#> # A tibble: 2 x 6 #> supp .y. n effsize method magnitude #> * #> 1 OJ len 30 0.611 eta2[H] large #> 2 VC len 30 0.855 eta2[H] large
Gợi ý: 2
Đầu tiên tôi chuyển đổi hai cột quan tâm từ một gấu trúc DataFrame sang hai mảng l_arr và e_arr. Sau đó tôi đã chạy:
import scipy.stats as stats stats.kruskal[L_arr, E_arr]
Gợi ý: 3
Tính toán thử nghiệm H Kruskal-Wallis cho các mẫu độc lập., Kruskal-Wallis H-Test kiểm tra giả thuyết khống rằng trung bình dân số của tất cả các nhóm đều bằng nhau. Nó là một phiên bản không tham số của ANOVA. Thử nghiệm hoạt động trên 2 mẫu độc lập trở lên, có thể có kích thước khác nhau. Lưu ý rằng việc từ chối giả thuyết null không chỉ ra những nhóm nào khác nhau. So sánh bài hoc giữa các nhóm được yêu cầu để xác định nhóm nào khác nhau., Do giả định rằng H có phân phối Chi vuông, số lượng mẫu trong mỗi nhóm không được quá nhỏ. Một quy tắc điển hình là mỗi mẫu phải có ít nhất 5 phép đo., 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 mỗi slice trục [ví dụ: hàng] của đầu vào sẽ xuất hiện trong một phần tử tương ứng của đầu ra. Nếu không có, đầu vào sẽ được tắt trước khi tính toán thống kê.
>>> from scipy import stats >>> x = [1, 3, 5, 7, 9] >>> y = [2, 4, 6, 8, 10] >>> stats.kruskal[x, y] KruskalResult[statistic = 0.2727272727272734, pvalue = 0.6015081344405895]
>>> x = [1, 1, 1] >>> y = [2, 2, 2] >>> z = [2, 2] >>> stats.kruskal[x, y, z] KruskalResult[statistic = 7.0, pvalue = 0.0301973834223185]