Mauro, boa tarde!
Trabalhei um pouco em cima do seu código e cheguei a plotar as elipses, mas precisaria revisar o conteúdo de multivariada pra saber se o procedimento está correto.
De qualquer modo, posto o código para que você veja se é possível aproveitar algo.
### <code r>
dName <- basename(dURL); dName
download.file(dURL2, dName, mode='wb')
file.show(dName)
maraOri <- read.table('marajoara320amostras.txt', head=FALSE); head(maraOri)
maraNorm <- data.frame(scale(maraOri)); head(maraNorm)
### Cluster
maraNorm.h <- hclust(dist(maraNorm)^2, method="ward")
maraGroups <- cutree(maraNorm.h, 3); maraGroups
maraInitial <- aggregate(maraNorm, by=list(maraGroups), mean)[,-1]; maraInitial
maraNorm.km1 <- kmeans(maraNorm,maraInitial)
plot(maraNorm.h, main="marajoara320amostras")
### PCA
maraNorm.pca <- princomp(maraNorm)
maraNorm.px <- predict(maraNorm.pca)
library(MASS)
eqscplot(maraNorm.px[,1:2],type="n",xlab="componente 1",ylab="componente 2")
text(maraNorm.px[,1:2],labels=as.character(maraNorm.km1$cluster),col=as.numeric(maraNorm.km1$cluster),cex=.5)
title("marajoara320amostras")
#identify(maraNorm.px[,1:2]) # identificar amostras no gráfico de PCA
library(ellipse)
tmp <- split(data.frame(maraNorm.px[,1:2]), maraGroups)
lapply(tmp, cor)
lapply(tmp, function(x) lines(ellipse(cor(x), level=0.95, centre=c(mean(x[,1]),mean(x[,2]))), lty=2))
### </code>