Traduções desta página:

Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2013:alunos:trabalho_final:leticiabf:start

Letícia Biral de Faria

dsc00347.jpg

Mestranda em Ecologia pelo Instituto de Biociências - USP.

Projeto de pesquisa: “Nidificação, forrageamento e inimigos naturais de espécies de abelhas solitárias coletoras de óleo em área de cerrado em Luiz Antônio, SP”

Orientadora: Isabel Alves dos Santos.

Exercícios

Propostas para função

Proposta A

Em muitos trabalhos de fenologia, usa-se um programa chamado Oriana (que não é um software livre ou de domínio público) para análises de distribuição circular. Nesta análise, obtem-se:

- o vetor médio ( r );

- o ângulo médio (a), e;

- o valor Z, resultante do teste Z de Rayleigh, que testa a uniformidade da distribuição (vi que essa função já existe no pacote circular - rayleigh.test {circular}).

Meu objetivo é fazer uma função que rode as análises acima descritas e retorne um gráfico circular de barras com o vetor e o ângulo médios. Isto seria feito com dados de fenologia de floração (número de individuos ou de espécies com flores) obtidas em um anos (12 meses) - dataframe de 2 colunas, onde a primeira teria os meses e a segunda o número de espécies ou indivíduos floridos.

Proposta B

Para a identificação das espécies de plantas visitadas por abelhas para a obtenção de pólen e néctar, pode-se fazer a análise polínica do alimento depositado nos ninhos. Esta análise consiste em verificar a diversidade e frequência dos grãos de pólen por amostra. Após a contagem e identificação dos 400 primeiros grãos de cada amostra, são determinadas classes de ocorrência:

- >45% - pólen dominante –> plantas importantes ou primordiais na dieta;

- 15 a 44,99% - pólen acessório;

- 3 a 14,99% - pólen isolado importante, e;

- <3% - pólen isolado ocasional –> plantas que são fontes de néctar.

Nesse contexto, eu gostaria de fazer uma função que fosse aplicada em um objeto (contendo informações espécie de abelha, espécies de planta, contagem de graos de cada planta, porcentagem dos grãos) e que me retornasse um gráfico com um eixo sendo as espécies de plantas e o outro sendo as espécies de abelhas. Nele estaria a ocorrência do pólen de determinada espécie de planta, sendo que cada cor representaria uma classe de ocorrência.

Comentários

PI

Duas boas propostas, e bem dimensionadas. Vc teve o cuidado de definir o tipo de entrada e as saídas, o que é ótimo! A primeira é mais desafiadora, e também é uma boa maneira de estudar os detalhes destas técnicas estatísticas. A parte mais chatinha será fazer os histogramas circulares, então deixe para o fim, começando com os cálculos. Assim, se esta parte enroscar vc terá pelo menos uma função que faz as estatísticas e testes.

Não entendi muito bem o gráfico para a segunda função: os pontos seriam associações abelhas/plantas, coloridas de acordo com a intensidade da interação? Se é isto, a função image.

Página de ajuda

est.circ.ano                package:nenhum                R Documentation

Estatísticas básicas e diagrama para evento com distribuição circular anual

Description:

Calcula o número total de observações (n), o ângulo médio em radianos e em graus, a data média de ocorrência do evento,
o comprimento do vetor médio (r), o p obtido pelo teste de uniformidade de Rayleigh e a variância. Cria também um 
diagrama de rosa com a frequência de ocorrência do evento em cada mês e com uma a seta em vermelho que indica a data 
média e cujo comprimento é o valor de r.

Usage:

est.circ.ano(x)

Arguments:

x	Um objeto numérico de comprimento igual a 12. O primeiro valor deve corresponder às observações de janeiro, o 
segundo às de fevereiro e assim por diante até o último valor que deve corresponder às observações de dezembro.

Details:

O ângulo médio calculado indica a data média de ocorrência do evento.
O comprimento do vetor médio (r) varia de 0 a 1 e indica a concentração do evento (0: não concentrado, 1: altamente
concentrado na data média).
O teste de uniformidade de Rayleigh testa a uniformidade da distribuição.

Value:

NULL

Warning:

NULL

Note:

Para esta função funcionar os pacotes ‘CircStats’ e ‘circular’ devem estar instalados. Uma vez instalados, a função os 
carregará.

Author:

Letícia Biral de Faria
leticiabfaria@yahoo.com.br

References:

Ferreira, R.L.M. and Rafael, J.A. (2004) Activities of tabanids (Dipatera,Tabanidae) attacking domestic duck-Cairina 
moschata (Linnaeus) (Aves, Anatidae), introduced in a forest area in the Central Amazon, Manaus, Brazil. Revista 
Brasileira de Entomologia 48(2):283-286.

Izbicki R. and Esteves, L.G. Análise de dados circulares. (http://www.ime.usp.br/arquivos/4congresso/10%20Rafael%
20Izbicki_N.pdf)

