Tôi muốn trực quan hóa kết quả của một cụm (được tạo ra protoclust{protoclust}
) bằng cách tạo các biểu đồ quét cho từng cặp biến được sử dụng để phân loại dữ liệu của tôi, tô màu theo các lớp và chồng chéo các dấu chấm cho khoảng tin cậy 95% cho mỗi lớp (để kiểm tra elipses - các lớp trùng nhau dưới mỗi cặp biến).
Tôi đã thực hiện việc vẽ các hình elip theo hai cách khác nhau và kết quả hình elip cũng khác nhau! (hình elip lớn hơn để thực hiện lần đầu tiên!) Một tiên nghiệm họ chỉ khác nhau về kích thước (một số tỷ lệ khác nhau?), vì trung tâm và góc của trục, dường như giống nhau ở cả hai. Tôi đoán tôi phải làm điều gì đó sai bằng cách sử dụng một trong số họ (hy vọng không phải với cả hai!), Hoặc với các đối số.
Bất cứ ai có thể cho tôi biết những gì tôi đang làm sai?
Đây là mã cho hai triển khai; cả hai đều dựa trên các câu trả lời Làm thế nào một hình elip dữ liệu có thể được đặt chồng lên trên một biểu đồ phân tán ggplot2?
### 1st implementation
### using ellipse{ellipse}
library(ellipse)
library(ggplot2)
library(RColorBrewer)
colorpal <- brewer.pal(10, "Paired")
x <- data$x
y <- data$y
group <- data$group
df <- data.frame(x=x, y=y, group=factor(group))
df_ell <- data.frame()
for(g in levels(df$group)){df_ell <- rbind(df_ell, cbind(as.data.frame(with(df[df$group==g,], ellipse(cor(x, y),scale=c(sd(x),sd(y)),centre=c(mean(x),mean(y))))),group=g))}
p1 <- ggplot(data=df, aes(x=x, y=y,colour=group)) + geom_point() +
geom_path(data=df_ell, aes(x=x, y=y,colour=group))+scale_colour_manual(values=colorpal)
### 2nd implementation
###using function ellipse_stat()
###code by Josef Fruehwald available in: https://github.com/JoFrhwld/FAAV/blob/master/r/stat-ellipse.R
p2 <-qplot(data=df, x=x,y=y,colour=group)+stat_ellipse(level=0.95)+scale_colour_manual(values=colorpal)
Đây là hai ô với nhau (biểu đồ bên trái là p1
triển khai ( ellipse()
):
Dữ liệu có sẵn tại đây: https://www.dropbox.com/sh/xa8xrisa4sfxyj0/l5zaGQmXJt
Warning message: In cov.trob(cbind(data$x, data$y)) : Probable convergence failure
là điều này cũng xảy ra khi bạn chạy mã?