Ich möchte die Ergebnisse eines Clusters (erstellt mit protoclust{protoclust}
) visualisieren, indem ich Scater-Diagramme für jedes Variablenpaar erstelle, das zum Klassifizieren meiner Daten verwendet wird, nach Klassen färbt und die Ellipsen für das 95% -Konfidenzintervall für jede der Klassen überlappt (um zu überprüfen, welche elipses-Klassen überlappen sich unter jedem Variablenpaar.
Ich habe das Zeichnen der Ellipsen auf zwei verschiedene Arten implementiert und die resultierenden Ellipsen sind unterschiedlich! (größere Ellipsen für die erste Implementierung!) A priori unterscheiden sie sich nur in der Größe (einige unterschiedliche Skalierungen?), da die Mittelpunkte und der Winkel der Achsen in beiden Fällen ähnlich zu sein scheinen. Ich denke, ich muss etwas falsch machen, indem ich einen von ihnen (hoffe nicht mit beiden!) Oder mit den Argumenten benutze.
Kann mir jemand sagen, was ich falsch mache?
Hier der Code für die beiden Implementierungen; beide basieren auf den Antworten auf Wie kann eine Datenellipse einem ggplot2-Streudiagramm überlagert werden?
### 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)
Hier sind die beiden Diagramme zusammen (linkes Diagramm ist p1
Implementierung ( ellipse()
):
Die Daten sind hier verfügbar: https://www.dropbox.com/sh/xa8xrisa4sfxyj0/l5zaGQmXJt
Warning message: In cov.trob(cbind(data$x, data$y)) : Probable convergence failure
dies auch, wenn Sie den Code ausführen?