Hướng dẫn q-q plot linear regression python - q-q âm mưu hồi quy tuyến tính 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ả. QBiểu đồ lượng tử (Q-Q), là một công cụ đồ họa để giúp chúng tôi đánh giá xem một tập hợp dữ liệu có đến từ một số phân phối lý thuyết như phân phối bình thường, theo cấp số nhân hoặc đồng đều hay không.a graphical tool to help us assess if a set of data plausibly came from some theoretical distribution such as a Normal, exponential or Uniform distribution.
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 vẽ một hồi quy tuyến tính trong Python?Sử dụng Numpy ... x = np.Mảng ([1, 3, 5, 7]) tạo dữ liệu.y = np.Mảng ([6, 3, 9, 5]). plt.Lô đất (x, y, 'o') Tạo cốt truyện phân tán .. m, b = np.polyfit (x, y, 1) m = độ dốc, b = đánh chặn .. plt.Biểu đồ (x, m*x + b) Thêm dòng phù hợp nhất .. Q là gì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í. or qqplot. This plot provides a summary of whether the distributions of two variables are similar or not with respect to the locations. |