Traduções desta página:

Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2013:alunos:trabalho_final:amanda.prado:start

Amanda Prado

foto.jpg

Mestranda em Ecologia de Paisagens (http://ecologia.ib.usp.br/lepac/index.php?option=com_content&view=article&id=46&Itemid=11), no Instituto de Biociências da USP, sob orientação do Prof. Dr. Jean Paul Metzger. O tema da minha dissertação está passando por algumas alterações, portanto o título ainda não está definido.

exec

Proposta de Trabalho Final

Plano A

Uma das consequências da fragmentação de ambientes naturais é o chamado efeito de borda. O termo borda está relacionado com uma faixa inicial de floresta que sofre grande influência dos contornos, normalmente ambientes antropizados. Este efeito resulta em composição e estrutura da comunidade diferentes daquelas encontradas no interior da mata, sendo que cada grupo biológico sofre diferentemente esses efeitos. Desta forma, espera-se que para cada grupo haverá diferentes distâncias, a partir da borda, em que esse efeito será mais pronunciado, podendo afetar os dados coletados por um pesquisador. Assim, minha proposta inicial é criar uma função em que o pesquisador possa determinar um comprimento de borda adequado para o grupo com o qual está trabalhando, a fim de que essa faixa seja excluída das áreas de coleta. Essa função retornará índices de diversidade para o grupo amostrado em diferentes distâncias a partir da borda (determinadas pelo pesquisador, de acordo com suas coletas). Na posse desses dados, o pesquisador poderá comparar os índices obtidos para diferentes pontos do fragmento e escolher o melhor comprimento de borda que não influenciará em seus dados e em suas análises.

Plano B

O Plano B seria elaborar uma função que retornaria gráficos de perda de espécies em um gradiente de perda de cobertura vegetal.

Comentários

Seu plano A é bem interessante, e acho que talvez a função gerada possa ser aplicada para outros problemas parecidos depois.

Você poderia descrever um pouco melhor como os dados de entrada e os objetos de saída estão organizados. Eu, que não sou da área, não entendi exatamente o que está entrando nessa função: é uma matriz com posição geográfica de várias coletas? As diferentes distâncias vão ser especificadas em um vetor (ou lista)? O pesquisador vai poder escolher diferentes índices de diversidade ou apenas os mais comuns?

Trabalhar com dados de coordenada espacial (georeferenciada?) pode dar um pouquinho de trabalho, mas dê uma olhada nessa taskview do R: http://cran.r-project.org/web/views/Spatial.html

O plano B está muito sumário. Eu sei que ele é só um “plano B”, mas desenvolva ele com um pouco mais de carinho, pro caso do plano A dar errado!

Andre Chalom 2013/03/18 19:24

Amanda

Olá, Chalom.

Os dados de entrada para o Plano A estariam dispostos um data frame, contendo as espécies e sua correspondente abundância para cada distância da borda. E a saída seriam índices de biodiversidade (Shannon, Simpson e Pielou) para cada distância e de similaridade (Jaccard) entre as distâncias, além de alguns gráficos informativos, por exemplo, um histograma mostrando a variação da abundância total do grupo de acordo com a distância da borda e um plot contendo o número de indivíduos de cada espécie em cada distância. Com esses dados, seria possível escolher um comprimento de borda que não afetasse tanto a comunidade de interior de mata que se quer amostrar.

O plano B teria como entrada uma matriz com dados da riqueza de espécies em paisagens com diferentes porcentagens de cobertura florestal. Assim, seria possível construir gráficos que informassem qual o modelo que a perda de espécies segue (linear, exponencial, etc).

Trabalho Final

Código da Função edge

edge = function (x, indice="shannon",  rmNA=TRUE)
{ 
  x1=x[,3:ncol(x)]
  
  if(rmNA==TRUE) 
  	{ 
    	x1[is.na(x1)]=0 
    	dados=x1
  	} 
  	else 
  	{ 
    	dados=x1
    	cat("\n Cuidado. Valores ausentes (NA) não removidos.\n")
  	} 
  
  library(vegan)
  
  if(indice=="shannon")
  {
  	nrow=dim(dados)[1]
    	resultadosH=rep(0,nrow)
    	names(resultadosH) = paste("H",c(1:nrow), sep="")
    		for(i in 1:(dim(dados)[1]))
    		{
      		pi = dados[i,]/sum(dados[i,])  
      		mult= pi* log(pi)
      		mult[is.nan(mult)]<-0 
      		H= - sum(mult)
      		resultadosH[i]=H
    		}
  	distancias=x[,1] 
    	tabelaSH = data.frame(distancias, resultadosH)
   	colnames(tabelaSH)<-c("distancias", "resultadosH")
    	rownames(tabelaSH) = rep(1:dim(matriz)[1])
    	grupoSH = aggregate(tabelaSH$resultadosH,list(tabelaSH$distancias), mean)
    	colnames (grupoSH) = c("Distancias", "Hmedio")
    
    	x11()
    	rownames (grupoSH) = grupoSH$Distancias
    	brayH = vegdist (grupoSH, method = "bray", na.rm=T) 
    	dendogramaH = plot(hclust(brayH, method="average"), hang=-1, main="Dendrograma", ylab = "Altura",xlab = "Bray-Curtis")
    
    	tabelasha = data.frame(as.factor(distancias), resultadosH)
    	colnames(tabelasha) = c("distancias", "resultadosH")
    	shapiroH = shapiro.test(tabelasha$resultadosH)
    	if (shapiroH$p.value>0.05)
    	{
      	anovaH = aov(tabelasha$resultadosH~tabelasha$distancias)
      	teste = summary(anovaH)
      	cat("\n Os dados apresentaram distribuição normal, portanto foi realizada uma ANOVA.\n")
    	}
    	else
    	{
      	teste = kruskal.test(resultadosH~distancias, data = tabelasha)
      	cat("\n Os dados apresentaram distribuição não paramétrica, portanto foi realizada uma análise de Kruskal-Wallis.\n")
    	}
  }
  
  if(indice=="simpson")
  {
    	nrow=dim(dados)[1]  
    	resultadosD=rep(0,nrow)
    	names(resultadosD) = paste("D",c(1:nrow), sep="")
    		for(i in 1:(dim(dados)[1]))
    		{  
      		pi = dados[i,]/sum(dados[i,])
      		D=sum(pi^2)
      		resultadosD[i]=D
    		}
    	distancias=x[,1] 
    	tabelaS = data.frame(distancias, resultadosD)
    	colnames(tabelaS)= c("distancias", "resultadosD")
    	rownames(tabelaS) = rep(1:dim(matriz)[1])
    	grupoS = aggregate(tabelaS$resultadosD,list(tabelaS$distancias), mean)
    	colnames (grupoS) = c("Distancias", "Dmedio")
    
    
    	x11()
 	rownames (grupoS) = grupoS$Distancias
    	brayD = vegdist (grupoS, method = "bray", na.rm=T) 
    	dendogramaD = plot(hclust(brayD, method="average"), hang=-1, main="Dendrograma", ylab = "Altura",xlab = "Bray-Curtis")
    
    	tabelasi = data.frame(as.factor(distancias), resultadosD)
    	colnames(tabelasi) = c("distancias", "resultadosD")
    	shapiroD = shapiro.test(tabelasi$resultadosD)
    	if (shapiroD$p.value>0.05)
    	{
      	anovaD = aov(tabelasi$resultadosD~tabelasi$distancias)
      	teste = summary(anovaD)
      	cat("\n Os dados apresentaram distribuição normal, portanto foi realizada uma ANOVA.\n")
    	}
    	else
    	{
      	teste = kruskal.test(resultadosD~distancias, data = tabelasi)
      	cat("\n Os dados apresentaram distribuição não paramétrica, portanto foi realizada anáilse de Kruskal-Wallis.\n")
    	}  
 }
  retorno = teste
  return (retorno)
}

Página de Ajuda / Help

edge           package: nenhum               R Documentation

Índices de diversidade ecológica, análise de similaridade e teste de comparação.

Descrição:
A função calcula o índice de Shannon ou de Simpson para diversos pontos de coleta, a diferentes distâncias de certo ponto de referência (por exemplo, a borda de um fragmento), considerando-se que cada ponto de coleta possui réplicas. Ela também compara os valores do índice obtidos para cada ponto, através de uma análise “ANOVA”  ou de “Kruskal-Wallis”, além de produzir um dendrograma de similaridade.
É necessária a instalação do pacote vegan.

Uso:
edge (x, indice="shannon", rmNA=T)

Argumentos:
  x		Objeto do tipo matriz.
indice		Índice de diversidade, “shannon” para índice de Shannon e “simpson” para índice de Simpson.
rmNA		Remove os dados faltantes (NA), transformando-os em 0, porém sem afetando os valores dos índices de Shannon ou de Simpson.

Detalhes:
Para que a função funcione normalmente, a matriz de entrada deve ser de dados numéricos. Os pontos de coleta devem estar nas linhas e as espécies nas colunas, sendo que a primeira coluna deve conter as distâncias ultizadas e a segunda as rélicas para cada distância. As espécies devem entrar a partir da terceira coluna.
O valor do índice de Shannon é dado por H’= -soma  p_i* ln (pi) e o de Simpson por D= soma p_i ^2, onde p_i é a abundância relativa (proporção) da espécie i na amostra. 

Valores:
Dendrograma de similaridade, baseado na análise de Bray-Curtis; 
Resumo com os resultados da análise de comparação dos valores obtidos para o índice feita, ou seja, caso os valores do índice tenham distribuição normal, o retorno é um resumo da ANOVA, e caso os valores sejam não paramétricos, o retorno é um resumo da análise de Kruskal-Wallis.

Autora:
Amanda Francisco Prado
amandaprado07@gmail.com
amanda.prado@usp.br

Referencias:
Gotelli, N. J., Elisson, A. M. Princípios de Estatística em Ecologia. Editora Armed, 2011.
Martini, A. M. Z.; Prado, P. I. K. L., 2010. Índice de diversidade de espécies. Disponível em: <https://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CEAQFjAB&url=http%3A%2F%2Fecologia.ib.usp.br%2Flet%2Flib%2Fexe%2Ffetch.php%3Fid%3Ddidatico%3Aquantif%3Astart%26cache%3Dcache%26media%3Ddidatico%3Aquantif%3Aqdb_indicesdiversidade.pdf&ei=qwl0UZLVI4L68gSr9YGYCA&usg=AFQjCNEOKLc-AxH1VkUZKUfkxgQOx3jNRA&sig2=GfqcLB263vxY5hXariTbpA&bvm=bv.45512109,d.eWU>. Visualizado em: 15 abril 2013.

Ver também:
Funções diversity( ) e vegdist( ) do pacote vegan.

Exemplo:
ma = matrix(abs(round(rnorm(600, mean=20, sd= 50))), ncol=20)
colnames (ma) = paste("spp", 1:20, sep="")
armadilhas = rep(c(1, 2, 3), times =10)
distancias=rep(c(1, 10, 50, 100, 150, 200, 250, 300, 350, 400), each=3)
matriz = cbind(distancias,armadilhas,ma)

edge (matriz, índice = “shannon, rmNA = TRUE)

Arquivos da função

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