====== Christini B. Caselli ====== Sou aluna de doutorado do Programa de Pós-graduação em Ecologia da Unicamp, estudo comportamento de primatas com enfoque em comportamento territorial. ===== Meus exercícios ===== {{:bie5782:01_curso_atual:alunos:trabalho_final:ccaselli:christini_1_f.r|}} {{:bie5782:01_curso_atual:alunos:trabalho_final:ccaselli:christini_2_f.r|}} {{:bie5782:01_curso_atual:alunos:trabalho_final:ccaselli:christini_3_f.r|}} {{:bie5782:01_curso_atual:alunos:trabalho_final:ccaselli:christini_caselli_4_f.r|}} {{:bie5782:01_curso_atual:alunos:trabalho_final:ccaselli:christini_5_f.r|}} {{:bie5782:01_curso_atual:alunos:trabalho_final:ccaselli:christini_6_f.r|}} {{:bie5782:01_curso_atual:alunos:trabalho_final:ccaselli:christini_7_f.r|}} {{:bie5782:01_curso_atual:alunos:trabalho_final:ccaselli:christini_caselli_8_f.r|}} {{:bie5782:01_curso_atual:alunos:trabalho_final:ccaselli:christini_9_p.r|}} ===== Trabalho Final ===== ===== Proposta A ===== Criar uma função, que utilizando estatística circular, permita determinar o nível de sincronia na floração e frutificação entre indivíduos de espécies de plantas. Com esta função poderei testar se existe ou não variação sazonal nos padrões fenológicos de um conjunto de coespecíficos ou de um conjunto de espécies de interesse, como por exemplo, espécies zoocóricas. A função proposta irá primeiramente transformar os dados em ângulos e em seguida calcular dois parâmetros: 1) o ângulo médio (μ) - período no qual é mais provável encontrar indivíduos (ou espécies) numa determinada fenofase; 2) o comprimento do vetor médio ( r ) - um índice de concentração dos dados, onde zero representa assincronia e 1, o máximo possível de sincronia. Com esses parâmetros a função deverá ainda testar se os dados apresentam uma distribuição uniforme por meio do teste de Rayleigh. Caso os dados apresentem uma distribuição uniforme, as fenofases analisadas serão interpretadas como não sazonais. ==== Comentários PI ==== Ótima! Vc vai aprender muito de R e de estatística circular. Há pacotes de estatística circular no R, que vc pdoe usar para verificar os resultados obtidos com a sua função, além de obter outras idéias. ==== Resultado trabalho final (Proposta A) ==== === Página de ajuda === fenologia package:nenhum R Documentation Description: utiliza estatística circular para testar se existe variação sazonal nos padrões fenológicos de um conjunto de coespecíficos ou de um conjunto de espécies de interesse. Usage: fenologia<-function(x,y) Arguments: x Vetor representando a escala de tempo. Se utilizou uma escala mensal, x=c(1:30), por exemplo. y Número de indivíduos ou espécies na fenofase de interesse para cada intervalo se sua escala de tempo (para cada dia do mês, por exemplo). Logo, este vetor deve ter mesmo comprimento que o vetor x. Details: Como se trata de estatística circular, esta função primeiramente converte os valores da escala de tempo utilizada em ângulos (radiano). Esta função só deve ser utilizada para distribuições unimodais ou bimodais cujas modas não sejam opostas entre si. Se este for o caso dos seus dados, aguarde a próxima versão desta função. Value: A função retorna um aviso afirmando se o fenômeno observado apresenta variação sazonal ou não. Além disso, a função retorna uma tabela com os valores do ângulo médio, moda, r e P (discriminados abaixo) e dois gráficos. Um dos gráficos mostra a distribuição da sua escala de tempo indicando a posição do ângulo médio e da moda. O outro gráfico mostra a distribuição dos valores de r gerados ao acaso e indica o valor de r observado. Ângulo médio (em graus e em radianos) ângulo no qual é mais provável encontrar indivíduos (ou espécies) numa determinada fenofase. Moda ângulo no qual existe mais indivíduos ou espécie na fenofase em questão. r Índice de concentração dos dados. Varia de zero a um (zero representa assincronia e 1, o máximo possível de sincronia. P Probablidade de que o r observado seja encontrado ao acaso. Author(s): Christini B. Caselli References: ZAR, J. H. 1999. Biostatistical analysis. Upper Saddle River : Prentice Example: x=c1:12) ##A escala temporal desejada, se for ano deve ter 12 elementos, se for mês, deve ter 30 elementos. y=c(13,14,12,7,12,6,8,6,13,14,17,13) ##A frequência de observação de um determinado fenômeno para cada unidade da sua escala de tempo(hora, dia, mês). fenologia(x,y) === A função === fenologia<-function(x,y) { library(circular) x1=(x*360)/length(x)##primeiro transforma meses em graus x2=circular(rep(x1, times=y),type = c("angles"), units = c("degrees"))##aplica as frequencias de ##observação de eventos ##fenológicos para cada mês x3<-conversion.circular(x2, units = "radians")##converte em radianos X=(sum(cos(x3)))/length(x3) Y=(sum(sin(x3)))/length(x3) r=round((sqrt((X^2)+(Y^2))), digits=4) coseno=X/r seno=Y/r para.angulo=function(d) { para.angulo=circular(((360*d)/(2*pi)), type = c("angles"), units = c("degrees")) return(para.angulo) } Ângulo.Médio.radiano=round((acos(coseno)), digits=4) Ângulo.Médio.graus=round((para.angulo(acos(coseno))), digits=4) moda.rad=as.numeric(names(sort(table(x3),decreasing = T))[1]) moda.grau=para.angulo(moda.rad) par(mfrow=c(1,2),mar=c(8,4,8,4)) grafico=plot(x3, axes=FALSE, ticks=FALSE, main="Distribuição circular dos dados") axis.circular(at=circular(seq(0, 11/6*pi, pi/6)), labels=x) points(Ângulo.Médio.graus, col=2,cex=1.5) points(moda.grau, col=3,cex=1.5) mtext("Ângulo médio", side=1, line=0,at=1, cex=1, family="serif", col="red") mtext("Moda", side=1, line=2,at=1, cex=1, family="serif",col="green") result<-rep(0,1000) result[1]<-r for(i in 2:1000) { reamostragem=sample(y) x1=(x*360)/length(x)##primeiro transforma meses em graus x2a=circular(rep(x1, times=reamostragem),units = c("degrees")) x3a<-conversion.circular(x2a, units = "radians")##converte em radianos Xa=(sum(cos(x3a)))/length(x3a) Ya=(sum(sin(x3a)))/length(x3a) ra=sqrt((Xa^2)+(Ya^2)) result[i]<-ra } histograma=hist(result, main="Distribuição de frequências de r",xlab="Valores de r", ylab="Frequência") abline(v = result[1], col="blue") abline(v = result[1]*-1, col="red") mtext(col=4,"r obs", side=1, line=1,at=r, cex=1, family="serif") unicaudal=sum(result>=result[1]) P=round((unicaudal/length(result)),digits=4) if(P>=0.05) { cat("\n\n\n\t *Distribuição Uniforme. O fenômeno observado não apresenta variação sazonal* \n\n\n") } if(P < 0.05) { cat("\n\n\n\t *Distribuição não uniforme. Há variação sazonal no parâmetro amostrado* \n\n\n") } Resultado=c(Ângulo.Médio.radiano,Ângulo.Médio.graus,moda.grau,r,P) Título=c("Ângulo médio (radiano)", "Ângulo médio(graus)","Moda (graus)","r","P") Tabela=data.frame(Título,Resultado) return(Tabela) } ===== Proposta B ===== Nos estudos de comportamento é muito comum utilizar o método de varredura instantânea, registrando-se o comportamento dos animais a um determinado intervalo de tempo. No entanto, o intervalo de tempo escolhido deve ser suficiente para evitar interdependência entre períodos amostrais. Assim, pretendo criar uma função que determine o intervalo em que os registros comportamentais sejam independentes entre si (resumindo: análise de autocorrelação temporal). ==== Comentários PI ==== Promissora, mas não estão claros os //inputs// e //ouputs// da função.