# --- Envelope para as distâncias --- # # Essa função constrói um envelope com 95% de confiança # para as distâncias (X-Xbarra)'S^(-1)(X-Xbarra) # supondo distribuição normal multivariada com média Xbarra e # matriz de variâncias e covariâncias S. # Os parâmetros são o # distâncias observadas, número de observações, # Média amostral e variância amostral envelope.distancias <- function(d, n, Xbarra, S) { qq <- qchisq(ppoints(length(d)),p,0) #install.packages("mvtnorm") p <- length(Xbarra) library(mvtnorm) D<-matrix(0, nrow=100, ncol=n) di<-rep(0, n) for (i in 1:100) { amostra.gerada <- rmvnorm(n, Xbarra, S) for (j in 1:n) di[j] <- t(amostra.gerada[j,] - Xbarra) %*% solve(S) %*% ((amostra.gerada[j,] - Xbarra)) D[i,] <- sort (di) } for (i in 1:n) D[,i] <- sort (D[,i]) qqplot(d, qchisq(ppoints(n), p), pch=16) # Exercício: ?ppoints e proponha uma alternativa lines(qq, (D[2,]+D[3,])/2) lines(qq, D[50,]) lines(qq, (D[97,]+D[98,])/2) }