===== Simulações ===== ## Objetivo: criar função que simule dados usando os parâmetros encontrados # A função deve ter como parâmetros: # - tempos inicial e final (i,f) (0,1,2,4,6,7) # - efeito dos fatores (l,s,c) (valores dados em porcentagem) # - efeito das interações (ls,lc,sc,lsc) (idem) # - natureza do efeito: aditivo (incremento de x %) # Servirá de base para as simulações: # - dados iniciais (ti) # - médias e variâncias dos blocos entre os tempos i e f # A simulação replicará as diferenças observadas entre os blocos # e permitirá a manipulação dos efeitos # A função deve retornar uma tabela na mesma forma "d" para ser analisada pelo função "aleat" ############################################################################ simula=function(i,f,l,s,c,ls,lc,sc,lsc){ d=org.dados(i,f) # base de dados originais # cálculo das médias dos blocos a=1:6 medias=data.frame(g.dsh=a,g.h=a,g.nl=a,g.hi=a,g.tm=a,r.dsh=a,r.h=a,r.nl=a,r.hi=a,r.tm=a) for(x in 6:15){ medias[,x-5]=aggregate(d[,x],list(d$block),mean)[,2] } # cálculo das variâncias dos blocos v=data.frame(g.dsh=a,g.h=a,g.nl=a,g.hi=a,g.tm=a,r.dsh=a,r.h=a,r.nl=a,r.hi=a,r.tm=a) for(x in 6:15){ v[,x-5]=aggregate(d[,x],list(d$block),var)[,2] } # substitui os valores originais pelos simulados for(x in 1:6){ for(y in 6:15){ d[d$block==x,y]=sample(rnorm(1000,medias[x,(y-5)],sqrt(v[x,(y-5)])),8) }} # adição dos fatores na forma de porcentagem (ex: fator luz levou a um aumento de 10% no dsh) # lembrando que os fatores são: l, s, c, ls, lc, sc, lsc ## fatores (l,s,c) # luz for(x in 6:15){ d[d$light==1,x]=d[d$light==1,x]+l*d[d$light==1,x] } # serrapilheira for(x in 6:15){ d[d$litter==1,x]=d[d$litter==1,x]+s*d[d$litter==1,x] } # competição for(x in 6:15){ d[d$comp==1,x]=d[d$comp==1,x]+c*d[d$comp==1,x] } ## interações de 1a ordem (ls,lc,sc) # ls for(x in 6:15){ d[d$light==1&d$litter==1,x]=d[d$light==1&d$litter==1,x]+ls*d[d$light==1&d$litter==1,x] } # lc for(x in 6:15){ d[d$light==1&d$comp==1,x]=d[d$light==1&d$comp==1,x]+lc*d[d$light==1&d$comp==1,x] } # sc for(x in 6:15){ d[d$comp==1&d$litter==1,x]=d[d$comp==1&d$litter==1,x]+sc*d[d$comp==1&d$litter==1,x] } ## interações de 2a ordem (lsc) for(x in 6:15){ d[d$light==1&d$comp==1&d$litter==1,x]=d[d$light==1&d$comp==1&d$litter==1,x]+lsc*d[d$light&d$comp==1&d$litter==1,x] } return(d) }