Kovach Computing Services (http://www.kovcomp.co.uk/oriana/index.html)

Lenza, E. and Oliveira, P.E. (2006) Biologia reprodutiva e fenologia de Virola sebifera Aubl. (Myristicaceae) em mata 
mesofítica de Uberlândia, MG, Brasil. Revista Brasil. Bot. 29(3):443-452.

Package ‘CircStats’(http://cran.r-project.org/web/packages/CircStats/CircStats.pdf)

Package ‘circular’ (http://cran.r-project.org/web/packages/circular/circular.pdf)

R Graphical Manual (http://rgm2.lab.nig.ac.jp/RGM2/images.php?show=all&pageID=1901)

Talora, D.C. and Morellato, P.C. (2000) Fenologia de espécies arbóreas em floresta de planície litorânea do sudeste do 
Brasil. Revta brasil. Bot. 23(1):13-26.

See Also:

circ.mean, circ.disp, circ.summary, est.rho, r.test

Examples:

## Evento com distribuição uniforme (p não significativo).
a<-rep(40:51)
est.circ.ano(a)

## Evento sazonal (p significativo) e pouco concentrado.
## Número de espécies em floração ao longo do ano em certa localidade.
spp.flor<- c(41,72,97,98,86,64,63,66,55,60,44,48)
est.circ.ano(spp.flor)

## Evento sazonal (p significativo) e concentrado.
## Número de abelhas operárias que retornavam à colônia com pólen ao longo #do ano em certa localidade.
col<-c(68,76,246,887,1056,903,822,161,155,67,74,56)
est.circ.ano(col)

Código da Função

est.circ.ano<- function(x)
{
	if(length(x)!=12)
	{
	cat("\t Erro: O objeto deve ter tamanho 12.\t\n")
	}
	if(class(x)=="character")
	{
	cat("\t Erro: O objeto deve conter números apenas.\t\n")
	}
	library(CircStats)
	library(circular)
	ang<- seq(15,345,by=30)
	ang.gde<- rep(ang, times=x)
	rad.gde<- rad(ang.gde)
	rad.gde<-circular(rad.gde, type = "angles",  units = "radians", template = "clock24", rotation ="clock")
	media<- circ.mean(rad.gde)
	media.graus<-deg(media)
	media.circ<- circular (media, type="angles", units="radians", template = "clock24", rotation="clock")
	r<-est.rho(rad.gde)
	r.circ<-circular (r, type="angles", units="radians", template = "clock24", rotation="clock")
	test<- r.test(rad.gde)
	library(circular)
	X11()
	rose.diag(rad.gde,bins=12, prop=2, shrink=1.2, axes=FALSE)
	text(x=0.4,y=1.1,"jan",family="serif")
	text(x=0.4,y=1,labels=x[1],family="serif")
	text(x=0.9,y=0.8,"fev",family="serif")
	text(x=0.9,y=0.7,labels=x[2],family="serif")
	text(x=1.2,y=0.3,"mar",family="serif")
	text(x=1.2,y=0.2,labels=x[3],family="serif")
	text(x=1.2,y=-0.3,"abr",family="serif")
	text(x=1.2,y=-0.4,labels=x[4],family="serif")
	text(x=0.9,y=-0.8,"mai",family="serif")
	text(x=0.9,y=-0.9,labels=x[5],family="serif")
	text(x=0.4,y=-1.1,"jun",family="serif")
	text(x=0.4,y=-1.2,labels=x[6],family="serif")
	text(x=-0.4,y=-1.1,"jul",family="serif")
	text(x=-0.4,y=-1.2,labels=x[7],family="serif")
	text(x=-0.9,y=-0.8,"ago",family="serif")
	text(x=-0.9,y=-0.9,labels=x[8],family="serif")
	text(x=-1.2,y=-0.3,"set",family="serif")
	text(x=-1.2,y=-0.4,labels=x[9],family="serif")
	text(x=-1.2,y=0.3,"out",family="serif")
	text(x=-1.2,y=0.2,labels=x[10],family="serif")
	text(x=-0.9,y=0.8,"nov",family="serif")
	text(x=-0.9,y=0.7,labels=x[11],family="serif")
	text(x=-0.4,y=1.1,"dez",family="serif")
	text(x=-0.4,y=1,labels=x[12],family="serif")
	arrows.circular(x=media.circ, shrink=r.circ, col="red",length=0.08)
	if(media<0)
	{
	media=2*pi+media
	}
	if(media.graus<0)
	{
	media.graus=360+media.graus
	}
		if(media.graus>=0&media.graus<=30)
		{
		mes<-"jan"
		}
		if(media.graus>=31&media.graus<=60)
		{
		mes<-"fev"
		}
		if(media.graus>=61&media.graus<=90)
		{
		mes<-"mar"
		}
		if(media.graus>=91&media.graus<=120)
		{
		mes<-"abr"
		}
		if(media.graus>=121&media.graus<=150)
		{
		mes<-"mai"
		}	
		if(media.graus>=151&media.graus<=180)
		{
		mes<-"jun"
		}
		if(media.graus>=181&media.graus<=210)
		{
		mes<-"jul"
		}
		if(media.graus>=211&media.graus<=240)
		{
		mes<-"ago"
		}
		if(media.graus>=241&media.graus<=270)
		{
		mes<-"set"
		}
		if(media.graus>=271&media.graus<=300)
		{
		mes<-"out"
		}
		if(media.graus>=301&media.graus<=330)
		{
		mes<-"nov"
		}
		if(media.graus>=331&media.graus<=360)
		{
		mes<-"dez"
		}
	n<-length(ang.gde)
	a<-circ.disp(rad.gde)
	var<-a[4]
	final<-c(n,media,media.graus,mes,test,var)
	final<-as.data.frame(final)
	names(final)<-c("n","ang.medio.rad","ang.medio.deg","data.media","r","p","var")
	return(final)
}

Arquivo da Função

Arquivo do Help

05_curso_antigo/r2013/alunos/trabalho_final/leticiabf/start.txt · Última modificação: 2020/08/12 06:04 (edição externa)