Làm thế nào để đối phó với sự tách biệt hoàn hảo trong hồi quy logistic?


163

Nếu bạn có một biến phân tách hoàn hảo các số 0 và một trong biến mục tiêu, R sẽ đưa ra thông báo cảnh báo "phân tách hoàn hảo hoặc gần như hoàn hảo" sau đây:

Warning message:
glm.fit: fitted probabilities numerically 0 or 1 occurred 

Chúng tôi vẫn nhận được mô hình nhưng các ước tính hệ số bị thổi phồng.

Làm thế nào để bạn đối phó với điều này trong thực tế?



1
câu hỏi và bản demo liên quan về chính quy tại đây
Haitao Du

Câu trả lời:


100

Một giải pháp cho vấn đề này là sử dụng một hình thức hồi quy bị phạt. Trong thực tế, đây là lý do ban đầu một số hình thức hồi quy bị phạt đã được phát triển (mặc dù chúng hóa ra có các thuộc tính thú vị khác.

Cài đặt và tải gói glmnet trong R và bạn hầu như đã sẵn sàng để đi. Một trong những khía cạnh ít thân thiện với người dùng của glmnet là bạn chỉ có thể cung cấp cho nó ma trận chứ không phải công thức như chúng ta đã từng sử dụng. Tuy nhiên, bạn có thể xem model.matrix và muốn xây dựng ma trận này từ data.frame và công thức ...

Bây giờ, khi bạn mong đợi rằng sự phân tách hoàn hảo này không chỉ là sản phẩm phụ của mẫu của bạn, mà có thể là sự thật trong dân số, bạn đặc biệt không muốn xử lý điều này: sử dụng biến tách biệt này đơn giản làm công cụ dự đoán cho kết quả của bạn, không phải sử dụng một mô hình của bất kỳ loại nào.


20
Bạn cũng có thể sử dụng giao diện công thức cho glmnet thông qua gói caret.
Zach

"Bây giờ, khi bạn mong đợi ..." Câu hỏi liên quan đến điều này. Tôi có một nghiên cứu trường hợp / kiểm soát xem xét mối quan hệ với microbiome. Chúng tôi cũng có một điều trị gần như chỉ được tìm thấy trong số các trường hợp. Tuy nhiên, chúng tôi nghĩ rằng việc điều trị cũng có thể ảnh hưởng đến hệ vi sinh vật. Đây có phải là một ví dụ về cảnh báo của bạn? Theo giả thuyết, chúng tôi có thể tìm thấy một loạt các trường hợp không sử dụng phương pháp điều trị nếu chúng tôi đã cố gắng, nhưng chúng tôi có những gì chúng tôi có.
abalter

142

Bạn có nhiều lựa chọn:

  1. Loại bỏ một số sai lệch.

    (a) Bằng cách xử phạt khả năng theo đề xuất của @ Nick. Gói logistf trong R hoặc FIRTHtùy chọn trong SAS PROC LOGISTICthực hiện phương pháp được đề xuất trong Firth (1993), "Giảm thiên vị ước tính khả năng tối đa", Biometrika , 80 , 1.; trong đó loại bỏ sai lệch thứ tự đầu tiên khỏi ước tính khả năng tối đa. ( Ở đây @Gavin đề xuất brglmgói mà tôi không quen thuộc, nhưng tôi tập hợp nó thực hiện một cách tiếp cận tương tự cho các hàm liên kết không chính tắc, ví dụ probit.)

    (b) Bằng cách sử dụng các ước tính trung bình không thiên vị trong hồi quy logistic có điều kiện chính xác. Gói elrm hoặc logistiX trong R, hoặc EXACTcâu lệnh trong SAS PROC LOGISTIC.

  2. Loại trừ các trường hợp trong đó loại dự đoán hoặc giá trị gây ra sự phân tách xảy ra. Đây cũng có thể nằm ngoài phạm vi của bạn; hoặc xứng đáng để tiếp tục, tập trung điều tra. (Gói R safeBinaryRegression thuận tiện cho việc tìm kiếm chúng.)

  3. Tái tạo mô hình. Thông thường, đây là điều bạn đã làm trước đó nếu bạn nghĩ về nó, vì nó quá phức tạp đối với kích thước mẫu của bạn.

    (a) Loại bỏ bộ dự đoán khỏi mô hình. Dicey, vì những lý do được đưa ra bởi @Simon: "Bạn đang loại bỏ yếu tố dự đoán giải thích rõ nhất cho phản hồi".

    (b) Bằng cách thu gọn các danh mục dự báo / tạo thành các giá trị dự đoán. Chỉ khi điều này có ý nghĩa.

    (c) Thể hiện lại yếu tố dự đoán dưới dạng hai (hoặc nhiều) yếu tố chéo mà không có tương tác. Chỉ khi điều này có ý nghĩa.

  4. 5212

  5. Không làm gì cả. (Nhưng tính toán khoảng tin cậy dựa trên khả năng hồ sơ, vì ước tính Wald về lỗi tiêu chuẩn sẽ sai rất nhiều.) Một tùy chọn thường bị xem xét quá mức. Nếu mục đích của mô hình chỉ là để mô tả những gì bạn đã học về mối quan hệ giữa các yếu tố dự đoán và phản hồi, thì không có gì xấu hổ khi trích dẫn khoảng tin cậy cho tỷ lệ chênh lệch từ 2,3 trở lên. (Thật vậy, có vẻ khó hiểu khi trích dẫn các khoảng tin cậy dựa trên các ước tính không thiên vị, loại trừ các tỷ lệ chênh lệch được hỗ trợ tốt nhất bởi dữ liệu.) Các vấn đề xảy ra khi bạn cố gắng dự đoán bằng cách sử dụng ước tính điểm và dự đoán phân tách xảy ra làm thay đổi các yếu tố khác.

  6. Sử dụng mô hình hồi quy logistic ẩn, như được mô tả trong Rousseeuw & Christmann (2003), "Mạnh mẽ chống phân tách và ngoại lệ trong hồi quy logistic", Phân tích dữ liệu và thống kê tính toán , 43 , 3 và được triển khai trong gói R hlr . (@ user603 gợi ý điều này. ) Tôi chưa đọc bài báo này, nhưng họ nói trong phần tóm tắt "một mô hình tổng quát hơn một chút được đề xuất theo đó phản ứng quan sát có liên quan mạnh mẽ nhưng không bằng phản ứng thực sự không thể quan sát được", gợi ý cho Đối với tôi, đó không phải là một ý tưởng tốt để sử dụng phương pháp trừ khi điều đó nghe có vẻ hợp lý.

  7. "Thay đổi một vài quan sát được chọn ngẫu nhiên từ 1 thành 0 hoặc 0 thành 1 trong số các biến thể hiện sự tách biệt hoàn toàn": Nhận xét của @ RobertF . Đề nghị này dường như phát sinh từ liên quan đến tách là một vấn đề cho mỗi gia nhập chứ không phải là một triệu chứng của một lượng ít ỏi các thông tin trong các dữ liệu mà có thể dẫn bạn đến thích phương pháp khác để ước lượng tối đa-khả năng, hoặc để hạn chế suy luận cho những người bạn có thể làm với các phương pháp tiếp cận chính xác hợp lý có các giá trị riêng & không chỉ là "sửa chữa" để phân tách. (Ngoài việc không được quảng cáo rầm rộ , hầu hết các nhà phân tích đều hỏi cùng một câu hỏi về cùng một dữ liệu, đưa ra các giả định giống nhau, sẽ đưa ra các câu trả lời khác nhau do kết quả của việc tung đồng xu hoặc bất cứ điều gì.)


1
@Scortchi Có một tùy chọn (dị giáo) khác. Điều gì về việc thay đổi một vài quan sát được chọn ngẫu nhiên từ 1 thành 0 hoặc 0 thành 1 trong số các biến thể hiện sự tách biệt hoàn toàn?
RobertF

@RobertF: Cảm ơn! Tôi đã không nghĩ về điều này - nếu bạn có bất kỳ tài liệu tham khảo nào liên quan đến hiệu suất của nó, tôi sẽ rất biết ơn. Bạn đã bắt gặp những người sử dụng nó trong thực tế?
Scortchi

@Scortchi - Không, có các tài liệu tham khảo cho các nhà nghiên cứu thêm dữ liệu nhân tạo để loại bỏ hoàn toàn sự tách biệt, nhưng tôi chưa tìm thấy bất kỳ bài viết nào về sửa đổi dữ liệu có chọn lọc. Tôi không biết làm thế nào hiệu quả phương pháp này sẽ được.
RobertF

1
@tatami: Không phải tất cả (nhiều?) chương trình đều cảnh báo về sự phân tách, điều này có thể khó phát hiện khi nó kết hợp tuyến tính của một số biến, nhưng về sự thất bại hội tụ & / hoặc các giá trị được trang bị gần với hoặc một - tôi luôn luôn kiểm tra những cái này
Scortchi

2
@Scortchi: tóm tắt rất hay trong câu trả lời của bạn. Cá nhân tôi ủng hộ cách tiếp cận Bayes nhưng đáng để đề cập đến phân tích đẹp về hiện tượng chung theo quan điểm thường xuyên trong projecteuclid.org/euclid.ejs/1239416414 . Tác giả cung cấp một số khoảng tin cậy một phía có thể được sử dụng ngay cả khi có sự phân tách hoàn toàn trong hồi quy logistic.
Cyan

55

Đây là bản mở rộng câu trả lời của Scortchi và Manoel, nhưng vì bạn dường như sử dụng RI nghĩ rằng tôi sẽ cung cấp một số mã. :)

