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

Giới thiệu

Cá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ì?

Hướng dẫn q-q plot linear regression python - q-q âm mưu hồi quy tuyến tính python

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.

  • Phân phối bình thường là những phân phối phổ biến nhất. Chúng là một phân phối xác suất đạt đỉnh ở giữa và giảm ở cuối trục. Nó còn được gọi là một đường cong chuông hoặc phân phối Gaussian. Vì các phân phối bình thường là trung tâm của hầu hết các thuật toán, chúng tôi sẽ thảo luận chi tiết điều này dưới đây.

  • Phân phối đồng đều là loại phân phối xác suất trong đó xác suất xảy ra của x là không đổi. Chẳng hạn, nếu bạn ném xúc xắc, xác suất của bất kỳ số nào là đồng nhất.

  • Phân phối theo cấp số nhân là những phân phối trong đó một sự kiện xảy ra liên tục và độc lập với tốc độ không đổi. Nó thường được sử dụng để đo thời gian dự kiến ​​cho một sự kiện xảy ra.

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ường

Chú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

  • Nếu hai quần thể có cùng phân phối

  • Nếu dư theo một phân phối bình thường. Có một thuật ngữ lỗi bình thường là một giả định trong hồi quy và chúng ta có thể xác minh xem nó có được đáp ứng bằng cách sử dụng điều này không.

  • Độ lệch của phân phối

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.

Hướng dẫn q-q plot linear regression python - q-q âm mưu hồi quy tuyến tính python

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
  1. Numpy - để tạo dữ liệu với phân phối bình thường, đồng nhất, theo cấp số nhân – to create data with normal, uniform, exponential distribution

  2. Matplotlib & Seaborn để trực quan hóa các phân phối khác nhau & Seaborn to visualize various distributions

  3. StatSmodels.API cho âm mưu Q-Qfor Q-Q plot

  4. Scipy.stats - cho các chức năng thống kê– for statistical functions

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.

Hướng dẫn q-q plot linear regression python - q-q âm mưu hồi quy tuyến tính python

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()

Hướng dẫn q-q plot linear regression python - q-q âm mưu hồi quy tuyến tính python

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()

Hướng dẫn q-q plot linear regression python - q-q âm mưu hồi quy tuyến tính python

Các sơ đồ Q-Q và độ lệch của dữ liệu

Bâ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()

Hướng dẫn q-q plot linear regression python - q-q âm mưu hồi quy tuyến tính python

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

Hướng dẫn q-q plot linear regression python - q-q âm mưu hồi quy tuyến tính python

Sự kết luận

Khi 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ả.

Q

Biể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 Q

Là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.