title: “ANALISIS MULTIVARIADO” author: “GRUPO BECADI” date: “1/8/2019”

becadi<- function(datos) {

  n<-nrow(datos)
  
  k<-ncol(datos)
  
  
  v.unos<-matrix(rep(1,n),ncol = 1) # Vector de unos
  v.unos
  
  v.medias<-(t (datos)%*% v.unos)/n # Vector de medias
  v.medias
  
  matriz.cov <-(t(datos)%*%(datos))/n- v.medias %*% t(v.medias)  # Matriz de covarianzas
  matriz.cov
  
  
  D<-diag(c(1/sqrt(diag(matriz.cov))))
  D
  
  R<-D%*%matriz.cov%*%D # Matriz de correlacion
  R
  
  #Medidas globales de variabilidad :
  
  vme<-(t(log(datos)))%*%v.unos/n #vector de medias estandarizado
  vme
  
  mce<-(t(log(datos)))%*%(log(datos))/n-vme%*%t(vme) #matriz de covarianzas estandarizado
  mce
  
  V.total<-sum(diag(mce))  # Varianza total
  V.total
  
  v.media<-V.total/k  # Varianza media
  v.media
  
  V.G<-det(mce)  # Varianza generalizada
  V.G
  
  V.E<-(V.G)^(1/k) # Varianza Efectiva
  V.E
  
  
  
  #Distancia de mahalanobis
  
  
  X<-as.matrix(datos)
  
  media<-colMeans(datos)
  
  Inver.cov<-solve(matriz.cov)
  Inver.cov
  
  matriz.media<-matrix(media,nrow =n,ncol=k,byrow =TRUE)
  
  dist.mahalanobis<-((X-matriz.media)%*%Inver.cov)%*%t(X-matriz.media)
  
  #TES DE NORMALIDAD MULTIVARIADA
  
  
  gl<-k*(k+1)*(k+2)/6
  
  
  AMp<-sum((diag(dist.mahalanobis))^3)/n^2 # asimetria multivariada
  
  KMp<-sum((diag(dist.mahalanobis))^2)/n  #Kurtosis multivariada
  
  
  # TEST multivariado de asimetria de mardia - muestras pequeñas
  
  if(n<30){
    c<-(n+1)*(n+3)*(k+1)/(n*((n+1)*(k+1)-6))
    TAM<- n*c/6*AMp
    valor_p1<-pchisq(TAM,gl,lower.tail = FALSE)
  } else {
    TAM<-n/6*AMp #TEST multivariado de asimetria de mardia - muestras  grandes
    valor_p1<-pchisq(TAM,gl,lower.tail = FALSE)
  }
  
  if (valor_p1<0.05){
    test1<-"No Normalidad"
  }else{
    test1<-"Normalidad"
  }
  
  #TEST MULTIVARIADO DE KURTOSIS DE MARDIA
  
  TKM<-(KMp-k*(k+2))*sqrt(n/(8*k*(k+2)))
  
  TKM2<-TKM^2
  
  valor_p2<-pchisq(TKM2,1,lower.tail = FALSE)
  
  if (valor_p2<0.05){
    test2<-"No Normalidad"
  }else{
    test2<-"Normalidad"
  }
  
  
  cat("------------------------------------------------------------------------------------","\n")
  cat("Tratamiento Matricial","\n")
  cat("------------------------------------------------------------------------------------","\n")
  
  cat("Vector De Medias =",v.medias, "\n",
      "Matriz De Covarianzas=", matriz.cov, "\n",
      "Matriz De Correlacion=",R, "\n")
  
  cat("------------------------------------------------------------------------------------","\n")
  
  cat("Medidas Globales De Variabilidad","\n")
  
  cat("------------------------------------------------------------------------------------","\n")
  
  cat("Varianza Total=",V.total,"\n",
      "Varianza Media=", v.media,"\n",
      "Varianza Generalizada=",V.G,"\n",
      "Varianza Especifica=",V.E,"\n")
  
  cat("----------------------------------------------------------------------------------","\n")
  cat("Distancia De Mahalanobis","\n")
  cat("----------------------------------------------------------------------------------","\n")
  
  cat("Distancia De Mahalanobis=",diag(dist.mahalanobis), "\n")
  
  cat("----------------------------------------------------------------------------------","\n")
  cat("TEST DE NORMALIDAD MULTIVARIADA", "\n")
  cat("----------------------------------------------------------------------------------","\n")
  
  cat("ASIMETRIA MULTIVARIADA=",AMp, "\n")
  cat("KURTOSIS MULTIVARIADA=",KMp, "\n")
  cat("----------------------------------------------------------------------------------","\n")
  cat("TEST DE MARDIA ASIMETRIA - KURTOSIS", "\n")
  cat("----------------------------------------------------------------------------------","\n")
  
  df<-data.frame(Prueba=c("Prueba de Asimetria","Prueba de Kurtosis") ,Medida=c(AMp,KMp) ,Estadistico=c(TAM,TKM2) ,valor_p=c(valor_p1,valor_p2) ,conclusión=c(test1,test2))
  df
  
  
}
## EJEMPLO : 