Tôi tin rằng giải pháp đơn giản và dễ hiểu nhất cho vấn đề của bạn là sử dụng phân tích Bayes với các giả định trước đây không có thông tin theo đề xuất của Gelman et al (2008). Như Scortchi đề cập, Gelman khuyên nên đặt Cauchy trước với trung vị 0,0 và thang điểm 2,5 trên mỗi hệ số (được chuẩn hóa để có giá trị trung bình 0,0 và SD là 0,5). Điều này sẽ thường xuyên hóa các hệ số và kéo chúng chỉ một chút về không. Trong trường hợp này, đó là chính xác những gì bạn muốn. Do có đuôi rất rộng, Cauchy vẫn cho phép các hệ số lớn (trái ngược với đuôi ngắn thông thường), từ Gelman:

nhập mô tả hình ảnh ở đây

Làm thế nào để chạy phân tích này? Sử dụng bayesglmchức năng trong gói arm thực hiện phân tích này!

library(arm)

set.seed(123456)
# Faking some data where x1 is unrelated to y
# while x2 perfectly separates y.
d <- data.frame(y  =  c(0,0,0,0, 0, 1,1,1,1,1),
                x1 = rnorm(10),
                x2 = sort(rnorm(10)))

fit <- glm(y ~ x1 + x2, data=d, family="binomial")

