Trong phân tích hồi quy, đa cộng tuyến xảy ra khi hai hoặc nhiều biến dự đoán có tương quan cao với nhau, do đó chúng không cung cấp thông tin duy nhất hoặc độc lập trong mô hình hồi quy Nếu mức độ tương quan đủ cao giữa các biến dự đoán, nó có thể gây ra vấn đề khi điều chỉnh và giải thích mô hình hồi quy. Show Cách đơn giản nhất để phát hiện đa cộng tuyến trong mô hình hồi quy là tính toán một số liệu được gọi là hệ số lạm phát phương sai, thường được viết tắt là VIF VIF đo lường mức độ tương quan giữa các biến dự đoán trong một mô hình. Nó nhận giá trị từ 1 đến vô cực dương Chúng tôi sử dụng các quy tắc ngón tay cái sau đây để giải thích các giá trị VIF
Ví dụ sau đây cho thấy cách phát hiện đa cộng tuyến trong mô hình hồi quy bằng Python bằng cách tính giá trị VIF cho từng biến dự đoán trong mô hình Ví dụ. Kiểm tra tính đa cộng tuyến trong PythonGiả sử chúng ta có DataFrame gấu trúc sau chứa thông tin về các cầu thủ bóng rổ khác nhau import pandas as pd #create DataFrame df = pd.DataFrame({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86], 'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19], 'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5], 'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]}) #view DataFrame print(df) rating points assists rebounds 0 90 25 5 11 1 85 20 7 8 2 82 14 7 10 3 88 16 8 6 4 94 27 5 6 5 90 20 7 9 6 76 12 6 6 7 75 15 9 10 8 87 14 9 10 9 86 19 5 7 Giả sử chúng ta muốn điều chỉnh mô hình hồi quy tuyến tính bội bằng cách sử dụng xếp hạng làm biến phản hồi và điểm, hỗ trợ và phục hồi làm biến dự báo Để tính toán VIF cho từng biến dự đoán trong mô hình, chúng ta có thể sử dụng hàm phương sai_inflation_factor() từ thư viện statsmodels from patsy import dmatrices from statsmodels.stats.outliers_influence import variance_inflation_factor #find design matrix for regression model using 'rating' as response variable y, X = dmatrices('rating ~ points+assists+rebounds', data=df, return_type='dataframe') #create DataFrame to hold VIF values vif_df = pd.DataFrame() vif_df['variable'] = X.columns #calculate VIF for each predictor variable vif_df['VIF'] = [variance_inflation_factor(X.values, i) for i in range(X.shape[1])] #view VIF for each predictor variable print(vif_df) VIF variable 0 101.258171 Intercept 1 1.763977 points 2 1.959104 assists 3 1.175030 rebounds Chúng ta có thể thấy các giá trị VIF cho từng biến dự đoán
Ghi chú. Bỏ qua VIF cho “Đánh chặn” trong mô hình vì giá trị này không liên quan Vì mỗi giá trị VIF cho các biến dự đoán trong mô hình đều gần bằng 1, nên đa cộng tuyến không phải là vấn đề trong mô hình Đa cộng tuyến có thể khó phát âm nhưng đó là một chủ đề bạn nên biết trong lĩnh vực máy học. Tôi quen thuộc với nó vì nền tảng thống kê của tôi nhưng tôi đã thấy rất nhiều chuyên gia không biết rằng đa cộng tuyến tồn tại Điều này đặc biệt phổ biến ở những người học máy không có nền tảng toán học. Và mặc dù đúng vậy, đa cộng tuyến có thể không phải là chủ đề quan trọng nhất cần nắm bắt trong hành trình của bạn, nhưng nó vẫn đủ quan trọng để tìm hiểu. Đặc biệt nếu bạn đang ngồi phỏng vấn nhà khoa học dữ liệu Vì vậy, trong bài viết này, chúng ta sẽ hiểu đa cộng tuyến là gì, tại sao lại là vấn đề, nguyên nhân gây ra đa cộng tuyến, từ đó tìm hiểu cách phát hiện và khắc phục đa cộng tuyến Trước khi đi sâu hơn, bắt buộc phải có hiểu biết cơ bản về hồi quy và một số thuật ngữ thống kê. Đối với điều này, tôi thực sự khuyên bạn nên xem qua các tài nguyên bên dưới Mục lục
Đa cộng tuyến là gì?
Điều này có nghĩa là một biến độc lập có thể được dự đoán từ một biến độc lập khác trong mô hình hồi quy. Ví dụ: chiều cao và cân nặng, thu nhập hộ gia đình và mức tiêu thụ nước, quãng đường đã đi và giá xe, thời gian học tập và giải trí, v.v. Hãy để tôi lấy một ví dụ đơn giản từ cuộc sống hàng ngày của chúng ta để giải thích điều này. Colin thích vừa xem tivi vừa nhai khoai tây chiên. Anh ấy càng xem nhiều TV, anh ấy càng ăn nhiều khoai tây chiên và càng hạnh phúc Bây giờ, nếu chúng ta có thể định lượng hạnh phúc và đo lường mức độ hạnh phúc của Colin khi anh ấy đang bận rộn thực hiện hoạt động yêu thích của mình, bạn nghĩ điều gì sẽ có tác động lớn hơn đến hạnh phúc của anh ấy? . Và khoảnh khắc chúng tôi thử đo mức độ hạnh phúc của anh ấy khi xem tivi, anh ấy bắt đầu ăn khoai tây chiên Ăn khoai tây chiên và xem tivi có mối tương quan cao trong trường hợp của Colin và chúng ta không thể xác định riêng lẻ tác động của các hoạt động cá nhân đối với hạnh phúc của anh ấy. Đây là vấn đề đa cộng tuyến Vậy tại sao bạn phải lo lắng về đa cộng tuyến trong bối cảnh máy học? Vấn đề có đa cộng tuyếnĐa cộng tuyến có thể là một vấn đề trong mô hình hồi quy vì chúng ta sẽ không thể phân biệt giữa các tác động riêng lẻ của các biến độc lập lên biến phụ thuộc. Ví dụ: giả sử rằng trong phương trình tuyến tính sau Y = W0+W1*X1+W2*X2 Hệ số W1 là mức tăng của Y khi X1 tăng một đơn vị trong khi giữ X2 không đổi. Nhưng vì X1 và X2 có mối tương quan cao, những thay đổi trong X1 cũng sẽ gây ra những thay đổi trong X2 và chúng ta sẽ không thể thấy tác động riêng lẻ của chúng đối với Y
Đa cộng tuyến có thể không ảnh hưởng nhiều đến độ chính xác của mô hình. Nhưng chúng tôi có thể mất độ tin cậy trong việc xác định tác động của các tính năng riêng lẻ trong mô hình của bạn – và đó có thể là một vấn đề khi nói đến khả năng diễn giải Điều gì gây ra đa cộng tuyến?Đa cộng tuyến có thể xảy ra do các vấn đề sau
Phát hiện đa cộng tuyến bằng VIFHãy thử phát hiện đa cộng tuyến trong một tập dữ liệu để giúp bạn biết điều gì có thể xảy ra sai sót Tôi đã tạo một bộ dữ liệu xác định mức lương của một người trong công ty dựa trên các tính năng sau
Đa cộng tuyến có thể được phát hiện thông qua các phương pháp khác nhau. Trong bài viết này, chúng tôi sẽ tập trung vào một vấn đề phổ biến nhất – VIF (Các yếu tố lạm phát có thể thay đổi)
Giá trị R^2 được xác định để tìm hiểu xem một biến độc lập được mô tả tốt như thế nào bởi các biến độc lập khác. Giá trị R^2 cao có nghĩa là biến này có tương quan cao với các biến khác. Điều này được ghi lại bởi VIF được ký hiệu bên dưới Vì vậy, giá trị R^2 càng gần 1, giá trị của VIF càng cao và tính đa cộng tuyến với biến độc lập cụ thể càng cao
Ở đây chúng ta có thể thấy rằng ‘Tuổi tác’ và ‘Số năm phục vụ’ có giá trị VIF cao, nghĩa là chúng có thể được dự đoán bởi các biến độc lập khác trong tập dữ liệu
Khắc phục đa cộng tuyếnLoại bỏ một trong các tính năng tương quan sẽ giúp giảm tính đa cộng tuyến giữa các tính năng tương quan Hình bên trái chứa giá trị VIF ban đầu cho các biến và hình bên phải là sau khi loại bỏ biến 'Tuổi' Chúng tôi có thể loại bỏ biến 'Tuổi' khỏi tập dữ liệu vì thông tin của nó đang được biến 'Số năm phục vụ' nắm bắt. Điều này đã làm giảm sự dư thừa trong tập dữ liệu của chúng tôi Việc loại bỏ các biến phải là một quá trình lặp đi lặp lại bắt đầu với biến có giá trị VIF lớn nhất vì xu hướng của nó bị các biến khác nắm bắt cao. Nếu bạn làm điều này, bạn sẽ nhận thấy rằng các giá trị VIF cho các biến khác cũng sẽ giảm, mặc dù ở một mức độ khác nhau. Trong ví dụ của chúng tôi, sau khi loại bỏ biến 'Tuổi', các giá trị VIF cho tất cả các biến đã giảm ở một mức độ khác nhau Tiếp theo, kết hợp các biến tương quan thành một và loại bỏ các biến khác. Điều này sẽ làm giảm đa cộng tuyến Hình bên trái chứa giá trị VIF ban đầu cho các biến và hình bên phải là sau khi kết hợp biến 'Tuổi tác' và 'Số năm phục vụ'. Việc kết hợp 'Tuổi' và 'Số năm kinh nghiệm' thành một biến duy nhất 'Tuổi_tại_gia' cho phép chúng tôi thu thập thông tin trong cả hai biến Tuy nhiên, đa cộng tuyến không phải lúc nào cũng là vấn đề. Việc khắc phục đa cộng tuyến phụ thuộc chủ yếu vào các nguyên nhân sau
Ghi chú kết thúcKiến thức về đa cộng tuyến có thể khá hữu ích khi bạn đang xây dựng các mô hình học máy có thể hiểu được Tôi hy vọng bạn thấy bài viết này hữu ích trong việc hiểu vấn đề về đa cộng tuyến và cách giải quyết nó. Nếu bạn muốn hiểu các mô hình hồi quy khác hoặc muốn hiểu diễn giải mô hình, tôi thực sự khuyên bạn nên xem qua các bài viết tuyệt vời sau đây Đa cộng tuyến có ảnh hưởng đến hồi quy logistic không?Đa cộng tuyến cũng có thể dẫn đến sai dấu và độ lớn của các ước tính hệ số hồi quy logistic và do đó dẫn đến kết luận không chính xác về mối quan hệ giữa các biến giải thích và biến phản hồi.
VIF trong hồi quy logistic là gì?Các khái niệm giống nhau đối với mô hình hồi quy tuyến tính logistic và thông thường vì đa cộng tuyến đề cập đến các biến độc lập tương quan. Đối với hồi quy tuyến tính thông thường, hệ số lạm phát phương sai (VIF) thường được sử dụng làm thước đo để đánh giá mức độ đa cộng tuyến. |