Hướng dẫn kruskal-wallis test effect size python - kruskal-wallis thử nghiệm hiệu ứng trăn kích thước

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

Hướng dẫn kruskal-wallis test effect size python - kruskal-wallis thử nghiệm hiệu ứng trăn kích thước

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.

Hướng dẫn kruskal-wallis test effect size python - kruskal-wallis thử nghiệm hiệu ứng trăn kích thước

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 <- ToothGrowth # Kruskal-wallis rank sum test #::::::::::::::::::::::::::::::::::::::::: df %>% kruskal_effsize(len ~ dose)#> # A tibble: 1 x 5
   #> .y. n effsize method magnitude
   #> * <chr>
      <int>
         <dbl>
            <chr>
               <ord>
                  #> 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
                  #> * <fct>
                     <chr>
                        <int>
                           <dbl>
                              <chr>
                                 <ord>
                                    #> 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)


Làm cách nào để thực hiện một bài kiểm tra Kruskal Wallis ở Scipy?

Bước 1: Nhập dữ liệu. Đầu tiên, chúng tôi sẽ tạo ba mảng để giữ các phép đo nhà máy của chúng tôi cho mỗi trong ba nhóm: Bước 2: Thực hiện thử nghiệm Kruskal-Wallis. Tiếp theo, chúng tôi sẽ thực hiện thử nghiệm Kruskal-Wallis bằng cách sử dụng hàm kruskal () từ thư viện scipy.stats: Bước 3: Giải thích kết quả.

Kích thước hiệu ứng cho Kruskal là gì

Reneh, kích thước hiệu ứng cho Kruskal-Wallis là Epsilon Sqare.Đây là công thức: H / [(N2 - 1) / (n+1)], trong đó H là giá trị thống kê kiểm tra K -W và N là tổng số quan sát.Xin lưu ý rằng N2 trong công thức trên có nghĩa là "N bình phương".Chúc may mắn!:)

Có một cuốn sách về phân tích năng lượng cho Kruskal

EDIT: Có, các giá trị được đưa ra bởi trang web cuối cùng là các giá trị phạm vi được đưa ra bởi Cohen (1988) cho ETA-Squared được sử dụng cho ANOVA.Tôi không biết có công bằng khi áp dụng những thứ này cho Kruskal-Wallis.Cuốn sách là phân tích sức mạnh thống kê cho Khoa học hành vi, thứ 2.

Hình vuông của z trong wilcoxonr () có bằng chi không

Khi tôi đã thử nghiệm wilcoxonr () trong gói rcompanion bằng dữ liệu khảo sát, giá trị số cho thấy bình phương Z trong thử nghiệm Wilcoxon hai mẫu xấp xỉ bằng Chi-Square (H) trong thử nghiệm Kruskal Wallis giữa hai nhóm,Vì r = z / sqrt (n) được sử dụng trong wilcoxonr ().