## Warning message:
## glm.fit: fitted probabilities numerically 0 or 1 occurred 

summary(fit)
## Call:
## glm(formula = y ~ x1 + x2, family = "binomial", data = d)
##
## Deviance Residuals: 
##       Min          1Q      Median          3Q         Max  
## -1.114e-05  -2.110e-08   0.000e+00   2.110e-08   1.325e-05  
## 
## Coefficients:
##               Estimate Std. Error z value Pr(>|z|)
## (Intercept)    -18.528  75938.934       0        1
## x1              -4.837  76469.100       0        1
## x2              81.689 165617.221       0        1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1.3863e+01  on 9  degrees of freedom
## Residual deviance: 3.3646e-10  on 7  degrees of freedom
## AIC: 6
## 
## Number of Fisher Scoring iterations: 25

Không hoạt động tốt ... Bây giờ phiên bản Bayes:

fit <- bayesglm(y ~ x1 + x2, data=d, family="binomial")
display(fit)
## bayesglm(formula = y ~ x1 + x2, family = "binomial", data = d)
##             coef.est coef.se
## (Intercept) -1.10     1.37  
## x1          -0.05     0.79  
## x2           3.75     1.85  
## ---
## n = 10, k = 3
## residual deviance = 2.2, null deviance = 3.3 (difference = 1.1)

Siêu đơn giản phải không?

Người giới thiệu

Gelman et al (2008), "Phân phối trước mặc định thông tin yếu cho các mô hình hồi quy logistic & hồi quy khác", Ann. Táo. Thống kê, 2, 4 http://projecteuclid.org/euclid.aoas/1231424214


6
Không đơn giản quá . Bạn có thể giải thích những gì bạn vừa làm? Ưu tiên bayesglmsử dụng là gì? Nếu ước tính ML tương đương với Bayesian với căn hộ trước, làm thế nào để các linh mục không cung cấp thông tin giúp đỡ ở đây?
StasK

5
Đã thêm một số thông tin! Ưu tiên là mơ hồ nhưng không bằng phẳng. Nó có một số ảnh hưởng vì nó thường xuyên hóa các ước tính và kéo chúng về phía 0,0, đó là điều tôi tin rằng bạn muốn trong trường hợp này.
Rasmus Bååth

