Âm mưu A & NBSP; Q-Q, viết tắt của cốt truyện Quantile-Quantile, thường được sử dụng để đánh giá liệu một tập hợp dữ liệu có khả năng đến từ một số phân phối lý thuyết hay không.Q-Q plot, short for “quantile-quantile” plot, is often used to assess whether or not a set of data potentially came from some theoretical distribution.
Trong hầu hết các trường hợp, loại lô này được sử dụng để xác định xem một tập hợp dữ liệu có tuân theo phân phối bình thường hay không.
Hướng dẫn này giải thích cách tạo biểu đồ Q-Q cho một tập hợp dữ liệu trong Python.
Ví dụ: Biểu đồ Q-Q trong Python
Giả sử chúng ta có bộ dữ liệu sau 100 giá trị:
import numpy as np #create dataset with 100 values that follow a normal distribution np.random.seed[0] data = np.random.normal[0,1, 1000] #view first 10 values data[:10] array[[ 1.76405235, 0.40015721, 0.97873798, 2.2408932 , 1.86755799, -0.97727788, 0.95008842, -0.15135721, -0.10321885, 0.4105985 ]]
Để tạo biểu đồ Q-Q cho bộ dữ liệu này, chúng ta có thể sử dụng hàm qqplot [] từ thư viện StatSmodels:
import statsmodels.api as sm import matplotlib.pyplot as plt #create Q-Q plot with 45-degree line added to plot fig = sm.qqplot[data, line='45'] plt.show[]
Trong biểu đồ Q-Q, trục x hiển thị & nbsp; các lượng tử lý thuyết. Điều này có nghĩa là nó không hiển thị dữ liệu thực tế của bạn, nhưng thay vào đó, nó đại diện cho dữ liệu của bạn sẽ là nếu nó thường được phân phối.theoretical quantiles. This means it doesn’t show your actual data, but instead it represents where your data would be if it were normally distributed.
Trục Y hiển thị dữ liệu thực tế của bạn. Điều này có nghĩa là nếu & nbsp; các giá trị dữ liệu rơi dọc theo một đường thẳng ở góc 45 độ, thì dữ liệu thường được phân phối.actual data. This means that if the data values fall along a roughly straight line at a 45-degree angle, then the data is normally distributed.
Chúng ta có thể thấy trong biểu đồ Q-Q của chúng ta ở trên rằng các giá trị dữ liệu có xu hướng theo sát 45 độ, điều đó có nghĩa là dữ liệu có khả năng được phân phối bình thường. Điều này không đáng ngạc nhiên vì chúng tôi đã tạo 100 giá trị dữ liệu bằng cách sử dụng hàm numpy.random.nqual [].
Thay vào đó hãy xem xét nếu chúng tôi tạo một bộ dữ liệu gồm 100 giá trị phân phối đồng đều và tạo biểu đồ Q-Q cho bộ dữ liệu đó:
#create dataset of 100 uniformally distributed values data = np.random.uniform[0,1, 1000] #generate Q-Q plot for the dataset fig = sm.qqplot[data, line='45'] plt.show[]
Các giá trị dữ liệu rõ ràng không tuân theo dòng 45 độ màu đỏ, đây là một dấu hiệu cho thấy chúng không tuân theo phân phối bình thường.
Ghi chú trên các lô Q-Q
Hãy ghi nhớ các ghi chú sau đây về các lô Q-Q:
- Mặc dù một biểu đồ Q-Q không phải là một bài kiểm tra thống kê chính thức, nhưng nó cung cấp một cách dễ dàng để kiểm tra trực quan xem một tập dữ liệu có được phân phối bình thường hay không.
- Hãy cẩn thận để không nhầm lẫn các ô Q-Q với các sơ đồ P-P, ít được sử dụng và không hữu ích để phân tích các giá trị dữ liệu rơi vào các đuôi cực đoan của phân phối.
Bạn có thể tìm thấy nhiều hướng dẫn Python ở đây.
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
Bàn luận
Khi các lượng tử của hai biến được vẽ với nhau, thì biểu đồ thu được được gọi là đồ thị lượng tử - lượng tử hoặc qqplot. Biểu đồ này cung cấp một bản tóm tắt về việc phân phối của hai biến có tương tự hay không liên quan đến các vị trí.
Giải thích
Lô lượng tử - Lô lượng tử sử dụng statsmodel
in Python -
import
numpy as np
import
statsmodels.api as sm
import statsmodels.api as sm import matplotlib.pyplot as plt #create Q-Q plot with 45-degree line added to plot fig = sm.qqplot[data, line='45'] plt.show[]9
import statsmodels.api as sm import matplotlib.pyplot as plt #create Q-Q plot with 45-degree line added to plot fig = sm.qqplot[data, line='45'] plt.show[]1
#create dataset of 100 uniformally distributed values data = np.random.uniform[0,1, 1000] #generate Q-Q plot for the dataset fig = sm.qqplot[data, line='45'] plt.show[]1
#create dataset of 100 uniformally distributed values data = np.random.uniform[0,1, 1000] #generate Q-Q plot for the dataset fig = sm.qqplot[data, line='45'] plt.show[]2
#create dataset of 100 uniformally distributed values data = np.random.uniform[0,1, 1000] #generate Q-Q plot for the dataset fig = sm.qqplot[data, line='45'] plt.show[]3
Output: