Índice
- O Curso R
-
- Tutoriais
-
- Apostila
-
- 6. Testes de Hipótese (em preparação!)
- Exercícios
-
- Material de Apoio
-
- Área dos Alunos
-
- Cursos Anteriores
-
IBUSP
Outras Insitutições
Linques
Visitantes
Outras Insitutições
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.
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.
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.
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
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).
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) }
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)
Função funcao_-_edge.r
Help help_funcao.txt