Hướng dẫn how to determine normal distribution python - cách xác định python phân phối chuẩn

scipy.stats.normaltest [a, trục = 0, nan_policy = 'tuyên truyền'] [Nguồn]#normaltest[a, axis=0, nan_policy='propagate'][source]#

Kiểm tra xem một mẫu khác với phân phối bình thường.

Hàm này kiểm tra giả thuyết null rằng một mẫu đến từ phân phối bình thường. Nó dựa trên thử nghiệm DiênAgostino và Pearson [1], [2] kết hợp độ lệch và kurtosis để tạo ra một thử nghiệm omnibus về tính bình thường.

Parametersaarray_likeaarray_like

Mảng chứa mẫu sẽ được kiểm tra.

trục hoặc không, tùy chọnint or None, optional

Trục dọc theo đó để tính toán thử nghiệm. Mặc định là 0. Nếu không có, hãy tính toán toàn bộ mảng a.

nan_policy {‘tuyên truyền,‘ nâng cao, ‘omit,}, tùy chọn{‘propagate’, ‘raise’, ‘omit’}, optional

Xác định cách xử lý khi đầu vào chứa NAN. Các tùy chọn sau có sẵn [mặc định là ‘tuyên truyền]:

  • ‘Tuyên truyền: Trả lại Nan

  • ‘Nâng cao: ném lỗi

  • ‘OMIT, thực hiện các tính toán bỏ qua các giá trị NAN

ReturnSstatisticFloat hoặc mảngstatisticfloat or array

s^2 + k^2, trong đó s là điểm Z được trả về bởi skewtestk là điểm Z được trả về bởi kurtosistest.

pvalueFloat hoặc mảngfloat or array

Một xác suất bình phương 2 mặt cho bài kiểm tra giả thuyết.

Người giới thiệu

1

DỉAgostino, R. B. [1971], Một thử nghiệm Omnibus về tính quy tắc đối với cỡ mẫu vừa và lớn, Biometrika, 58, 341-348

2

DỉAgostino, R. và Pearson, E. S. [1973], Các thử nghiệm để khởi hành từ bình thường, Biometrika, 60, 613-622

Ví dụ

>>> from scipy import stats
>>> rng = np.random.default_rng[]
>>> pts = 1000
>>> a = rng.normal[0, 1, size=pts]
>>> b = rng.normal[2, 1, size=pts]
>>> x = np.concatenate[[a, b]]
>>> k2, p = stats.normaltest[x]
>>> alpha = 1e-3
>>> print["p = {:g}".format[p]]
p = 8.4713e-19
>>> if p  alpha: & nbsp; không từ chối h0, bình thường.: fail to reject H0, normal.

Điều này có nghĩa là, nói chung, chúng tôi đang tìm kiếm kết quả với giá trị p lớn hơn để xác nhận rằng mẫu của chúng tôi có khả năng được rút ra từ phân phối Gaussian.

Một kết quả trên 5% không có nghĩa là giả thuyết null là đúng. Nó có nghĩa là nó rất có thể là đúng bằng chứng có sẵn. Giá trị p không phải là xác suất của dữ liệu phù hợp với phân phối Gaussian; Nó có thể được coi là một giá trị giúp chúng ta giải thích bài kiểm tra thống kê.

Thử nghiệm Shapiro-Wilk

Thử nghiệm Shapiro-Wilk đánh giá một mẫu dữ liệu và định lượng khả năng dữ liệu được rút ra từ phân phối Gaussian, được đặt theo tên của Samuel Shapiro và Martin Wilk.

Trong thực tế, thử nghiệm Shapiro-Wilk được cho là một thử nghiệm đáng tin cậy về tính quy tắc, mặc dù có một số gợi ý rằng thử nghiệm có thể phù hợp với các mẫu dữ liệu nhỏ hơn, ví dụ: Hàng ngàn quan sát hoặc ít hơn.

Chức năng SCIPY shapiro [] sẽ tính toán độ vuốt shapiro trên một bộ dữ liệu nhất định. Hàm trả về cả thống kê W được tính toán theo thử nghiệm và giá trị p.

Ví dụ hoàn chỉnh về việc thực hiện thử nghiệm Shapiro-Wilk trên bộ dữ liệu được liệt kê dưới đây.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

# Thử nghiệm Shapiro-Wilk

từ Numpy.Random Hạt nhập nhập khẩunumpy.random import seed

từ numpy.random nhập khẩu randnnumpy.random import randn

từ scipy.stats nhập shapiroscipy.stats import shapiro

# Hạt trình tạo số ngẫu nhiên

seed[1][1]

# Tạo các quan sát đơn biến

data=5*randn[100]+50=5*randn[100]+50

# Kiểm tra tính bình thường

stat,p=shapiro[data],p=shapiro[data]

in ['Thống kê =%. 3f, p =%. 3f'%[stat, p]]['Statistics=%.3f, p=%.3f'%[stat,p]]

# thông dịch

alpha=0.05=0.05

ifp>alpha:p>alpha:

in ['mẫu trông Gaussian [không từ chối H0]']['Sample looks Gaussian [fail to reject H0]']

else::

In ['Mẫu không trông Gaussian [từ chối H0]']['Sample does not look Gaussian [reject H0]']