> m = bayesglm (match ~., family = binomial (link = 'logit'), data = df) Thông báo cảnh báo: xác suất được trang bị bằng số 0 hoặc 1 xảy ra Không tốt!
Chris

Khi bắt đầu, hãy thử một phép chính quy hóa mạnh hơn một chút bằng cách tăng prior.dfmặc định 1.0và / hoặc giảm prior.scalemặc định 2.5, có lẽ bắt đầu thử:m=bayesglm(match ~. , family = binomial(link = 'logit'), data = df, prior.df=5)
Rasmus Bååth

1
Chính xác thì chúng ta đang làm gì khi chúng ta tăng Prior.df trong mô hình. Có giới hạn nào cho việc chúng ta muốn đi cao không? Sự hiểu biết của tôi là nó ràng buộc mô hình để cho phép hội tụ với các ước tính chính xác của lỗi?
hamilthj

7

Một trong những giải thích kỹ lưỡng nhất về các vấn đề "tách biệt hoàn toàn" trong khả năng tối đa là bài viết của Paul Allison. Anh ấy viết về phần mềm SAS, nhưng các vấn đề anh ấy giải quyết có thể khái quát đối với bất kỳ phần mềm nào:

  • Sự tách biệt hoàn toàn xảy ra bất cứ khi nào một hàm tuyến tính của x có thể tạo ra các dự đoán hoàn hảo về y

  • Sự phân tách hoàn toàn xảy ra khi (a) tồn tại một số vectơ hệ số b sao cho bxi 0 bất cứ khi nào yi = 1bxi 0 * bất cứ khi nào ** yi = 0 và đẳng thức này giữ cho ít nhất một trường hợp trong mỗi loại của biến phụ thuộc. Nói cách khác, trong trường hợp đơn giản nhất, đối với bất kỳ biến độc lập nhị phân nào trong hồi quy logistic, nếu có một số 0 trong bảng 2 × 2 được tạo bởi biến đó và biến phụ thuộc, ước tính ML cho hệ số hồi quy không tồn tại.

Allison thảo luận về nhiều giải pháp đã được đề cập bao gồm xóa các biến vấn đề, thu gọn các loại, không làm gì, tận dụng hồi quy logistic chính xác , ước lượng Bayes và ước tính khả năng tối đa bị phạt.

http://www2.sas.com/proceedings/forum2008/360-2008.pdf


3

warning

Với dữ liệu được tạo dọc theo dòng

x <- seq(-3, 3, by=0.1)
y <- x > 0
summary(glm(y ~ x, family=binomial))

Cảnh báo được thực hiện:

Warning messages:
1: glm.fit: algorithm did not converge 
2: glm.fit: fitted probabilities numerically 0 or 1 occurred 

mà rất rõ ràng phản ánh sự phụ thuộc được xây dựng trong các dữ liệu này.

Trong R, kiểm tra Wald được tìm thấy có summary.glmhoặc có waldtesttrong lmtestgói. Các thử nghiệm tỷ lệ khả năng được thực hiện với anovahoặc với lrtesttrong lmtestgói. Trong cả hai trường hợp, ma trận thông tin đều có giá trị vô hạn và không có suy luận nào khả dụng. Thay vào đó, R không tạo ra đầu ra, nhưng bạn không thể tin tưởng được. Suy luận mà R thường tạo ra trong các trường hợp này có giá trị p rất gần với một. Điều này là do sự mất độ chính xác trong OR là các bậc có độ lớn nhỏ hơn mà mất độ chính xác trong ma trận phương sai - hiệp phương sai.

Một số giải pháp được nêu ra ở đây:

Sử dụng công cụ ước tính một bước,

Có rất nhiều lý thuyết hỗ trợ cho sự thiên vị, hiệu quả và tính khái quát thấp của các công cụ ước tính một bước. Thật dễ dàng để xác định một công cụ ước tính một bước trong R và kết quả thường rất thuận lợi cho dự đoán và suy luận. Và mô hình này sẽ không bao giờ phân kỳ, bởi vì trình vòng lặp (Newton-Raphson) đơn giản là không có cơ hội để làm như vậy!

fit.1s <- glm(y ~ x, family=binomial, control=glm.control(maxit=1))
summary(fit.1s)

