Làm thế nào để hình dung tỷ lệ phần trăm so với số lượng mục.


10

Tôi đang cố gắng tìm ra cách tốt nhất để hình dung biểu đồ dưới đây và nhấn mạnh hiệu quả điều trị khi áp dụng cho số bệnh nhân đã thử điều trị. Đây là liên kết đến trang thực tế: http://curetogether.com/cluster-headaches/treatments/

Điều trị đau đầu cụm Điều trị đau đầu chùm

Cách tốt nhất để nhấn mạnh hiệu quả trong khi vẫn giúp dễ dàng so sánh các phương pháp điều trị và xem có bao nhiêu bệnh nhân đánh giá mỗi phương pháp? Suy nghĩ của tôi là cho thấy hiệu quả theo tỷ lệ phần trăm, nhưng tôi không chắc làm thế nào để làm cho chúng dễ dàng so sánh và hiển thị số lượng bệnh nhân đã thử từng loại.

Cảm ơn!


(Vui lòng không dùng biểu đồ pie.) Bằng cách "nhấn mạnh tính hiệu quả trong khi vẫn làm cho nó dễ dàng để so sánh phương pháp điều trị", bạn đang đề cập đến một thực tế rằng, ví dụ như, thật khó để xem liệu caffeinehoặc ibuprofendẫn đến một xác suất cao hơn moderate improvementvì các đường cơ sở khác nhau? Hay cái gì khác?
gung - Phục hồi Monica

Câu trả lời:


12

Bạn muốn so sánh "hiệu quả" và đánh giá số lượng bệnh nhân báo cáo mỗi lần điều trị. Hiệu quả được ghi nhận trong năm loại riêng biệt, có thứ tự, nhưng (bằng cách nào đó) cũng được tóm tắt thành "Trung bình". (trung bình) giá trị, cho thấy nó được coi là một biến định lượng.

Theo đó, chúng ta nên chọn một đồ họa có các yếu tố thích nghi tốt để truyền tải loại thông tin này. Trong số nhiều giải pháp xuất sắc tự đề xuất, một người sử dụng lược đồ này:

  • Thể hiện tổng hiệu quả hoặc trung bình như một vị trí dọc theo thang đo tuyến tính. Các vị trí như vậy dễ dàng nắm bắt nhất bằng mắt và đọc chính xác định lượng. Làm cho quy mô phổ biến cho tất cả 34 phương pháp điều trị.

  • Đại diện cho số bệnh nhân bằng một số biểu tượng đồ họa có thể dễ dàng nhìn thấy tỷ lệ thuận với các số đó. Hình chữ nhật rất phù hợp: chúng có thể được định vị để đáp ứng yêu cầu trước đó và có kích thước theo hướng trực giao để cả chiều cao và diện tích của chúng truyền tải thông tin số bệnh nhân.

  • Phân biệt năm loại hiệu quả theo giá trị màu và / hoặc màu. Duy trì thứ tự của các loại này.

Một lỗi rất lớn của đồ họa trong câu hỏi là các giá trị hình ảnh nổi bật nhất - độ dài của các thanh - mô tả thông tin số bệnh nhân thay vì tổng thông tin hiệu quả. Chúng ta có thể khắc phục điều đó một cách dễ dàng bởi recentering mỗi thanh về một giá trị giữa thiên nhiên.

Không thực hiện bất kỳ thay đổi nào khác (chẳng hạn như cải thiện bảng màu, đặc biệt kém đối với bất kỳ người mù màu nào), đây là thiết kế lại.

Nhân vật

Tôi đã thêm các đường chấm chấm ngang để giúp mắt kết nối các nhãn với các ô và xóa một đường thẳng đứng mỏng để hiển thị vị trí trung tâm chung.

Các mô hình và số lượng câu trả lời rõ ràng hơn nhiều. Cụ thể, về cơ bản, chúng tôi có hai đồ họa với giá là một: ở phía bên trái, chúng tôi có thể đọc được một thước đo tác động bất lợi trong khi ở phía bên phải chúng tôi có thể thấy các hiệu ứng tích cực mạnh như thế nào . Có thể cân bằng rủi ro, một mặt, chống lại lợi ích, mặt khác, rất quan trọng trong ứng dụng này.

Một tác dụng ngẫu nhiên của thiết kế lại này là tên của các phương pháp điều trị có nhiều phản ứng được tách biệt theo chiều dọc với các phương pháp khác, giúp dễ dàng quét xuống và xem phương pháp điều trị nào phổ biến nhất.

Một khía cạnh thú vị khác là đồ họa này đặt câu hỏi về thuật toán được sử dụng để đặt hàng các phương pháp điều trị theo "Hiệu quả trung bình": ví dụ, tại sao "Theo dõi đau đầu" lại được đặt quá thấp khi trong số tất cả các phương pháp điều trị phổ biến nhất, đó là cách duy nhất để không có tác dụng phụ?

Mã nhanh và bẩn Rđã tạo ra âm mưu này được nối thêm.

x <- c(0,0,3,5,5,
       0,0,0,0,2,
       0,0,3,2,4,
       0,1,7,9,7,
       0,0,3,2,3,
       0,0,0,0,1,
       0,1,1,1,2,
       0,0,2,2,1,
       0,0,1,0,1,
       0,0,3,2,1,
       0,0,2,0,1,
       1,0,5,5,2,
       1,3,15,15,4,
       1,2,5,7,3,
       0,0,4,4,0,
       0,0,2,2,0,
       0,0,3,0,1,
       0,0,2,2,0,
       0,4,18,19,2,
       0,0,2,1,0,
       3,1,27,25,3,
       1,0,2,2,1,
       0,0,4,2,0,
       0,1,6,5,0,
       0,0,3,1,0,
       3,0,3,7,2,
       0,1,0,1,0,
       0,0,21,4,2,
       0,0,6,1,0,
       1,0,2,0,1,
       2,4,15,8,1,
       1,1,3,1,0,
       0,0,1,0,0,
       0,0,1,0,0)
