[[analises:tax:varbygroup]]

Variáveis vs. Grupos

Como é a distribuição da variação entre grupos? Grupos diferem significativamente em quais variáveis?

  1. Requer:
    1. funcoesnecessarias.r - arquivo com funções usadas
    2. classificacaoaposteriorifinal.csv - dados com classificação
    3. dados_medias_todasvar.csv - dados com dados brutos das variáveis
  2. Gera:
    1. gruposmclustporvariavel.pdf - boxplot por variável (indicando diferenças entre grupos via TukeyTest)
rm(list=ls())
#gera um arquivo com boxplots para cada variavel
library(multcompView)
library(multcomp)
 
#define para ler e salvar dados
rm(list=ls())
library(mclust)
 
#funcoes e pacotes necessarios
source("funcoesNecessarias.r")
 
#para salvar resultados
pathparadados = "dadosParaAnalises"
pathparafiguras = "figuras"
pathparatabelas = "tabelas"
#dir.create(pathparadados)
#dir.create(pathparafiguras)
#dir.create(pathparatabelas)
 
#pega os dados brutos
arq = "dadosParaAnalises/dados_medias_todasvar.csv"
dados.medias = read.table(file=arq,sep='\t',as.is=F,row.names = 1,header=T)
dados.medias$FLO_COMMAXDAFLO
#pega o grupo que quer testar
#neste caso usando o gerado a posteiori
dir(pathparadados)
arq = "dadosParaAnalises/classificacaoAposterioriFINAL.csv"
osgrupos = read.table(file=arq,sep='\t',as.is=F,row.names = 1,header=T,na.strings=c("NA",""))
#garante mesma ordem
osgrupos = osgrupos[rownames(dados.medias),]
vetorgrupos = as.vector(osgrupos$NOVACLASSE)
 
#apenas para grupo core? 
#deixa as incertezas de fora
vl = osgrupos$CATEGORIA=='core'
dados.medias = dados.medias[vl,]
vetorgrupos = vetorgrupos[vl]
names(vetorgrupos) = rownames(dados.medias)
table(vetorgrupos)
#gera um vetor de cores
my_colors=c( rgb(143,199,74,maxColorValue = 255),rgb(242,104,34,maxColorValue = 255), rgb(111,145,202,maxColorValue = 255),rgb(254,188,18,maxColorValue = 255) , rgb(74,132,54,maxColorValue = 255),rgb(236,33,39,maxColorValue = 255),rgb(165,103,40,maxColorValue = 255))
 
fn = paste(pathparafiguras,"/gruposMClustPorVariavel.pdf",sep="")
pdf(fn,width=8.5,height=10)
par(mfrow=c(3,2),mar=c(8,5,3,3),mgp=c(2.5,0.5,0),tck=-0.01,cex.axis=0.8,las=2)
for(cl in 1:ncol(dados.medias)) {
  cln = colnames(dados.medias)[cl]
  print(cln)
  var = dados.medias[,cl]
  rn = row.names(dados.medias)
  gps = vetorgrupos[rn]
  dt = cbind(gps,var)
  dt = na.omit(dt)
  #plot(as.factor(dt[,1]),as.numeric(dt[,2]),ylab=cln,xlab='')
  dt = as.data.frame(dt)
  vl = as.numeric(as.vector(dt$var))
  dt$var = vl
  if (sum(vl==0)!=length(vl)) {
    fm1 <- aov(var ~ gps,data=dt)
    #tukey = TukeyHSD(fm1, "gps", conf.level=0.95)
    tukey = glht(fm1, linfct = mcp(gps = "Tukey"))
    # Apply the function on my dataset
    LABELS=cld(tukey)
    LABELS = LABELS$mcletters$Letters
    lv = levels(dt$gps)
    LABELS = LABELS[lv]
    LABELS = as.factor(LABELS)
    # Draw the basic boxplot
    a=boxplot(dt$var ~ dt$gps , ylim=c(min(dt$var) , 1.1*max(dt$var)) , col=my_colors[as.numeric(LABELS)] , ylab=cln , main="")
    over=0.1*max( a$stats[nrow(a$stats),] )
    text( c(1:nlevels(dt$gps)) , a$stats[nrow(a$stats),]+over , LABELS, col=my_colors[as.numeric(LABELS)] )
  }
}
dev.off()
  • analises/tax/varbygroup.txt
  • Última modificação: 02/54/2017 23:54
  • por labotam_admin