{{:bie5782:01_curso_atual:alunos:trabalho_final:fabrbby:lagoa_023.jpg?nolink&200 |}}
====== Polliana ======
Meu nome é Polliana Zocche de Souza e faço Doutorado em Ecologia, Departamento de Botânica, IB, na Unicamp.
Minha tese está relacionada a estrutura de comunidades herbáceo-arbustivas em dunas costeiras. Sou orientada pelo Prof. Dr. Flavio Antonio Mäes dos Santos e Co-orientada pela Profª. Drª. Tânia Tarabini Castellani.
Meu interesse na disciplina está em fazer análises que extraiam mais informações dos dados coletados ao longo do Mestrado e Doutorado para publicações e análises para a própria tese.
Contato e-mail: farbby@gmail.com
====== Meus exercícios ======
[[.:exec]]
===== Propostas de Trabalho Final =====
====== Plano A ======
Introdução: A ocorrência ou não de uma espécie (Y) em um determinado local pode estar condicionada à outra espécie estruturadora (X). Quando esta ocorrência é maior do que esperado ao acaso, podemos analisar se Y tem interações positivas com X. Quando esta ocorrência é menor que o esperado ao acaso, podemos supor que há interações negativas entre as espécies. Assim, esta co-ocorrência com a espécie estruturadora X pode estar ligada à forma de vida das espécies Y, que podem (1) ocorrer preferencialmente onde X está presente ou (2) não ocorrer na presença de X.
Entrada: um data.frame com dados de presença e ausência da espécie estruturadora X, outra com os nomes das espécies da comunidade observadas em locais onde Y tem presença e locais onde X está ausente, suas formas de vida e dados de presença e ausência destas espécies.
{{ :bie5782:01_curso_atual:alunos:trabalho_final:fabrbby:tabela_exemplo.jpg?nolink&300 |}}
O que a função fará? As colunas de espécies e formas de vida serão transformadas em fatores. Coberturas das espécies associadas e da espécie Y serão dados numéricos. A função simulará a ocorrências destas das espécies Y ao acaso, ou seja, sem nenhuma interação interespecífica com a espécie estruturadora X (modelo nulo). A partir disso serão calculadas as frequências e probabilidades de ocorrência das espécies Y. Os dados de probabilidade de ocorrência da simulação serão comparados com as probabilidades de ocorrência da amostra por testes de co-ocorrência (c-score?). Estes resultados serão plotados em um gráfico com histogramas das probabilidades de ocorrência simulada e observada. Uma tabela (semelhante a um summary também será gerado com os resultados das comparações estatísticas).
Output: gráficos e summary dos resultados estatísticos.
A ideia da função vem da estruturação de comunidades herbáceo-arbustivas de restingas que estudo desde o Mestrado. Nestas comunidades, uma espécie de arbusto clonal se expande por grandes áreas e poucas espécies conseguem se estabelecer onde o arbusto ocorre. Penso então na lógica de competição entre as espécies, onde a co-ocorrência com a espécie arbustiva é pequena. Mas a função abrange qualquer tipo de padrão de co-ocorrência.
====== Plano B ======
Introdução: pensando na temática de estudos que avaliam efeitos alelopáticos de extratos contendo material vegetal (folha, casca, raízes) sobre o crescimento de plântulas. Observar o crescimento de plântulas submetidas a diferentes tipos de extratos e diferentes concentrações e comparar com o crescimento de plântulas do tratamento controle para avaliar o efeito dos extratos.
Entrada: tamanho total por plântula em diferentes tempos, nos tratamentos controle e extratos avaliados.
O que a função fará? Executa uma análise de variância de medidas repetidas e plota um gráfico com as curvas de crescimento em relação ao tempo.
Output: gráfico das curvas. Os resultados da anova podem ser chamados com summary.
====== Plano C ======
Introdução: ao preparar um lanche devemos escolher meticulosamente o que vamos comer para depois não sofrer com a balança depois! Mesmo assim, podemos nos programar para gastar as calorias ingeridas nos exercitando, ao ar livre ou área fechada, e com diferentes graus de dificuldade.
Entrada: um dataset contendo um data.frame com os ingredientes do lanche, com o conteúdo calórico de cada ingrediente e outro data.frame contendo uma lista de atividades físicas, a quantidade de calorias que essas atividades queimam por minuto e o grau de dificuldade serão utilizados.
O que a função fará? o dataset contendo estes dados será carregado. A função terá um argumento onde são colocados os ingredientes do lanche. Em outro argumento será especificado se o exercício é ao ar livre ou área fechada. Um terceiro argumento especifica os níveis de dificuldade dos exercícios. A função somará as calorias dos ingredientes e calculará o tempo de atividade física equivalente à quantidade de calorias ingeridas.
Resultado (output): a lista de atividades, dentro dos parâmetros escolhidos, e o tempo necessário em cada uma delas para gastar a quantidade de calorias consumidas no lanche.
====== Comentários ======
Oi Poliana,
A primeira proposta esta bem apresentada e parece interessante. Vc pode usar o C score ou qualquer outro indice de co-0correncia como sua estatistica de interesse e fazer a simulacao de cenario nulo para inferir significancia dos valores. Defina brm ocenario nulo!. Note que as interassoes sao apenas inferidas a partir de uma associacao espacial, portanto o que tem é apenas co-occorrencias, e se sao significativas...poderia ser por outro fator (mesma preferencia de habitat). Deixe que a inferencia sobre interacao seja feita pelo usuario!
--- //[[adalardo@usp.br|Alexandre Adalardo de Oliveira]] 2013/03/26 13:19//
====== Trabalho Final ======
====== Página de Ajuda =====
co.occur package:nenhum R Documentation
Avalia coocorrência entre uma espécie alvo e outras espécies da comunidade.
Description:
Calcula o c-score da comunidade, utilizando cheakboards par a par da espécie alvo de investigação e as outras
espécies da comunidade; simula comunidades onde as espécies são distribuídas aleatoriamente (mantendo apenas a
ocorrência da espécie alvo) e calcula o c-score da comunidade simulada. Retorna o p-valor e mostra graficamente
os resultados.
Usage:
co.occur(x, nsim=100)
Arguments:
x numérico matriz ou data.frame contendo apenas dados numéricos de presença e ausência.
nsim numérico número de simulações realizadas para calcular o c-score médio das comunidade
simuladas. O default deste parâmetro são 100 simulações.
Details:
A função é voltada à investigação de padrões de coocorrência em comunidades estruturadas pela presença de uma
espécie. O c-score é um valor médio dos checkerboards entre a espécie alvo e cada espécie que ocorre pelo menos
uma vez na comunidade, obtido de acordo com o cálculo de Stone e Roberts (1990).
O objeto deve conter espécies nas linhas e locais nas colunas. A espécie alvo, estruturadora da comunidade,
deve estar na primeira linha. A presença de NAs será verificada e estes serão substituídos por 0, representando
ausências. Qualquer valor diferente de zero no objeto de entrada será convertido em presença.
A comunidade simulada mantém apenas a ocorrência original da espécie alvo e rearranja aleatoriamente as
ocorrências das outras espécies, sem armazenar nenhum padrão de ocorrência da comunidade observada.
O p-valor retorna a razão entre o número de vezes que o c-score da comunidade simulada foi maior que o c-score
da comunidade observada pelo número total de simulações efetuadas (nsim).
Value:
Retorna uma lista com o c-score da comunidade observada, c-score médio das comunidades simuladas, p-valor e
histograma da frequência dos c-scores simulados com linhas marcando o c-score observado e intervalo de
confiança de 95% para os valores de c-score das comunidades simuladas.
Author(s):
Polliana Zocche de Souza (farbby@gmail.com)
Estudante de Doutorado em Ecologia – Universidade Estadual de Campinas.
References:
Stone, L. & Roberts, A. 1990. The checkerboard score and species distributions. Oecologia 85: 74-79.
Gotelli, N. J. & Graves, G. R. 1996. Null models in ecology. Smithsonian Institution Press, Washington & London.
Ecological Society of America. Ecological Archives. Gotelli, N. J. Help online sofwtare EcoSim 5.0.
http://www.esapubs.org/archive/ecol/E081/022/EcoSim%20Help/CoOccur/CoOccurrence.htm
See Also:
C.score() do pacote bipartite.
Examples:
#Data.frame compresença de NAs
comu1=data.frame(t(matrix(data=c(rep(c(0,1), each=10),sample(c(0,1, NA), 200, replace=TRUE)),ncol=11)))
co.occur(comu1)
#Matriz
comu2=matrix(data=c(rep(c(0,1), each=5), sample(c(0,1), 100, replace=TRUE)), ncol=10, byrow=TRUE)
co.occur(comu2)
# Comunidade com competição
comu3<- matrix(ncol=10, nrow=10, data=0, dimnames=list(paste("sp",1:10,sep=""),
paste("site",1:10,sep="")))
comu3[1,sample(1:10,5)] <- 1
for(i in 1:50){ comu3[sample(2:10,1),sample((1:10)[as.numeric(comu3[1,])!=1],1)] <- 1 }
co.occur(comu3)
===== Código da Função =====
# Função coocorrência de espécies
# Comunidade com a primeira linha sendo a espécie alvo
co.occur=function(x, nsim=100)
{ ########## Informes sobre a função
cat("\n\t Esta função analisa co-ocorrência entre uma espécie alvo e o restante da comunidade
\n\t A espécie alvo deve estar na primeira linha
\n\t O objeto 'x' deve ser matriz ou data.frame formado por caracteres numéricos\n\n")
if(class(x)=="data.frame"|class(x)=="matrix") # Tipo de objeto operado pela função
{ ################## Manipulação dos NAs
if(sum(is.na(x))>1) # Se a soma de NAs for > 1
{
nas=sum(is.na(x)) # Número de NAs que serão trocados
cat("\t", nas ," NA foram substituídos por 0\n") # Mostra na tela qts NAs foram substituídos
x[is.na(x)]=0 # Trocar NAs por zero
x[x!=0]=1 # Tudo que não for 0 vira 1
x1=x
} else {
x[x!=0]=1 # Tudo que não for 0 vira 1
x1=x
}
} else { # Avisa que o objeto não é data.frame ou matriz
stop("O objeto não é um data.frame. Corrija esta condição") # Mensagem de erro
}
######################### C-score da Comunidade observada ####################
n.row=length(x1[,1]) # Total de linhas (espécies)
s=c() # Vetor que armazenará os resultados do for
for (i in 2:n.row) # S numero de locais em comum
{ # Cálculo do c-score par a par com a sp alvo (início)
s[i]=sum((x1[1,]==1)&(x1[i,]==1)) # Soma dos locais onde as duas espécies estão presentes
}
ri=sum(x1[1,]==1) # Soma das presenças para a sp i
rj=c() # Vetor que armazenará as somas das presenças das spp rj
for(i in 2:n.row)
{
rj[i]=sum(x1[i,]==1) # Soma das presenças por espécie para todas espécies da comunidade
}
c.score = (ri - s)*(rj - s) # C-score par a par com a espécie alvo
c.score=round(mean(c.score[-1]),1)# Retirando o 1o valor (NA) e calculando o C-score da comunidade
###################### C-score da comunidade simulada #####################
c.score.nsim=c()
for(j in 1:nsim)
{
sp.alvo=x1[1,] # Vetor da espécie alvo
com.sim=data.frame(t(apply(x1[-1,], 1, sample))) # Comunidade sem a espécie alvo
n.row=length(com.sim[,1]) # Total de linhas (espécies)
s=c() # Vetor que armazenará os resultados do for de s
for (i in 1:n.row) # Calcula o número de locais em comum de ri com cada rj
{
s[i]=sum((sp.alvo==1)&(com.sim[i,]==1)) # Soma locais onde as duas spp estão presentes
} # Calcula o número de locais em comum de ri com cada rj
ri=sum(sp.alvo==1) # Soma das presenças para a sp i
rj=c() # Vetor que armazenará as somas das presenças das spp rj
for(i in 1:n.row) # Calcula o número de presenças de cada rj
{
rj[i]=sum(com.sim[i,]==1) # Soma das presenças por rj para todas espécies da comunidade
} # Calcula o número de presenças de cada rj
score.sim=(ri - s)*(rj - s) # C-score par a par com a espécie alvo
c.score.nsim[j]=mean(score.sim) # Vetor que guarda os c-scores simulados "nsim" vezes
}
c.score.super=c.score.nsim # Vetor igual para calcular o p-valor
c.score.mean.sim=round(mean(c.score.nsim),1) # C-score médio simulado arredondado para 1 casa
############## p-valor ###########################
soma.c.score.super=sum(c.score.super= expected) = 1 \n p(observed <= expected) = 0\n\n") # Mensagem explicando o p
############# Gráfico #############################
par(mar=c(5,4,3,2))
hist=hist(c.score.nsim, main="", col="grey", xlab="C-score \n Comunidade simulada",
ylab="Frequência") #Histograma de frequência dos c-scores das comunidades simuladas
abline(v=c.score, col="blue") # C-score observado
abline(v=(quantile(c.score.nsim, probs=c(0.025,0.975))), col="red") #Intervalo confiança C-score da comunidade simulada
legend("topright", legend=c(paste("Observado \n",round(c.score,1)), "I.C. Simulado"), bty="n",
pch=15, col=c("blue", "red"))
############# Resultados ##########################
resultados=list(c.score,c.score.mean.sim, p.valor) # Resultados que retornarão para o usuário
names(resultados)=c("C-score da comunidade observada", "C-score da comunidade simulada","p-valor")
return(resultados) # Comando que retorna resultados
}
===== Arquivo da Função =====
{{:bie5782:01_curso_atual:alunos:trabalho_final:fabrbby:co.occur.r|}}