Làm thế nào tôi nên tiếp cận vấn đề dự đoán nhị phân này?


9

Tôi đã có một bộ dữ liệu với định dạng sau.

Dự báo ung thư không ung thư

Có một kết quả nhị phân ung thư / không có ung thư. Mỗi bác sĩ trong bộ dữ liệu đã nhìn thấy mọi bệnh nhân và đưa ra phán quyết độc lập về việc bệnh nhân có bị ung thư hay không. Sau đó, các bác sĩ đưa ra mức độ tin cậy trong số 5 rằng chẩn đoán của họ là chính xác và mức độ tin cậy được hiển thị trong ngoặc đơn.

Tôi đã thử nhiều cách khác nhau để có được dự báo tốt từ bộ dữ liệu này.

Nó hoạt động khá tốt đối với tôi chỉ là trung bình trên các bác sĩ, bỏ qua mức độ tự tin của họ. Trong bảng trên đây sẽ đưa ra các chẩn đoán chính xác cho Bệnh nhân 1 và Bệnh nhân 2, mặc dù có thể nói không chính xác rằng Bệnh nhân 3 bị ung thư, bởi vì đa số các bác sĩ cho rằng Bệnh nhân 3 bị ung thư.

Tôi cũng đã thử một phương pháp trong đó chúng tôi lấy mẫu ngẫu nhiên hai bác sĩ và nếu họ không đồng ý với nhau thì phiếu quyết định sẽ được chọn để bác sĩ tự tin hơn. Phương pháp đó kinh tế ở chỗ chúng tôi không cần tham khảo ý kiến ​​của nhiều bác sĩ, nhưng nó cũng làm tăng tỷ lệ lỗi khá nhiều.

Tôi đã thử một phương pháp liên quan trong đó chúng tôi chọn ngẫu nhiên hai bác sĩ và nếu họ không đồng ý với nhau, chúng tôi sẽ chọn ngẫu nhiên hai người nữa. Nếu một chẩn đoán đi trước ít nhất hai 'phiếu' thì chúng tôi sẽ giải quyết mọi việc có lợi cho chẩn đoán đó. Nếu không, chúng tôi tiếp tục lấy mẫu nhiều bác sĩ. Phương pháp này khá kinh tế và không mắc quá nhiều sai lầm.

Tôi không thể cảm thấy rằng tôi đang thiếu một số cách làm tinh vi hơn. Ví dụ, tôi tự hỏi liệu có cách nào để tôi có thể chia tập dữ liệu thành tập huấn luyện và kiểm tra hay không, và tìm ra cách tối ưu để kết hợp các chẩn đoán, và sau đó xem các trọng số đó thực hiện như thế nào trên tập kiểm tra. Một khả năng là một phương pháp nào đó cho phép tôi làm các bác sĩ thiếu cân, những người tiếp tục mắc lỗi trong tập thử nghiệm, và có lẽ các chẩn đoán tăng cân được thực hiện với độ tin cậy cao (độ tin cậy tương quan với độ chính xác trong bộ dữ liệu này).

Tôi đã có nhiều bộ dữ liệu phù hợp với mô tả chung này, vì vậy kích thước mẫu khác nhau và không phải tất cả các bộ dữ liệu liên quan đến bác sĩ / bệnh nhân. Tuy nhiên, trong bộ dữ liệu cụ thể này có 40 bác sĩ, mỗi người nhìn thấy 108 bệnh nhân.

