|[[:bie5782:01_curso_atual:alunos:trabalho_final:marcel.vaz:start]]| ===== Código da função===== ##### ANOVA DE MONTE CARLO anova.MC=function(dados,n){ aleat=function(dados){ # função que faz as permutações mc=dados # crio o objeto que receberá as permutações, idêntico aos dados originais mc$resp=rep(NA,length(dados$resp)) # retiro os valores originais for(j in 1:length(unique(dados$bloco))){ # número de blocos mc$resp[mc$bloco==j]=sample(dados$resp[dados$bloco==j]) # permutação dos valores encontrados } return(summary(aov(resp~A*B+Error(bloco/(A*B)),mc))[5][[1]][[1]][[4]][1:3]) # extração e cálculo de F } result=data.frame(A=rep(NA,n),B=rep(NA,n),A.B=rep(NA,n)) # crio o objeto que receberá os valores de F for(i in 1:n){ # número de permutações result[i,]=aleat(dados) # gero n valores de F } real=summary(aov(resp~A*B+Error(bloco/(A*B)),data=dados))[5][[1]][[1]][[4]][1:3] # extração e cálculo de F dos dados reais p=data.frame(fatores="p", A=(length(result[result[,1]>=real[1],1])+1)/(n+1), # probabilidade de se encontrar o efeito do fator A ao acaso B=(length(result[result[,2]>=real[2],2])+1)/(n+1), # o mesmo para o fator B A.B=(length(result[result[,3]>=real[3],3])+1)/(n+1) # e idem para a interação A:B ) return(p) } # fim da função # Testando... anova.MC(dados,99)