Cung cấp:

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept) -0.03987    0.29569  -0.135    0.893    
x            1.19604    0.16794   7.122 1.07e-12 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Vì vậy, bạn có thể thấy các dự đoán phản ánh hướng của xu hướng. Và suy luận rất có tính gợi ý về các xu hướng mà chúng tôi tin là đúng.

nhập mô tả hình ảnh ở đây

thực hiện bài kiểm tra điểm số

Các Điểm (hoặc Rao) Thống kê khác với tỷ lệ khả năng và Wald thống kê. Nó không yêu cầu đánh giá phương sai theo giả thuyết thay thế. Chúng tôi phù hợp với mô hình theo null:

mm <- model.matrix( ~ x)
fit0 <- glm(y ~ 1, family=binomial)
pred0 <- predict(fit0, type='response')
inf.null <- t(mm) %*% diag(binomial()$variance(mu=pred0)) %*% mm
sc.null <- t(mm) %*% c(y - pred0)
score.stat <- t(sc.null) %*% solve(inf.null) %*% sc.null ## compare to chisq
pchisq(score.stat, 1, lower.tail=F)

χ2

> pchisq(scstat, df=1, lower.tail=F)
             [,1]
[1,] 1.343494e-11

Trong cả hai trường hợp, bạn có suy luận về OR vô cực.

và sử dụng các ước tính trung bình không thiên vị cho khoảng tin cậy.

Bạn có thể tạo ra một tỷ lệ CI trung bình không thiên vị, 95% cho tỷ lệ chênh lệch vô hạn bằng cách sử dụng ước lượng không thiên vị trung vị. Gói epitoolstrong R có thể làm điều này. Và tôi đưa ra một ví dụ về việc triển khai công cụ ước tính này ở đây: Khoảng tin cậy cho việc lấy mẫu Bernoulli


2
Điều này thật tuyệt, nhưng tôi có một số điểm yếu, tất nhiên: (1) Thử nghiệm tỷ lệ khả năng không sử dụng ma trận thông tin; đó chỉ là bài kiểm tra Wald thực hiện, và thất bại thảm hại khi có sự phân tách. (2) Tôi hoàn toàn không quen thuộc với các công cụ ước tính một bước, nhưng ước tính độ dốc ở đây có vẻ thấp một cách vô lý. (3) Khoảng tin cậy không trung bình. Những gì bạn liên kết đến trong phần đó là khoảng tin cậy giữa p. (4) Bạn có thể đạt được khoảng tin cậy bằng cách đảo ngược các bài kiểm tra điểm số hoặc điểm số. ...
Scortchi

... (5) Bạn có thể thực hiện kiểm tra điểm trong R bằng cách đưa ra đối số test="Rao"cho anovahàm. (Chà, hai cái cuối cùng là ghi chú, không phân biệt.)
Scortchi

@scortchi tốt để biết anova có bài kiểm tra điểm mặc định! Có lẽ một thực hiện bằng tay là hữu ích. Các TCTD không trung bình không thiên vị, nhưng các TCTD cho công cụ ước lượng không thiên vị trung vị cung cấp suy luận nhất quán cho các tham số biên. Mid p là một công cụ ước tính. P có thể được chuyển đổi thành tỷ lệ cược b / c, nó là bất biến đối với các biến đổi một-một. Là thử nghiệm LR phù hợp cho các tham số biên?
AdamO

Chỉ giả thuyết khống không được chứa các tham số tại một ranh giới cho định lý của Wilks để áp dụng, mặc dù các bài kiểm tra điểm & LR là gần đúng trong các mẫu hữu hạn.
Scortchi

2

Hãy cẩn thận với thông điệp cảnh báo này từ R. Hãy xem bài đăng trên blog này của Andrew Gelman, và bạn sẽ thấy rằng nó không phải luôn luôn là một vấn đề của sự tách biệt hoàn hảo, nhưng đôi khi là một lỗi với glm. Có vẻ như nếu các giá trị bắt đầu quá xa so với ước tính khả năng tối đa, nó sẽ nổ tung. Vì vậy, hãy kiểm tra trước với phần mềm khác, như Stata.

Nếu bạn thực sự có vấn đề này, bạn có thể thử sử dụng mô hình Bayes, với các linh mục thông tin.

Nhưng trong thực tế, tôi chỉ loại bỏ các yếu tố dự đoán gây ra rắc rối, vì tôi không biết cách chọn thông tin trước. Nhưng tôi đoán có một bài viết của Gelman về việc sử dụng thông tin trước khi bạn gặp vấn đề tách biệt hoàn hảo này. Tra Google đi. Có lẽ bạn nên thử.