EDIT: Đây là một liên kết đến một số các trọng số là kết quả của việc đọc của tôi @ trả lời jeremy dặm của.

  1. Kết quả không trọng số là trong cột đầu tiên. Trên thực tế trong tập dữ liệu này, giá trị độ tin cậy tối đa là 4, không phải 5 như tôi đã nói nhầm trước đó. Do đó sau @ phương pháp jeremy dặm của số điểm không trọng số cao nhất bất kỳ bệnh nhân có thể nhận được sẽ là 7. Điều đó sẽ mang ý nghĩa rằng mỗi bác sĩ khẳng định với một mức độ tin cậy của 4 rằng bệnh nhân đó bị ung thư. Điểm không trọng số thấp nhất mà bất kỳ bệnh nhân nào có thể nhận được là 0, điều đó có nghĩa là mọi bác sĩ đều khẳng định với mức độ tin cậy là 4 mà bệnh nhân đó không bị ung thư.

  2. Trọng số của Cronbach's Alpha. Tôi đã tìm thấy trong SPSS rằng có tổng Cronbach's Alpha là 0,9807. Tôi đã cố gắng xác minh rằng giá trị này là chính xác bằng cách tính toán Cronbach's Alpha theo cách thủ công hơn. Tôi đã tạo ra một ma trận hiệp phương sai của tất cả 40 bác sĩ, mà tôi dán ở đây . Sau đó, dựa trên sự hiểu biết của tôi về công thức Alpha của Cronbach Trong đó là số lượng vật phẩm (ở đây các bác sĩ là 'vật phẩm') tôi đã tính toán bằng cách tổng hợp tất cả các yếu tố đường chéo trong ma trận hiệp phương sai và bằng cách tổng hợp tất cả các yếu tố trong ma trận hiệp phương sai. Sau đó tôi đã nhậnα=KK1(1σxi2σT2)Kσxi2σT2α=40401(18.7915200.7112)=0.9807 Sau đó tôi đã tính 40 kết quả Cronbach Alpha khác nhau sẽ xảy ra khi mỗi bác sĩ bị xóa khỏi tập dữ liệu. Tôi đã cân nhắc bất kỳ bác sĩ nào đóng góp tiêu cực cho Cronbach's Alpha ở mức 0. Tôi đã đưa ra trọng số cho các bác sĩ còn lại tỷ lệ thuận với đóng góp tích cực của họ cho Cronbach 'Alpha.

  3. Trọng số theo tương quan tổng số mục. Tôi tính toán tất cả các Tương quan Tổng số Mục, và sau đó cân mỗi bác sĩ tỷ lệ thuận với kích thước tương quan của chúng.

  4. Trọng số theo hệ số hồi quy.

Một điều tôi vẫn không chắc chắn là làm thế nào để nói phương pháp nào hoạt động "tốt hơn" so với phương pháp khác. Trước đây tôi đã tính toán những thứ như Điểm kỹ năng Peirce, phù hợp với các trường hợp có dự đoán nhị phân và kết quả nhị phân. Tuy nhiên, bây giờ tôi có các dự báo từ 0 đến 7 thay vì 0 đến 1. Tôi có nên chuyển đổi tất cả các điểm có trọng số> 3.50 thành 1 và tất cả các điểm có trọng số <3.50 thành 0 không?


Chúng ta có thể nói đó No Cancer (3)Cancer (2)? Điều đó sẽ đơn giản hóa vấn đề của bạn một chút.
Wayne

1
Re: cấu trúc dữ liệu của bạn, hầu như luôn luôn tốt hơn khi có các biến khác nhau (cho dù bệnh nhân bị ung thư; đánh giá mức độ tin cậy như thế nào) trong các cột khác nhau. Kết hợp chúng như trong "không ung thư (3)" sẽ hạn chế nghiêm trọng các lựa chọn của bạn.
rolando2

@Wayne Các dữ liệu nằm trong phạm vi dự đoán ung thư với độ tin cậy tối đa Cancer (4)đến dự đoán không có ung thư với độ tin cậy tối đa No Cancer (4). Chúng ta không thể nói điều đó No Cancer (3)Cancer (2)giống nhau, nhưng chúng ta có thể nói có một sự liên tục, và điểm giữa trong sự liên tục này là Cancer (1)No Cancer (1).
user1205901 - Phục hồi Monica

@ rolando2 Cảm ơn lời khuyên. Tôi đã sắp xếp lại mọi thứ trong tệp dữ liệu của riêng mình để bây giờ chúng được tách ra.
user1205901 - Phục hồi Monica

1
Lưu ý rằng ngưỡng của bạn là một tham số có thể điều chỉnh , do đó mức cắt phù hợp sẽ phụ thuộc vào tiêu chí đánh giá của bạn. Vì tôi không quen thuộc với số liệu của bạn, tôi đã đánh lừa nó và thực sự cú đánh đầu tiên có thể phù hợp với bạn: Một lưu ý về điểm kỹ năng Peirce tối đa (2007) .
GeoMatt22