##La siguiente base de datos contiene la información de una muestra de 14 cereales para consumo: 
cereales<-matrix(c(38,1,100,2,34,1,120,2,21,1.5,110,12,23,1.5,110,9,23,1.5,110,8,51,2,180,17,28,2,220,2,28,1.5,140,2,27,1.3,130,8,28,1.25,130,8,19,1.25,110,6,23,1.2,100,3,24,1.5,150,5,16,1.2,100,3),byrow =TRUE,ncol =4)
cereales
##       [,1] [,2] [,3] [,4]
##  [1,]   38 1.00  100    2
##  [2,]   34 1.00  120    2
##  [3,]   21 1.50  110   12
##  [4,]   23 1.50  110    9
##  [5,]   23 1.50  110    8
##  [6,]   51 2.00  180   17
##  [7,]   28 2.00  220    2
##  [8,]   28 1.50  140    2
##  [9,]   27 1.30  130    8
## [10,]   28 1.25  130    8
## [11,]   19 1.25  110    6
## [12,]   23 1.20  100    3
## [13,]   24 1.50  150    5
## [14,]   16 1.20  100    3
becadi(cereales)
## ------------------------------------------------------------------------------------ 
## Tratamiento Matricial 
## ------------------------------------------------------------------------------------ 
## Vector De Medias = 27.35714 1.407143 129.2857 6.214286 
##  Matriz De Covarianzas= 73.22959 0.7295918 123.8265 12.63776 0.7295918 0.08744898 8.005102 0.619898 123.8265 8.005102 1106.633 18.0102 12.63776 0.619898 18.0102 18.59694 
##  Matriz De Correlacion= 1 0.2883097 0.4349794 0.3424569 0.2883097 1 0.8137439 0.4860961 0.4349794 0.8137439 1 0.1255441 0.3424569 0.4860961 0.1255441 1 
## ------------------------------------------------------------------------------------ 
## Medidas Globales De Variabilidad 
## ------------------------------------------------------------------------------------ 
## Varianza Total= 0.6849484 
##  Varianza Media= 0.1712371 
##  Varianza Generalizada= 1.455937e-05 
##  Varianza Especifica= 0.06177114 
## ---------------------------------------------------------------------------------- 
## Distancia De Mahalanobis 
## ---------------------------------------------------------------------------------- 
## Distancia De Mahalanobis= 6.535034 4.568847 3.495424 2.21943 2.513294 10.84709 10.03363 3.001701 2.559174 3.791498 1.497059 1.724615 1.19491 2.01829 
## ---------------------------------------------------------------------------------- 
## TEST DE NORMALIDAD MULTIVARIADA 
## ---------------------------------------------------------------------------------- 
## ASIMETRIA MULTIVARIADA= 14.52595 
## KURTOSIS MULTIVARIADA= 24.71618 
## ---------------------------------------------------------------------------------- 
## TEST DE MARDIA ASIMETRIA - KURTOSIS 
## ----------------------------------------------------------------------------------
##                Prueba   Medida Estadistico     valor_p    conclusión
## 1 Prueba de Asimetria 14.52595 44.73571990 0.001198223 No Normalidad
## 2  Prueba de Kurtosis 24.71618  0.03740018 0.846652566    Normalidad