Chạy ví dụ đầu tiên tính toán thử nghiệm trên mẫu dữ liệu, sau đó in giá trị p thống kê và tính toán.

Giá trị P quan tâm và thấy rằng dữ liệu có khả năng được rút ra từ phân phối Gaussian.

Thống kê = 0,992, p = 0,822

Mẫu trông Gaussian [không từ chối H0]

DỉAgostino từ K^2 Bài kiểm tra

Thử nghiệm DơiAgostino từ K^2 tính toán số liệu thống kê tóm tắt từ dữ liệu, cụ thể là kurtosis và độ lệch, để xác định xem phân phối dữ liệu có khởi hành từ phân phối bình thường hay không, được đặt tên cho Ralph d hèAgostino.

  • Skew là một định lượng về mức độ phân phối được đẩy sang trái hoặc phải, một thước đo sự bất đối xứng trong phân phối. is a quantification of how much a distribution is pushed left or right, a measure of asymmetry in the distribution.
  • Kurtosis định lượng bao nhiêu phân phối ở đuôi. Nó là một bài kiểm tra thống kê đơn giản và thường được sử dụng cho tính quy tắc. quantifies how much of the distribution is in the tail. It is a simple and commonly used statistical test for normality.

Thử nghiệm DiênAgostino từ K^2 có sẵn thông qua hàm scipy bình thường [] và trả về thống kê kiểm tra và giá trị p.

Ví dụ hoàn chỉnh về thử nghiệm DiênAgostino từ K^2 trên bộ dữ liệu được liệt kê dưới đây.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

# D'Agostino và Pearson's Test

từ Numpy.Random Hạt nhập nhập khẩunumpy.random import seed

từ numpy.random nhập khẩu randnnumpy.random import randn

từ scipy.stats nhập shapiroscipy.stats import normaltest

# Hạt trình tạo số ngẫu nhiên

seed[1][1]

# Tạo các quan sát đơn biến

data=5*randn[100]+50=5*randn[100]+50

# Kiểm tra tính bình thường

stat,p=normaltest[data],p=normaltest[data]

in ['Thống kê =%. 3f, p =%. 3f'%[stat, p]]['Statistics=%.3f, p=%.3f'%[stat,p]]

# thông dịch

alpha=0.05=0.05

ifp>alpha:p>alpha:

in ['mẫu trông Gaussian [không từ chối H0]']['Sample looks Gaussian [fail to reject H0]']

else::

In ['Mẫu không trông Gaussian [từ chối H0]']['Sample does not look Gaussian [reject H0]']

Chạy ví dụ đầu tiên tính toán thử nghiệm trên mẫu dữ liệu, sau đó in giá trị p thống kê và tính toán.

Giá trị P quan tâm và thấy rằng dữ liệu có khả năng được rút ra từ phân phối Gaussian.

Thống kê = 0,992, p = 0,822

Mẫu trông Gaussian [không từ chối H0]

DỉAgostino từ K^2 Bài kiểm tra

Thử nghiệm DơiAgostino từ K^2 tính toán số liệu thống kê tóm tắt từ dữ liệu, cụ thể là kurtosis và độ lệch, để xác định xem phân phối dữ liệu có khởi hành từ phân phối bình thường hay không, được đặt tên cho Ralph d hèAgostino.

Nó có thể được sử dụng để kiểm tra xem một mẫu dữ liệu có bình thường hay không. Thử nghiệm này là phiên bản sửa đổi của một thử nghiệm thống kê không hợp lý tinh vi hơn so với thử nghiệm thống kê phù hợp được gọi là thử nghiệm Kolmogorov-Smirnov.

Một tính năng của bài kiểm tra Anderson-Darling là nó trả về một danh sách các giá trị quan trọng thay vì một giá trị p duy nhất. Điều này có thể cung cấp cơ sở cho việc giải thích kết quả kỹ lưỡng hơn & nbsp;

Hàm scipy Anderson [] thực hiện thử nghiệm Anderson-Darling. Nó lấy làm tham số mẫu dữ liệu và tên của phân phối để kiểm tra nó chống lại. Theo mặc định, bài kiểm tra sẽ kiểm tra đối với phân phối Gaussian [Dist = Hồi Norm,].

Ví dụ hoàn chỉnh về việc tính toán bài kiểm tra Anderson-Darling về vấn đề mẫu được liệt kê dưới đây.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

# Kiểm tra Anderson-Darling

từ Numpy.Random Hạt nhập nhập khẩunumpy.random import seed

từ numpy.random nhập khẩu randnnumpy.random import randn

từ scipy.stats nhập khẩu Andersonscipy.stats import anderson

# Hạt trình tạo số ngẫu nhiên

seed[1][1]

# Tạo các quan sát đơn biến

data=5*randn[100]+50=5*randn[100]+50

# Kiểm tra tính bình thường

result=anderson[data]=anderson[data]

in ['Thống kê: %.3f' %result.statistic]['Statistic: %.3f'%result.statistic]

p=0=0

foriinrange[len[result.critical_values]]:iinrange[len[result.critical_values]]:

sl,cv=result.significance_level[i],result.critical_values[i],cv=result.significance_level[i],result.critical_values[i]

ifresult.statisticresult.statistic

Bài Viết Liên Quan

Chủ Đề