Câu trả lời:


7

Đầu tiên, tôi sẽ xem các bác sĩ có đồng ý với nhau không. Bạn không thể phân tích riêng 50 bác sĩ, bởi vì bạn sẽ phù hợp với mô hình - một bác sĩ sẽ trông rất tuyệt.

Bạn có thể thử kết hợp sự tự tin và chẩn đoán thành thang điểm 10. Nếu một bác sĩ nói rằng bệnh nhân không bị ung thư và họ rất tự tin, thì đó là 0. Nếu tài liệu nói rằng họ bị ung thư và họ rất tự tin, đó là 9. Nếu họ nói rằng họ không, và không tự tin, đó là 5, v.v.

Khi bạn đang cố gắng dự đoán, bạn thực hiện một số phân tích hồi quy, nhưng suy nghĩ về thứ tự nguyên nhân của các biến này, đó là cách khác. Cho dù bệnh nhân bị ung thư là nguyên nhân của chẩn đoán, kết quả là chẩn đoán.

Hàng của bạn phải là bệnh nhân và cột của bạn phải là bác sĩ. Bây giờ bạn có một tình huống phổ biến trong tâm lý học (đó là lý do tại sao tôi đã thêm thẻ).

Sau đó nhìn vào các mối quan hệ giữa các điểm. Mỗi bệnh nhân có một điểm trung bình và một điểm từ mỗi bác sĩ. Điểm số trung bình có tương quan tích cực với điểm số của mỗi bác sĩ không? Nếu không, bác sĩ đó có lẽ không đáng tin cậy (điều này được gọi là tương quan tổng số mục). Đôi khi bạn loại bỏ một bác sĩ khỏi tổng số điểm (hoặc điểm trung bình) và xem liệu bác sĩ đó có tương quan với giá trị trung bình của tất cả các bác sĩ khác hay không - đây là tương quan tổng số mục đã sửa.

Bạn có thể tính toán alpha của Cronbach (là một dạng tương quan giữa lớp) và alpha mà không cần mỗi bác sĩ. Alpha phải luôn tăng khi bạn thêm bác sĩ, vì vậy nếu nó tăng khi bạn loại bỏ bác sĩ, đánh giá của bác sĩ đó là đáng ngờ (điều này thường không cho bạn biết bất cứ điều gì khác với tương quan tổng số mục đã sửa).

Nếu bạn sử dụng R, loại điều này có sẵn trong gói psych, sử dụng hàm alpha. Nếu bạn sử dụng Stata, lệnh là alpha, trong SAS, nó sẽ được sửa và trong SPSS, nó có độ tin cậy.

Sau đó, bạn có thể tính điểm, như điểm trung bình của mỗi bác sĩ, hoặc trung bình có trọng số (có trọng số theo tương quan) và xem điểm số đó có phải là dự đoán của chẩn đoán thực sự hay không.

Hoặc bạn có thể bỏ qua giai đoạn đó và hồi quy riêng từng điểm của bác sĩ về chẩn đoán và coi các tham số hồi quy là trọng số.

Vui lòng yêu cầu làm rõ, và nếu bạn muốn có một cuốn sách, tôi thích "Cân đo sức khỏe" của Streiner và Norman.

-Chỉnh sửa: dựa trên thông tin bổ sung của OP.

Wow, đó là một quái vật của Cronbach's alpha. Lần duy nhất tôi thấy nó cao như vậy là khi một lỗi được thực hiện.

Bây giờ tôi sẽ thực hiện hồi quy logistic và xem xét các đường cong ROC.

Sự khác biệt giữa trọng số theo hồi quy và tương quan phụ thuộc vào cách bạn tin rằng các bác sĩ đang phản ứng. Một số tài liệu nói chung có thể tự tin hơn (mà không khéo léo hơn) và do đó họ có thể sử dụng phạm vi cực đoan nhiều hơn. Nếu bạn muốn sửa cho điều đó, sử dụng tương quan, thay vì hồi quy, thực hiện điều đó. Tôi có thể sẽ cân nhắc bằng hồi quy, vì điều này sẽ giữ dữ liệu gốc (và không loại bỏ bất kỳ thông tin nào).

