##EXERCÍCIO 9 vegas.t=function(dados,fator, nsim=1000, teste="bi") ##função com argumentos, dados, fator, nsim(default=1000) e tipo de teste (default=bicaudal) { resulta<-rep(NA,nsim) ##cria o vetor de resultados resulta[1]<-diff(tapply(dados,fator,mean)[]) ## coloca o valor da diferenca observada na primeira posicao porque não vai ciclar o que já foi observado! for(i in 2:nsim) ## ciclos de permutacao { resulta[i]=diff(tapply(sample(dados),fator,mean)[]) ## gera média permutando os dados 1000 vezes. []tira a "legenda" da média } ##calculo do nosso p. Quão significativa a diferenca?? hist(resulta,xlab="Diferenças sob a hipótese nula", main="") ## Histograma if(teste=="bi") ## se teste é bicaudal roda esse ciclo (ex:machos e femeas sao diferentes?) { abline(v = resulta[1], col="red") ## acrescenta 2 linhas do obervado ao histograma (macho-femea e femea-macho) abline(v = -1*resulta[1], col="red") bicaudal=sum(abs(resulta)>=abs(resulta[1])) ##soma todos os valores que foram maiores ou iguais à diferenca observada proba=bicaudal/nsim ##soma sobre o total resulta na probabilidade cat("\n modulo da diferenca observado =",abs(resulta[1]),"\n\t probabilidade erro tipo I =" , proba, "\n") ##Mostra resultado na tela "\n" pula linha e "\t" dá um Tab } if(teste=="uni") ## se teste é unicaudal roda esse ciclo (ex:machos maior que femeas?) { if(resulta[1]<0) ##if's para considerar cauda de lá ou de cá { proba=sum(resulta<=resulta[1])/nsim } if(resulta[1]>=0) { proba=sum(resulta>=resulta[1])/nsim } abline(v = resulta[1], col="red") ## Acrescenta apenas uma linha ao histograma cat("\n diferença observada =",resulta[1],"\n\t probabilidade erro tipo I =" , proba, "\n") ##Mostra resultado na tela } return(resulta) ##return(list(proba,resulta)) }