levels <- c("Made it much worse", "Made it slightly worse", "No effect or uncertain",
            "Moderate improvement", "Major improvement")
treatments <-  c("Oxygen", "Gluten-free diet", "Zomig", "Sumatriptan", "Rizatriptan (Maxalt)",
                 "Dilaudid suppository", "Dilaudid-Morphine", "Verapamil",
                 "Magic mushrooms", "Magnesium", "Psilocybine", "Excedrin Migraine",
                 "Ice packs on neck and head", "Passage of time", "Red Bull", "Lidocaine",
                 "Vitamin B-2 (Roboflavin)", "Caffergot", "Caffeine", "Tobasco in nose / on tongue")
treatments <- c(treatments, 
                 "Ibuprofen", "Topamax", "Excedrin Tension Headache", "Acetaminophen (Tylenol)",
                 "Extra Strength Excedrin", "Hot water bottle", "Eletriptan", 
                 "Headache tracking", "Women to Women vitamins", "Effexor", "Aspirin",
                 "Propanolol", "L-Arginine", "Fioricet")
x <- t(matrix(x, 5, dimnames=list(levels, treatments)))
#
# Precomputation for plotting.
#
n <- dim(x)[1]
m <- dim(x)[2]
d <- as.data.frame(x)
d$Total <- rowSums(d)
d$Effectiveness <- (x %*% c(-2,-1,0,1,2)) / d$Total
d$Root <- (d$Total)
#
# Set up the plot area.
#
colors <- c("#704030", "#d07030", "#d0d0d0", "#60c060", "#387038")
x.left <- 0; x.right <- 6; dx <- x.right - x.left; x.0 <- x.left-4
y.bottom <- 0; y.top <- 10; dy <- y.top - y.bottom
gap <- 0.4
par(mfrow=c(1,1))
plot(c(x.left-1, x.right), c(y.bottom, y.top), type="n", 
     bty="n", xaxt="n", yaxt="n", xlab="", ylab="", asp=(y.top-y.bottom)/(dx+1))
#
# Make the plots.
#
u <- t(apply(x, 1, function(z) c(0, cumsum(z)) / sum(z)))
y <- y.top - dy * c(0, cumsum(d$Root/sum(d$Root) + gap/n)) / (1+gap)

invisible(sapply(1:n, function(i) {
  lines(x=c(x.0+1/4, x.right), y=rep(dy*gap/(2*n)+(y[i]+y[i+1])/2, 2),
        lty=3, col="#e0e0e0")
  sapply(1:m, function(j) {
  mid <- (x.left - (u[i,3] + u[i,4])/2)*dx
  rect(mid + u[i,j]*dx, y[i+1] + (gap/n)*(y.top-y.bottom), 
       mid + u[i,j+1]*dx, y[i], 
       col=colors[j], border=NA)
})}))
abline(v = x.left, col="White")
labels <- mapply(function(s,n) paste0(s, " (", n, ")"), rownames(x), d$Total)
text(x.0, (y[-(n+1)]+y[-1])/2, labels=labels, adj=c(1, 0), cex=0.8,
     col="#505050")

Wow, cảm ơn bạn đã trả lời cực kỳ rõ ràng và kỹ lưỡng. Đó là một giải pháp tuyệt vời để hình dung tất cả các thông tin. Biểu đồ ví dụ bạn tạo ra thực sự giúp nắm bắt câu trả lời trong nháy mắt cũng hữu ích. Cảm ơn!
David Hobs

2
(+1) Hình dung đẹp. Đáng chú ý, các gói likeertHH R có chức năng cho các biểu đồ thanh xếp chồng nhắm vào các thang đo Likert, cụ thể. Trong gói thứ hai, thậm chí có khả năng để cho chiều cao của mỗi thanh thay đổi tùy theo kích thước mẫu (xem trang 12 trong bài báo JSS này ).
chl

3

Bạn chắc chắn có thể biến mỗi hàng thành tỷ lệ phần trăm và vẽ tất cả các thanh có cùng độ dài, với một phần của thanh có màu xanh lá cây sau đó đưa ra một chỉ số trực quan tốt về hiệu quả. Bạn có thể giữ lại số trong ngoặc ở bên cạnh để cho biết kích thước mẫu dựa trên kết quả.

Nếu bạn muốn giữ lại một chỉ số trực quan về số lượng mẫu cũng như hiệu quả, bạn có thể xem xét biểu đồ, nhưng căn giữa các thanh dựa trên trung tâm của phần màu xám. Sau đó, kích thước tổng thể của thanh sẽ hiển thị trực quan kích thước mẫu và tỷ lệ của thanh nằm bên phải (hoặc bên trái) của đường trung tâm sẽ cho biết hiệu quả (hoặc nếu không). Kết hợp lại, bạn có được một dấu hiệu trực quan về điều trị hiệu quả phổ biến được đánh giá từ những thanh đạt đến mức xa nhất bên phải. Bạn có thể sắp xếp theo bất kỳ cách nào trong ba cách có sẵn trên trang bạn đã liên kết.

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.