protoclust{protoclust}
データの分類に使用される変数のペアごとにスキャッタープロットを作成し、クラスごとに色を付け、各クラスの95%信頼区間の楕円を重ねることで(で作成された)クラスタリングの結果を視覚化したいelipses-classesは、変数の各ペアの下で重複しています。
楕円の描画を2つの異なる方法で実装しましたが、結果の楕円が異なります!(最初の実装では楕円が大きくなります!)軸の中心と角度はどちらも似ているように見えるので、アプリオリはサイズが異なるだけです(多少のスケーリング?)。私はそれらの1つ(両方ではないことを願っています!)、または引数を使用して何か間違ったことをしているに違いないと思います。
誰かが私が間違っていることを教えてもらえますか?
ここに2つの実装のコードがあります。どちらも、データ楕円をどのようにして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)
これが2つのプロットをまとめたものです(左側のグラフはp1
実装(ellipse()
)です):
データはこちらから入手できます:https : //www.dropbox.com/sh/xa8xrisa4sfxyj0/l5zaGQmXJt
Warning message: In cov.trob(cbind(data$x, data$y)) : Probable convergence failure
が表示されますが、コードを実行すると警告 が発生しますか?