Tôi đã đọc qua các bài đăng hiện có về mô-đun này (và tài liệu Scipy), nhưng vẫn chưa rõ với tôi cách sử dụng mô-đun kstest của Scipy để làm tốt kiểm tra phù hợp khi bạn có tập dữ liệu và chức năng có thể gọi.Sử dụng số liệu thống kê của Scipy.kstest để kiểm tra độ phù hợp
PDF Tôi muốn thử nghiệm dữ liệu của tôi chống lại không phải là một trong những scipy.stats phân phối tiêu chuẩn, vì vậy tôi không thể chỉ gọi nó bằng một cái gì đó như:
kstest(mydata,'norm')
nơi mydata là một mảng NumPy . Thay vào đó, tôi muốn làm một cái gì đó như:
kstest(mydata,myfunc)
nơi 'myfunc' là chức năng callable. Điều này không có tác dụng - điều này là không đáng ngạc nhiên, vì không có cách nào để biết kẽ nhất về mảng 'mydata' là gì để tạo ra các tần số lý thuyết tương ứng bằng cách sử dụng 'myfunc'. Giả sử các tần số trong 'mydata' tương ứng với các giá trị của biến ngẫu nhiên là mảng 'abscissa'. Sau đó, tôi nghĩ có lẽ tôi có thể sử dụng số liệu thống kê.ks_2samp:
ks_2samp(mydata,myfunc(abscissa))
nhưng tôi không biết liệu điều đó có hợp lệ về mặt thống kê hay không. (Sidenote: làm kstest và ks_2samp mong đợi các mảng tần số được chuẩn hóa thành một, hoặc chúng có muốn các tần số tuyệt đối không?)
Trong bất kỳ trường hợp nào, vì thử nghiệm KS một mẫu được cho là được sử dụng cho độ tốt của thử nghiệm phù hợp, tôi phải giả định có một số cách để làm điều đó với kstest trực tiếp. Làm thế nào để bạn làm điều này?
Cảm ơn bạn, hoạt động tốt ngay bây giờ! Một cái gì đó gây nhầm lẫn cho tôi mặc dù.Khi tôi làm theo ví dụ của bạn, tôi nhận được D = 0,08, p = 1,6e-14. Trong câu hỏi ban đầu của tôi, tôi đã đề cập đến giải pháp 'hack' của tôi khi sử dụng ks_2samp: tôi đã sử dụng mô-đun biểu đồ để tính toán tần số quan sát của dữ liệu, tính toán tần số lý thuyết cho cùng kích thước thùng và sử dụng ks_2samp trên hai mảng này. Điều đó đã cho tôi D = 0,74, p = 0,017. Có vẻ hơi lạ với tôi rằng điều này sẽ mang đến một kết quả rất khác biệt. Bạn có nghĩ rằng hai phép tính nên gần hơn? –
Chờ đã, tôi có thể đã nhầm lẫn bản thân mình: liệu ks_2samp có sử dụng cdf thực nghiệm của hai tập dữ liệu hoặc hai bộ dữ liệu không? –
'ks_2samp' tự lấy hai tập dữ liệu. Nếu bạn đang làm việc đúng cách, tôi nghĩ có vẻ hợp lý rằng phương pháp 'ks_2samp' của bạn sẽ mang lại giá trị 'p-value' cao hơn' kstest', không chắc liệu sự khác biệt bạn thấy có quá lớn hay không ... – Jaime