Hướng dẫn ks test exponential distribution python - kiểm tra ks python phân phối theo cấp số nhân
Bạn có thể chuẩn hóa phân phối theo cấp số nhân đủ dễ dàng nhân các biến thể theo tham số tốc độ (đó là tham số tỷ lệ đối ứng). Nhưng nếu bạn ước tính tham số tốc độ từ dữ liệu, thống kê KolmogorovTHER Smirnov không có cùng phân phối như khi phân phối theo cấp số nhân được chỉ định hoàn toàn. Xem Lilliefors (1969), "trên các bài kiểm tra của Kolmogorov, Smirnov cho phân phối theo cấp số nhân với các tham số trung bình", JASA, 64, 325. và https://stats.stackexchange.com/a/392686/17230 Hiện tượng nói chung.64, 325. And https://stats.stackexchange.com/a/392686/17230 for an intuitive explanation of the phenomenon in general. Bạn có thể so sánh giá trị quan sát của thống kê kiểm tra KS được tính toán từ dữ liệu với các giá trị quan trọng được lập bảng được đưa ra trong tham chiếu. Hoặc mô phỏng phân phối của thống kê như @Glen_B & @Soakley đã đề xuất. Lưu ý rằng Lilliefors chỉ ra phân phối của nó không phụ thuộc vào các giá trị thực của các tham số, nói chung là đúng với các tham số tỷ lệ & vị trí, vì vậy đối với một cỡ mẫu nhất định, bạn có thể thực hiện điều này sau khi mô phỏng từ phân phối theo cấp số nhân tiêu chuẩn và giữ kết quả Để tham khảo trong tương lai; Bạn không cần phải lặp lại mô phỏng cho mỗi bộ dữ liệu mới có cùng kích thước mẫu. Và do đó không có liên quan đến xấp xỉ (ngoại trừ việc đến từ lỗi mô phỏng). Sự khác biệt được thực hiện đối với phân phối thống kê KS $ D $ bằng cách ước tính thay vì xác định trước các tham số không phải là tầm thường:$D$ by estimating rather than pre-specifying the parameters is not trivial: Lilliefors cho một số kết quả tiệm cận (làm việc khá thô thiển, nhưng đủ tốt cho công việc của chính phủ). Stephens đã lập bảng lượng tử cho thống kê sửa đổi $$ T (n) = \ left (d - \ frac {0.2} {n} \ reight) \ left (\ sqrt {n} + 0.26 + \ frac {0.5} {\ sqrt {n}} \ phải) $ $ Trong đó $ d $ là thống kê kiểm tra KS & $ n $ kích thước mẫu. Theo Durbin (1975), "các thử nghiệm của Kolmogorov, Smirnov khi các tham số được ước tính với các ứng dụng cho các thử nghiệm về hàm mũ và các thử nghiệm về khoảng cách", Biometrika, 62, 1, chúng rất gần với các giá trị chính xác cho các kích thước mẫu lớn hơn. Chúng có thể được tìm thấy trong Pearson & Hartley (1972), Biometrika Bàn dành cho các nhà thống kê, Cup hoặc trong Stephens (1974), "EDF Thống kê về sự tốt đẹp của sự phù hợp và một số so sánh", Jasa, 69, 347. Tôi không biết về Bất kỳ sửa chữa nào được công bố cho giá trị p của thử nghiệm KS thông thường để gần đúng với thử nghiệm Lilliefors; Một mối quan hệ pháp luật quyền lực có vẻ như nó có thể hữu ích:$D$ is the KS test statistic & $n$ the sample size. According to Durbin (1975), "Kolmogorov–Smirnov tests when parameters are estimated with applications to tests of exponentiality and tests on spacings", Biometrika, 62, 1, these are very close to the exact values for larger sample sizes. They can be found in Pearson & Hartley (1972), Biometrika Tables for Statisticians, CUP, or in Stephens (1974), "EDF Statistics for goodness of fit and some comparisons", JASA, 69, 347. I'm not aware of any published correction to the p-value of the ordinary KS test to approximate that of the Lilliefors test; a power-law relationship seems like it might be useful: Kiểm tra giả thuyết null rằng thời gian Interearthquake của chuỗi Parkfield được phân phối theo cấp số nhân. Đó là, các trận động đất xảy ra ngẫu nhiên mà không có ký ức về thời điểm cuối cùng. Lưu ý: Tính toán này chuyên sâu về mặt tính toán (bạn sẽ vẽ hơn 108 số ngẫu nhiên), do đó sẽ mất khoảng 10 giây để hoàn thành. Thực hiện bài kiểm tra Kolmogorov-Smirnov (một mẫu hoặc hai mẫu) để phù hợp. Thử nghiệm một mẫu so sánh phân phối cơ bản f (x) của một mẫu so với phân phối g (x) nhất định. Thử nghiệm hai mẫu so sánh các phân phối cơ bản của hai mẫu độc lập. Cả hai bài kiểm tra chỉ có giá trị cho phân phối liên tục. Tham sốRVSSTR, mảng_Lhe hoặc có thể gọi đượcrvsstr, array_like, or callableNếu một mảng, nó phải là một loạt các quan sát 1-D của các biến ngẫu nhiên. Nếu một người có thể gọi, nó phải là một hàm để tạo các biến ngẫu nhiên; Nó được yêu cầu để có một kích thước đối số từ khóa. Nếu một chuỗi, nó phải là tên của một phân phối trong Nếu Array_like, đó phải là một loạt các quan sát 1-D của các biến ngẫu nhiên và thử nghiệm hai mẫu được thực hiện (và RV phải là Array_Like). Nếu một người có thể gọi, đó có thể gọi được được sử dụng để tính toán CDF. Nếu một chuỗi, nó phải là tên của một phân phối trong Các tham số phân phối, được sử dụng nếu RV hoặc CDF là chuỗi hoặc ứng dụng gọi. Nint, tùy chọnint, optionalKích thước mẫu nếu RV là chuỗi hoặc có thể gọi được. Mặc định là 20. Xác định các giả thuyết null và thay thế. Mặc định là ‘hai mặt. Vui lòng xem giải thích trong các ghi chú dưới đây. Phương thức {’auto,’ chính xác, ‘xấp xỉ,‘ asymp,}, tùy chọn{‘auto’, ‘exact’, ‘approx’, ‘asymp’}, optionalXác định phân phối được sử dụng để tính toán giá trị p. Các tùy chọn sau có sẵn (mặc định là ‘Auto,): ReturnSstatisticFloatstatisticfloat Thống kê kiểm tra KS, D, D+ hoặc D-. PvalueFloatfloatGiá trị P một đuôi hoặc hai đuôi. Ghi chú Có ba tùy chọn cho NULL và giả thuyết thay thế tương ứng có thể được chọn bằng tham số thay thế.
Lưu ý rằng các giả thuyết thay thế mô tả các CDF của các phân phối cơ bản, không phải các giá trị quan sát được. Ví dụ: giả sử x1 ~ f và x2 ~ g. Nếu f (x)> g (x) cho tất cả x, các giá trị trong x1 có xu hướng nhỏ hơn so với trong x2. Ví dụ Giả sử chúng ta muốn kiểm tra giả thuyết null rằng một mẫu được phân phối theo tiêu chuẩn bình thường. Chúng tôi chọn mức độ tin cậy là 95%; Đó là, chúng tôi sẽ bác bỏ giả thuyết null có lợi cho giải pháp thay thế nếu giá trị p nhỏ hơn 0,05. Khi kiểm tra dữ liệu phân phối đồng đều, chúng tôi sẽ hy vọng giả thuyết null sẽ bị từ chối. >>> from scipy import stats >>> rng = np.random.default_rng() >>> stats.kstest(stats.uniform.rvs(size=100, random_state=rng), ... stats.norm.cdf) KstestResult(statistic=0.5001899973268688, pvalue=1.1616392184763533e-23) Thật vậy, giá trị p thấp hơn ngưỡng 0,05 của chúng tôi, vì vậy chúng tôi từ chối giả thuyết null có lợi cho sự thay thế hai mặt mặc định của các mặt hàng: dữ liệu không được phân phối theo tiêu chuẩn bình thường. Khi kiểm tra các biến thể ngẫu nhiên từ phân phối bình thường tiêu chuẩn, chúng tôi hy vọng dữ liệu sẽ phù hợp với giả thuyết null hầu hết thời gian. >>> x = stats.norm.rvs(size=100, random_state=rng) >>> stats.kstest(x, stats.norm.cdf) KstestResult(statistic=0.05345882212970396, pvalue=0.9227159037744717) Đúng như dự đoán, giá trị p là 0,92 không dưới ngưỡng của chúng tôi là 0,05, vì vậy chúng tôi không thể bác bỏ giả thuyết khống. Tuy nhiên, giả sử rằng các biến thể ngẫu nhiên được phân phối theo phân phối bình thường được chuyển sang các giá trị lớn hơn. Trong trường hợp này, hàm mật độ tích lũy (CDF) của phân phối cơ bản có xu hướng nhỏ hơn CDF của tiêu chuẩn bình thường. Do đó, chúng tôi hy vọng giả thuyết khống sẽ bị từ chối với >>> x = stats.norm.rvs(size=100, loc=0.5, random_state=rng) >>> stats.kstest(x, stats.norm.cdf, alternative='less') KstestResult(statistic=0.17482387821055168, pvalue=0.001913921057766743) Và thực sự, với giá trị p nhỏ hơn ngưỡng của chúng tôi, chúng tôi từ chối giả thuyết khống có lợi cho sự thay thế. Để thuận tiện, thử nghiệm trước đó có thể được thực hiện bằng cách sử dụng tên của phân phối làm đối số thứ hai. >>> stats.kstest(x, "norm", alternative='less') KstestResult(statistic=0.17482387821055168, pvalue=0.001913921057766743) Các ví dụ trên đều là các thử nghiệm một mẫu giống hệt với các ví dụ được thực hiện bởi >>> x = stats.norm.rvs(size=100, random_state=rng) >>> stats.kstest(x, stats.norm.cdf) KstestResult(statistic=0.05345882212970396, pvalue=0.9227159037744717)0. Ví dụ, khi hai mẫu được rút ra từ cùng một phân phối, chúng tôi hy vọng dữ liệu sẽ phù hợp với giả thuyết null hầu hết thời gian. >>> sample1 = stats.laplace.rvs(size=105, random_state=rng) >>> sample2 = stats.laplace.rvs(size=95, random_state=rng) >>> stats.kstest(sample1, sample2) KstestResult(statistic=0.11779448621553884, pvalue=0.4494256912629795) Đúng như dự đoán, giá trị p là 0,45 không dưới ngưỡng của chúng tôi là 0,05, vì vậy chúng tôi không thể bác bỏ giả thuyết khống. Sự khác biệt giữa thử nghiệm KS và bài kiểm tra chi vuông là gì?Không giống như thử nghiệm Chi-vuông, có thể được sử dụng để kiểm tra chống lại cả phân phối liên tục và riêng biệt, thử nghiệm K-S chỉ phù hợp để kiểm tra dữ liệu chống lại phân phối liên tục, chẳng hạn như phân phối thông thường hoặc Weibull.the K-S test is only appropriate for testing data against a continuous distribution, such as the normal or Weibull distribution.
Kiểm tra KS được tính toán như thế nào?Kiểm tra K-S hoạt động bằng cách so sánh hàm phân phối thực nghiệm với phân phối lý thuyết và tính toán khoảng cách tối đa giữa hai đường cong, được biểu thị bằng giá trị D.Giả thuyết khống nói rằng không có sự khác biệt giữa hai phân phối.comparing the empirical distribution function to a theoretical distribution and calculating the maximum distance between the two curves, which is represented by the D value. The null hypothesis states that there is no difference between the two distributions.
Kiểm tra KS có thể được sử dụng để phân phối riêng biệt không?Bài kiểm tra mức độ phù hợp của Kolmogorov-Smirnov chỉ chính xác khi phân phối giả thuyết là liên tục ", nhưng gần đây, Conover đã mở rộng thử nghiệm Kolmogorov-Smirnov để có được một thử nghiệm chính xác trong trường hợp phân phối rời rạc.recently Conover has extended the Kolmogorov-Smirnov test to obtain a test that is exact in the case of discrete distributions.
Vấn đề chính với bài kiểm tra KS là gì?Nó có xu hướng nhạy cảm hơn gần trung tâm phân phối so với ở đuôi.Có lẽ giới hạn nghiêm trọng nhất là phân phối phải được chỉ định đầy đủ.Đó là, nếu các tham số vị trí, tỷ lệ và hình dạng được ước tính từ dữ liệu, khu vực quan trọng của thử nghiệm K-S không còn hợp lệ.the distribution must be fully specified. That is, if location, scale, and shape parameters are estimated from the data, the critical region of the K-S test is no longer valid. |