Hướng dẫn q-q plot exponential distribution python - q-q âm mưu phân phối theo cấp số nhân python
Bài viết này đã được xuất bản như một phần của & NBSP; Data Science Blogathon Show
Giới thiệuCác lô Q-Q còn được gọi là các lô lượng tử. Như tên cho thấy, họ vẽ đồ thị các lượng tử của phân phối mẫu đối với các lượng tử của phân phối lý thuyết. Làm điều này giúp chúng tôi xác định xem một bộ dữ liệu có tuân theo bất kỳ loại phân phối xác suất cụ thể nào như bình thường, thống nhất, theo cấp số nhân hay không. Trước khi chúng tôi đi sâu vào âm mưu Q-Q, hãy để thảo luận về một số phân phối xác suất. Phân phối xác suất là gì?Trong các phân phối xác suất, chúng tôi biểu thị dữ liệu bằng các biểu đồ trong đó trục x biểu thị các giá trị có thể có của mẫu và trục y biểu thị xác suất xảy ra. Có nhiều loại phân phối xác suất như Gaussian hoặc phân phối bình thường, phân phối đồng nhất, phân phối theo cấp số nhân, phân phối nhị thức, v.v. Trong blog này, chúng tôi sẽ xem xét ba loại phân phối là bình thường, thống nhất và theo cấp số nhân và cách chúng tôi có thể xác định chúng bằng cách sử dụng biểu đồ QQ.
Tại sao các loại phân phối xác suất lại quan trọng?Phân phối xác suất là rất cần thiết trong phân tích dữ liệu và ra quyết định. Một số mô hình học máy hoạt động tốt nhất theo một số giả định phân phối. Biết phân phối nào chúng tôi đang làm việc có thể giúp chúng tôi chọn mô hình tốt nhất. Do đó hiểu loại phân phối của các biến tính năng là chìa khóa để xây dựng các thuật toán học máy mạnh mẽ. Phân phối bình thườngChúng tôi thường xuyên đưa ra giả định về tính quy tắc trong phân phối của chúng tôi khi chúng tôi thực hiện phân tích thống kê và xây dựng các mô hình dự đoán. Các thuật toán học máy như hồi quy tuyến tính và hồi quy logistic thực hiện tốt hơn nơi các tính năng và mục tiêu số theo Gaussian hoặc phân phối đồng đều. Đó là một giả định quan trọng vì phân phối bình thường cho phép chúng ta sử dụng quy tắc thực nghiệm là 68 - 95 - 99,7 và phân tích nơi chúng ta có thể dự đoán tỷ lệ phần trăm của các giá trị và chúng sẽ giảm bao xa từ giá trị trung bình. Trong các mô hình hồi quy, tính bình thường đạt được ý nghĩa khi nói đến các điều khoản lỗi. Bạn muốn giá trị trung bình của các thuật ngữ lỗi bằng không. Nếu giá trị trung bình của các thuật ngữ lỗi cách xa số không, điều đó có nghĩa là các tính năng chúng tôi đã chọn có thể không thực sự có tác động đáng kể đến biến kết quả. Nó thời gian để xem xét lựa chọn tính năng cho mô hình. Làm thế nào các sơ đồ Q-Q có thể giúp chúng tôi xác định các loại phân phối?Sức mạnh của các sơ đồ Q-Q nằm ở khả năng tóm tắt bất kỳ phân phối trực quan nào. Các lô QQ rất hữu ích để xác định
Trong các sơ đồ Q-Q, chúng tôi vẽ các giá trị lượng tử lý thuyết với các giá trị lượng tử mẫu. Các lượng tử thu được bằng cách sắp xếp dữ liệu. Nó xác định có bao nhiêu giá trị trong một phân phối ở trên hoặc dưới một giới hạn nhất định. Nếu các bộ dữ liệu chúng tôi đang so sánh có cùng loại phân phối, chúng tôi sẽ nhận được một đường thẳng. Dưới đây là một ví dụ về phân phối bình thường. Bây giờ, hãy để Lôi nhìn vào cách chúng ta có thể sử dụng biểu đồ Q-Q trong Python. Để vẽ nó, tôi đã sử dụng thư viện mô hình thống kê. Dưới đây là danh sách các thư viện mà tôi đã nhập cho trình diễn này. import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import statsmodels.api as sm import scipy.stats as stats
Bây giờ, hãy để sử dụng biểu đồ Q-Q để phân tích các loại phân phối mẫu khác nhau Phân phối bình thường Chúng ta có thể sử dụng np.random.ntormal cho điều này. Trong ví dụ dưới đây, tôi đang tạo dữ liệu phân phối bình thường với mức trung bình 0 và độ lệch chuẩn là 1. np_normal = pd.Series(np.random.normal(0, 1, 200)) Hãy để âm mưu này bằng cách sử dụng lô hist để xem nó có phân phối bình thường không. sm.qqplot(np_normal,line='45',fit=True,dist=stats.norm) Now let's plot the Q_Q plot for this dataset. If the datasets are distributed similarly, we would get a straight line. Chúng ta có thể thấy rằng vì chúng ta đang vẽ dữ liệu với các lượng tử lý thuyết của phân phối bình thường, chúng ta đang nhận được gần như một đường thẳng Phân bố đồng đều Bây giờ, hãy để cố gắng vẽ sơ đồ dữ liệu phân phối đồng đều và so sánh nó với phân phối bình thường. Một lần nữa, tôi đang sử dụng thư viện Numpy để tạo dữ liệu phân phối đồng đều mẫu. np_uniform = pd.Series(np.random.uniform(-5, 5, 200)) Bây giờ, hãy để âm mưu âm mưu Q-Q. Ở đây chúng tôi sẽ vẽ đồ thị phân phối đồng đều chống lại phân phối bình thường. sm.qqplot(np_uniform,line='45',fit=True,dist=stats.norm) plt.show() Như bạn có thể thấy trong biểu đồ Q-Q ở trên vì bộ dữ liệu của chúng tôi có phân phối đồng đều, cả hai đuôi phải và trái đều nhỏ và các giá trị cực đoan trong biểu đồ trên đang rơi xuống gần trung tâm. Trong một phân phối bình thường, các giá trị cực đoan lý thuyết này sẽ vượt quá các sigmas 2 & -2 và do đó hình dạng S của biểu đồ Q -Q của phân phối đồng đều. Phân phối theo cấp số nhân Nếu chúng ta vẽ một biến với phân phối theo cấp số nhân với phân phối bình thường lý thuyết, biểu đồ sẽ trông giống như bên dưới. Mã có thể được tìm thấy trong kho Git của tôi sm.qqplot(np_exp,fit=True,line='45',dist=stats.norm) plt.show() Các sơ đồ Q-Q và độ lệch của dữ liệuBây giờ, hãy để xem cách chúng ta có thể xác định độ lệch bằng cách sử dụng biểu đồ Q-Q Các lô Q-Q cũng có thể được sử dụng để xác định độ lệch. Nếu nhìn thấy phía bên trái của cốt truyện đi chệch khỏi đường dây, nó sẽ bị lệch bên trái. Khi phía bên phải của cốt truyện đi chệch hướng, nó đã bị biến đổi bên phải. Hãy để tạo ra một phân phối sai trái bằng cách sử dụng SKEWNORM từ thư viện tập lệnh. from scipy.stats import skewnorm import matplotlib.pyplot as plt skewness = -5 #Negative values are left skewed, positive values are right skewed. random = skewnorm.rvs(a = skewness,loc=1000, size=50000) #Skewnorm function random = random - min(random) #Shift the set so the minimum value is equal to zero. random = random / max(random) #Standadize all the vlues between 0 and 1. random = random * 50000 random = pd.Series(random) Phân phối sẽ trông giống như dưới đây: Khi chúng ta vẽ âm mưu Q-Q, chúng ta nên quan sát sự sai lệch ở phía bên trái sm.qqplot(random,fit=True,line='45') plt.show() Tương tự, một bản phân phối được ghép bên phải sẽ trông giống như dưới đây. Chúng ta có thể quan sát thấy sự sai lệch ở phía bên phải Sự kết luậnKhi bạn xây dựng mô hình học máy của mình, hãy đảm bảo bạn kiểm tra phân phối các điều khoản lỗi hoặc lỗi dự đoán bằng biểu đồ Q-Q. Nếu có độ lệch đáng kể so với giá trị trung bình, bạn có thể muốn kiểm tra phân phối biến tính năng của bạn và xem xét việc biến chúng thành một hình dạng bình thường. Để biết thêm thông tin, bên dưới là liên kết GitHub của tôi có chứa mã được sử dụng trong blog này https://github.com/akanshakhandelwal/Python-Notebooks/blob/main/Q_QPlot.ipynb Các phương tiện truyền thông được hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định của tác giả. Làm thế nào để bạn làm một QLàm thế nào để tạo một âm mưu Q-Q trong Python.. # Nhập các mô -đun .. Nhập Numpy dưới dạng NP .. Nhập statsmodels. API như SM .. Nhập matplotlib. pyplot như plt .. # Sử dụng chức năng hạt giống để tạo cùng một số ngẫu nhiên mỗi lần với giá trị hạt đã cho .. NP. Hạt giống (2). #tạo một mẫu ngẫu nhiên với 100 giá trị .. Dữ liệu = NP. Randint (50, kích thước = 100). Làm thế nào để bạn xác minh phân phối dữ liệu bằng cách sử dụng QĐối với một biểu đồ Q-Q, nếu các điểm phân tán trong lô nằm ở một đường thẳng, thì cả hai biến ngẫu nhiên đều có cùng phân phối, nếu không chúng có phân phối khác nhau. Từ biểu đồ Q-Q ở trên, người ta thấy rằng X thường được phân phối.if the scatter points in the plot lie in a straight line, then both the random variable have same distribution, else they have different distribution. From the above Q-Q plot, it is observed that X is normally distributed.
Là qMặc dù các sơ đồ Q-Q bình thường là những ô thường được sử dụng nhất trong thực tế do rất nhiều phương pháp thống kê giả định tính quy tắc, các sơ đồ Q-Q thực sự có thể được tạo ra cho bất kỳ phân phối nào.Q-Q Plots can actually be created for any distribution.
Loại phân phối nào được thể hiện trong QThông thường dữ liệu phân phối Phân phối bình thường là đối xứng, do đó nó không có độ lệch (giá trị trung bình bằng với trung bình).Trên biểu đồ Q-Q thường được phân phối dữ liệu xuất hiện gần như là một đường thẳng (mặc dù các đầu của biểu đồ Q-Q thường bắt đầu đi chệch khỏi đường thẳng).
The normal distribution is symmetric, so it has no skew (the mean is equal to the median). On a Q-Q plot normally distributed data appears as roughly a straight line (although the ends of the Q-Q plot often start to deviate from the straight line). |