8
Vấn đề với việc loại bỏ các yếu tố dự đoán là bạn đang loại bỏ yếu tố dự đoán giải thích rõ nhất về phản ứng, đó thường là điều bạn hướng tới! Tôi sẽ lập luận rằng điều này chỉ có ý nghĩa nếu bạn quá phù hợp với mô hình của mình, ví dụ bằng cách điều chỉnh quá nhiều tương tác phức tạp.
Simon Byrne

4
Không phải là một lỗi, nhưng một vấn đề với các ước tính ban đầu quá xa so với MLE, điều này sẽ không phát sinh nếu bạn không cố gắng tự chọn chúng.
Scortchi

Tôi hiểu điều này, nhưng tôi nghĩ rằng đây là một lỗi trong thuật toán.
Manoel Galdino

5
Chà, tôi không muốn ngụy biện về định nghĩa của 'lỗi'. Nhưng hành vi không phải là không thể hiểu được hoặc không thể hòa trộn trong cơ sở R - bạn không cần phải "kiểm tra với phần mềm khác". Nếu bạn muốn tự động xử lý nhiều vấn đề không hội tụ, glm2gói sẽ thực hiện kiểm tra xem khả năng thực sự tăng ở mỗi bước ghi điểm hay không, giảm một nửa kích thước bước nếu không.
Scortchi

3
Có (trên CRAN) gói R safeBinaryRegression được thiết kế để chẩn đoán và khắc phục các sự cố như vậy, sử dụng các phương pháp tối ưu hóa để xác định xem có sự phân tách hoặc tách rời. Thử nó!
kjetil b halvorsen

2

Tôi không chắc chắn rằng tôi đồng ý với các tuyên bố trong câu hỏi của bạn.

Tôi nghĩ rằng thông điệp cảnh báo có nghĩa là, đối với một số mức X được quan sát trong dữ liệu của bạn, xác suất được trang bị là 0 hoặc 1. Nói cách khác, ở độ phân giải, nó hiển thị là 0 hoặc 1.

Bạn có thể chạy predict(yourmodel,yourdata,type='response')và bạn sẽ tìm thấy 0 hoặc / và 1 ở đó như xác suất dự đoán.

Kết quả là, tôi nghĩ chỉ cần sử dụng kết quả là ổn.


-1

Tôi hiểu đây là một bài viết cũ, tuy nhiên tôi vẫn sẽ tiếp tục trả lời bài này vì tôi đã vật lộn nhiều ngày với nó và nó có thể giúp đỡ người khác.

Sự tách biệt hoàn toàn xảy ra khi các biến được chọn của bạn phù hợp với mô hình có thể phân biệt rất chính xác giữa 0 và 1 hoặc có và không. Toàn bộ cách tiếp cận khoa học dữ liệu của chúng tôi dựa trên ước tính xác suất nhưng thất bại trong trường hợp này.

Các bước chỉnh lưu: -

  1. Sử dụng bayesglm () thay vì glm (), trong trường hợp phương sai giữa các biến là thấp

  2. Đôi khi, sử dụng (maxit = Điên một số giá trị số)) cùng với bayesglm () có thể giúp

3. Kiểm tra thứ ba và quan trọng nhất cho các biến được chọn của bạn để phù hợp với mô hình, phải có một biến mà đa cộng tuyến với biến Y (outout) là rất cao, loại bỏ biến đó khỏi mô hình của bạn.

Như trong trường hợp của tôi, tôi đã có một dữ liệu về viễn thông để dự đoán dữ liệu xác thực. Tôi đã có một biến trong dữ liệu đào tạo của mình có thể phân biệt rất rõ giữa có và không. Sau khi thả nó, tôi có thể có được mô hình chính xác. Hơn nữa bạn có thể sử dụng từng bước (phù hợp) để làm cho mô hình của bạn chính xác hơn.


2
Tôi không thấy rằng câu trả lời này thêm nhiều vào cuộc thảo luận. Cách tiếp cận Bayes được đề cập kỹ lưỡng trong các câu trả lời trước đó, việc loại bỏ các yếu tố dự đoán "có vấn đề" cũng đã được đề cập (và không khuyến khích). Lựa chọn biến theo từng bước hiếm khi là một ý tưởng tuyệt vời theo như tôi biết.
einar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.