Chỉnh sửa (2): Tôi đã chạy các mô hình hồi quy logistic trong R để xem mỗi dự đoán đầu ra tốt như thế nào. tl / dr: không có gì giữa chúng.

Đây là mã của tôi:

d <- read.csv("Copy of Cancer data - Weightings.csv")

mrc <- glm(cancer ~ weightrc, data = d, family = "binomial")
mun <- glm(cancer ~ unweight, data = d, family = "binomial")
mca <- glm(cancer ~ weightca, data = d, family = "binomial")
mic <- glm(cancer ~ weightic, data = d, family = "binomial")

d$prc <- predict(mrc, type = "response")
d$pun <- predict(mun, type = "response")
d$pca <- predict(mca, type = "response")
d$pic <- predict(mic, type = "response")

par(mfrow = c(2, 2))
roc(d$cancer, d$prc, ci = TRUE, plot = TRUE)
roc(d$cancer, d$pun, ci = TRUE, plot = TRUE)
roc(d$cancer, d$pca, ci = TRUE, plot = TRUE)
roc(d$cancer, d$pic, ci = TRUE, plot = TRUE)

4 đường cong ROC

Và đầu ra:

> par(mfrow = c(2, 2))
> roc(d$cancer, d$prc, ci = TRUE, plot = TRUE)

Call:
roc.default(response = d$cancer, predictor = d$prc, ci = TRUE,     plot = TRUE)

Data: d$prc in 81 controls (d$cancer 0) < 27 cases (d$cancer 1).
Area under the curve: 0.9831
95% CI: 0.9637-1 (DeLong)
> roc(d$cancer, d$pun, ci = TRUE, plot = TRUE)

Call:
roc.default(response = d$cancer, predictor = d$pun, ci = TRUE,     plot = TRUE)

Data: d$pun in 81 controls (d$cancer 0) < 27 cases (d$cancer 1).
Area under the curve: 0.9808
95% CI: 0.9602-1 (DeLong)
> roc(d$cancer, d$pca, ci = TRUE, plot = TRUE)

Call:
roc.default(response = d$cancer, predictor = d$pca, ci = TRUE,     plot = TRUE)

Data: d$pca in 81 controls (d$cancer 0) < 27 cases (d$cancer 1).
Area under the curve: 0.9854
95% CI: 0.9688-1 (DeLong)
> roc(d$cancer, d$pic, ci = TRUE, plot = TRUE)

Call:
roc.default(response = d$cancer, predictor = d$pic, ci = TRUE,     plot = TRUE)

Data: d$pic in 81 controls (d$cancer 0) < 27 cases (d$cancer 1).
Area under the curve: 0.9822
95% CI: 0.9623-1 (DeLong)

1
Rất tốt. Và, như lý luận của bạn cho phép, có thể một số bác sĩ sẽ làm cho alpha tồi tệ hơn bằng cách đóng góp cái nhìn sâu sắc độc đáo trong khi nắm bắt xu hướng.
rolando2

@ jeremy dặm Cám ơn câu trả lời này, và đề nghị tử tế với câu hỏi lĩnh vực về nó. Tôi đã cố gắng thực hiện những gì bạn đề xuất và chỉnh sửa OP để đăng một số kết quả. Điều chính tôi băn khoăn là liệu tôi có giải thích chính xác bài đăng của bạn hay không và cũng cần phải chứng minh rằng các phương pháp tổng hợp nhất định đang hoạt động tốt hơn các phương pháp khác trong việc dự đoán kết quả.
user1205901 - Phục hồi Monica

Cảm ơn đã đăng dữ liệu. Tôi sẽ xem xét nó sau. (Bạn đang sử dụng phần mềm nào?)
Jeremy Miles

