Traduções desta página:

Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2010:alunos:trabalho_final:marcel.vaz:am.code

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)
05_curso_antigo/r2010/alunos/trabalho_final/marcel.vaz/am.code.txt · Última modificação: 2020/08/12 06:04 (edição externa)