Я хочу визуализировать результаты кластеризации (созданные с помощью protoclust{protoclust}
), создавая диаграммы разброса для каждой пары переменных, используемых для классификации моих данных, раскраски по классам и перекрытия эллипсов для 95% доверительного интервала для каждого из классов (чтобы проверить, какие elipses-классы перекрываются под каждой парой переменных).
Я реализовал рисование эллипсов двумя разными способами, и в результате получились разные эллипсы! (Большие эллипсы для первой реализации!) Априори они отличаются только по размеру (какое-то разное масштабирование?), так как центры и угол осей кажутся одинаковыми в обоих случаях. Я думаю, что я должен делать что-то не так, используя один из них (надеюсь, не с обоими!) Или с аргументами.
Может кто-нибудь сказать мне, что я делаю не так?
Здесь код для двух реализаций; оба основаны на ответах на вопрос Как можно наложить эллипс данных на диаграмму рассеяния 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)
Вот два графика вместе (левый график - p1
реализация ( ellipse()
):
Данные доступны здесь: https://www.dropbox.com/sh/xa8xrisa4sfxyj0/l5zaGQmXJt
Warning message: In cov.trob(cbind(data$x, data$y)) : Probable convergence failure
, это также происходит, когда вы запускаете код?