@JeremyMiles Cảm ơn bạn đã đăng bài chỉnh sửa này! Tôi đang sử dụng MATLAB, nhưng tôi biết đủ về R để thay đổi và sử dụng thay thế, vì bạn đã đăng mã R. Tôi đã tính toán rằng Cronbach's Alpha trong SPSS - bạn có nhận được giá trị khác với R không?
user1205901 - Phục hồi Monica

1
Vâng, đó là những gì tôi đã nghĩ. Vì vậy, mỗi bác sĩ có một trọng lượng khác nhau.
Jeremy Miles

2

Hai gợi ý vượt trội:

  1. Bạn có thể sử dụng trọng số cho chức năng mất của hồi quy logistic, để bác sĩ rất chắc chắn rằng bệnh nhân bị ung thư với P = 1 bị ảnh hưởng gấp đôi, một người khác nói rằng anh ta bị ung thư với P = 0,75. Đừng quên chuyển đổi xác suất của bạn thành trọng lượng.
  2. Một gia đình của các mô hình thường bị bỏ quên là mô hình xếp hạng. Trong các xếp hạng có ba nhóm lớn: xếp hạng theo chiều dọc, theo chiều dọc và theo cặp, tùy thuộc vào đầu vào của bạn là gì. Có vẻ như bạn có thể sử dụng xếp hạng theo chiều trong trường hợp của bạn.

Bạn có thể đề xuất một cách để chuyển đổi xác suất thành trọng số? Tôi đã cố gắng googling khái niệm này nhưng không thể tìm thấy bất kỳ lời khuyên rõ ràng về cách làm điều này.
user1205901 - Phục hồi Monica

@ user1205901, tôi đã nghĩ đến một thứ rất đơn giản như: Let P= xác suất bị ung thư do bác sĩ đưa ra, sau đó (theo ký hiệu trăn): y=[1 if p >= 0.5 else 0 for p in P]w=[abs(p-0.5)*2 for p in P]. Sau đó đào tạo mô hình:LogisticRegression().fit(X,y,w)
Ricardo Cruz

Trong chức năng mất, điều này sẽ cho, ví dụ, tăng gấp đôi trọng lượng lên 0,1 so với 0,2 để không bị ung thư (0,1 -> 0,8 và 0,2 -> 0,6). Nếu bác sĩ không chắc chắn (P ~ 0,5) thì việc quan sát đóng góp gần như không có gì cho sự mất mát. Bất cứ mô hình nào anh ta sử dụng đều cần hỗ trợ thêm một vectơ chi phí vào hàm mất, mà hầu hết các mô hình đều hỗ trợ. Tôi không biết điều này có tốt không, nhưng có vẻ không đáng để thử. Anh ta cần xác định một số liệu đầu tiên. Hàm mất có thể được điều chỉnh phù hợp hơn với bất kỳ số liệu nào anh ta muốn tối đa hóa.
Ricardo Cruz

2

(Điều này nằm ngoài lĩnh vực chuyên môn của tôi, vì vậy câu trả lời của Jeremy Miles có thể đáng tin cậy hơn.)

Đây là một ý tưởng.

Đầu tiên, hãy tưởng tượng không có mức độ tự tin. Sau đó, với mỗi bệnh nhân , họ có bị ung thư hay không và mỗi bác sĩ đều chẩn đoán họ có bị ung thư hay không, .i=1Nci{0,1}j=1mdij{0,1}

Một cách tiếp cận đơn giản là giả định rằng, trong khi các bác sĩ có thể đồng ý hoặc không đồng ý với chẩn đoán của một bệnh nhân nhất định, nếu chúng tôi biết tình trạng thực sự của bệnh nhân, thì mỗi chẩn đoán của bác sĩ có thể được coi là độc lập. Đó là, là có điều kiện độc lập GIVEN . Điều này dẫn đến một trình phân loại được xác định rõ là Naive Bayes , với các tham số dễ ước tính.dijci

Cụ thể, các tham số chính là tốc độ cơ bản, và khả năng chẩn đoán có điều kiện Lưu ý rằng tham số sau này là trung bình trọng số của các chẩn đoán cho bác sĩ , trong đó các trọng số là điều kiện bệnh nhân thực sự .p[c]1Nici

p[dj|c]idijciici
jci

