Я хочу візуалізувати результати кластеризації (створені за допомогою protoclust{protoclust}
), створюючи графіки скатера для кожної пари змінних, що використовуються для класифікації моїх даних, фарбування за класами та перекриття еліпсів для 95% довірчого інтервалу для кожного з класів (щоб перевірити, який Класи еліпсів перекриваються під кожною парою змінних).
Я реалізував малюнок еліпсів двома різними способами, і отримані еліпси відрізняються! (Більші еліпси для першої реалізації!) Апріорі вони відрізняються лише розмірами (деякі різні масштабування?), оскільки центри та кут осей здаються однаковими в обох. Я думаю, що я повинен робити щось не так, використовуючи один з них (сподіваюся, не з обома!) Або з аргументами.
Хтось може сказати мені, що я роблю неправильно?
Тут код для двох реалізацій; обидва базуються на відповідях на те, як еліпс даних може бути накладений на розсіювач 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
, це також відбувається, коли ви запускаєте код?