Bây giờ nếu mô hình này là hợp lý, thì một cách để kết hợp các mức độ tin cậy là điều chỉnh các trọng số. Sau đó, các khả năng có điều kiện sẽ trở thành Tại đây là trọng số chiếm mức độ tin cậy của .

p[dj|c,wj]idijwijciiwijci
wij0dij

Lưu ý rằng nếu trọng số của bạn được xác định là xác suất , thì bạn có thể sử dụng công thức "Phím tắt Bernoulli " để giải thích cho trường hợp một cách thích hợp.w[0,1]

p[dw]=dw(1d)1w
d=0

Lưu ý: Điều này đòi hỏi phần mềm của bạn cung cấp 0^0=1thay vì 0^0=NaN, điều này là phổ biến nhưng đáng để kiểm tra! Ngoài ra, bạn có thể đảm bảo , ví dụ: nếu độ tin cậy là thì sẽ hoạt động.w(0,1)k{1K}w=k/(K+1)


Trong ngữ cảnh nhận xét của @Wayne: Nếu bạn nói No Cancer (3) = Cancer (2), điều này phù hợp với mô hình trọng số của tôi bằng cách sử dụng , vì . Ngoài ra, nếu bạn nói , điều này phù hợp với , vì . w[k]=kK25=135No Cancer (3) = Cancer (3)w[k]=kK+136=136
GeoMatt22

Tôi có thể kiểm tra xem tôi hiểu không? Nếu kết quả là [1,0,1] và dự đoán của bác sĩ [0,1,1] và trọng lượng của bác sĩ là [0,2,0,4,0,8], thì khả năng chẩn đoán có điều kiện có trọng số có thể là 0,5 không?
p[dj|c,wj]idijwijciiwijci
user1205901 - Phục hồi Monica

Xin lỗi, tôi nhận ra rằng tôi đã dự định rằng trọng số của , nghĩa là , thay vì chỉ số . Vì vậy, đối với trường hợp của bạn . Sau đó , trong khi và . Vậy và . dδ[0,1]d{0,1}δi=wi(di=1)+(1wi)(di=0)δ=[0.8,0.4,0.8]p[c,δ]=cδ¯=0.8+0+0.83=230.8p[2]=c¯=23p[c| δ]=p[c,δ]/p[δ]=0,8p[δ| c]=p[c,δ]/p[c]=0,8p[δ]=δ¯=560.8p[c|δ]=p[c,δ]/p[δ]=0.8p[δ|c]=p[c,δ]/p[c]=0.8
GeoMatt22

0

Từ câu hỏi của bạn, có vẻ như những gì bạn muốn kiểm tra là hệ thống đo lường của bạn. Trong lĩnh vực kỹ thuật quá trình, đây sẽ là một phân tích hệ thống đo lường thuộc tính hoặc MSA.

Liên kết này cung cấp một số thông tin hữu ích về kích thước mẫu cần thiết và các tính toán chạy để tiến hành nghiên cứu loại này. https://www.isixsigma.com/tools-temsheet/measousing-systems-analysis-msa-thing-rr/making-sense-attribution-thing-rr-calculations/

Với nghiên cứu này, bạn cũng sẽ cần bác sĩ chẩn đoán cùng một bệnh nhân có cùng thông tin ít nhất hai lần.

Bạn có thể tiến hành nghiên cứu này theo một trong hai cách. Bạn có thể sử dụng xếp hạng ung thư đơn giản / không có ung thư để xác định thỏa thuận giữa bác sĩ và từng bác sĩ. Lý tưởng nhất là họ cũng có thể chẩn đoán với mức độ tự tin tương tự. Sau đó, bạn có thể sử dụng thang điểm 10 đầy đủ để kiểm tra thỏa thuận giữa và của từng bác sĩ. (Mọi người nên đồng ý rằng ung thư (5) là cùng một đánh giá, rằng không có ung thư (1) là cùng một đánh giá, & c.)

Các tính toán trong trang web được liên kết rất đơn giản để thực hiện trong bất kỳ nền tảng nào bạn có thể đang sử dụng cho các thử nghiệm của mình.

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.