Traduções desta página:

Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2013:alunos:trabalho_final:emartinezpa:start

eliana.jpg}

Eliana Martínez

Estudiante de Doctorado en Agroecología


Universidad Nacional de Colombia

execicios

Projeto

OPÇÃO 1 : Criar uma função que estime parâmetros das matrizes ecológicas (espécies em colunas, locais em linhas), para diferentes reordenamentos das linhas e com re-amostragem tipo Jacknife. Os arreglos das linhas corresponderiam a gradientes em variáveis ambientais. Dados de entrada: matriz ecológica e data frame com variáveis ambientais para cada local. Dados de saída: Parâmetros matriciais estimados com intervalos de confiança, para cada uma das matrizes reordenadas.

OPÇÃO 2 : Uma Organização tem um programa de educação musical para crianças em cinco cidades. Neste programa os estudantes podem entrar e sair do programa a qualquer época do ano. Para a Organização é importante estimar o percentual de frequência dos alunos, o progresso do aluno no programa (5 níveis), o número de alunos que entram cada mês (substituição) e taxa de abandono. Os dados de entrada são tabelas de dados com o nome e identificação de alunos e suas presenças nas aulas registradas com valores 0 e 1. Os dados são reportados mês a mês.

Comentários

Em geral, procure explicar melhor, para as duas opções, como a função processará os dados de entrada para gerar os dados de saída. Em relação à opção 1, quais são esses parâmetros das matrizes ecológicas? Os diferentes reordenamentos que vc se refere são correspondentes aos diferentes “areglos” das linhas em função dos gradientes ambientais? Como e porque as reamostragens do tipo Jacknife serão incluidas na sua função? Em relação à opção 2, explique melhor como serão os dados de saída. A opção 1 me pareceu mais interessante e exequível.

Ale

Oi Eliana, senti a mesma dificuldade que o Marcelo (comentários acima). As duas proposta são interessantes, mas acho que deve ficar na A que parece mais acabada. Deve definir claramente o que são os “parâmetros matriciais”.Pelo que entendi o intervalo de confiança será calculado pelo Jackknife… Use o procedimento bootstrap, que é mais utilizado nesse caso! — Alexandre Adalardo de Oliveira 2013/03/24 12:19

Proposta Vs.2

Oi Ale e Marcelo. Obrigada pelos comentários. Vou tentar aclarar um pouco mais a primeira proposta.

Na ecologia das comunidades os padrões de distribuição espacial de espécies em diferentes localidades (meta-comunidades) podem ser detectados mediante as analises da estrutura das matrizes de incidência das espécies. Algumas destas estruturas podem ser encontradas pelo acaso, mais em outros casos elas têm uma organização que emerge de processos ecológicos e evolutivos. Entre estas estruturas podem se identificar gradientes na composição das espécies, substituição de espécies (species turnover) e aninhamento (Leibold & Mikkelson 2002).

O aninhamento em meta-comunidades é encontrado quando os locais com a menor quantidade de espécies tendem a formar subconjuntos de aqueles locais que têm maior riqueza de espécies (Atmar & Patterson 1993). Entre as causas do ahinhamento tinham sido descritos alguns atributos das espécies, como sua abundância, limites de tolerância a fatores ambientais e requerimentos de área. Mais também se acredita que diferenças nas características dos habitat como o tamanho, o grãu de isolamento, a qualidade do habitat podem gerar padrões aninhados (Almeida-Neto et al. 2008).

Em consequência, quando as matrizes de incidência de espécies têm padrões aninhados, é frequente rearranjar as linhas da matriz (neste caso os locais) acordo com diferentes características biofísicas dos locais, como altitude, distancia geográfica, tamanho, produtividade, etc, com o objetivo de encontrar quais destes fatores podem explicar o padrão aninhado na composição de espécies. Além disso, normalmente os estúdios que avaliam composição de espécies em diferentes localidades não tem replicação. Por este motivo é conveniente fazer uma re-amostragem das matrizes, tirando uma observação (linha) por vez e calcular o aninhamento em estas novas matrizes. Este procedimento permite obter uma medida de erro na estimação do aninhamento, a partir do desvio padrão das diferencas entre matrizes ordenadas com e sim re-amostragem. Nesse jeito e posso obter os intervalos de confiança.

Este procedimento é totalmente iterativo por isso e conveniente criar uma função no R que permita tirar uma a uma as linhas das matrizes e calcular o aninhamento nas matrizes re-arranjadas e nas matrizes re-amostradas. Como resultado espero obter valores de aninhamento para a matriz original, e para cada uma das matrizes re-arranjadas com seus respectivos intervalos de confiança. A função também pode ter uma saída gráfica que facilite a identificação dos fatores que mais contribuem ao aninhamento. Para mais versatilidade o usuário pode definir o índice de aninhamento entre as opções que oferece o pacote vegam.

Almeida-Neto, M., Guimarães, P., Guimarães, P. R., Loyola, R. Ulrich, W. 2008. A consistent metric for nestedness analysis in ecological systems: reconciling concept and measurement. Oikos. Volume 117, Issue 8, pages 1227–1239.

Atmar, W. and Patterson, B. D. 1993. The measure of order and disorder in the distribution of species in fragmented habitat. Oecologia 96: 373-382.

Leibold, M. A. and G.M. Mikkelson. 2002. Coherence, species turnover, and boundary clumping: elements of meta-community structure. Oikos 97: 237–250, 2002.

Lewinsohn, T.M., Prado, P.I., Jordano, P., Bascompte, J. & Olesen, J. (2006) Structure in plant–animal interaction assemblages. Oikos, 113, 174–184.

Página de Ajuda / Help

 IC_NODF                    package:unknown                R Documentation

Função para estimar intervalos de confiança para o Indice de Aninhamento NODF em matrizes de incidência de espécies

Descripção

IC_NODF rearranja as linhas de uma matriz de incidência de espécies acordo com variaveis ambientais dos locais e calcula os
valores do indice de Aninhamento NODF. Porquanto os estúdios que avaliam composição de espécies em diferentes localidades não
sempre tem replicação, IC_NODF faz uma re-amostragem das matrizes. Para isto elimina uma observação (linha) por vez e calcula o 
aninhamento em estas novas matrizes.  Este procedimento permite obter os intervalos de confiança para o Índice de Aninhamento 
NODF, a partir do desvio padrão dos valores das diferencias entre os valores de NODF observados e os valores de NODF calculados 
por Jacknife.

A função reporta os valores de NODF con intervalos de confiança para as linhas (NODF.row), as colunas (NODF.col) e total 
(NODFtotal). Também cria um grafico em arquivo pdf com os valores meios de cada matriz ordenada por fatores ambientais con seus
 respectivos intervalos de confiança. Uma linha horizontal no gráfico indica o valor de máximo aninhamento dos dados originais. 
En esse jeito o usuario pode identificar aqueles fatores que mais contribuem ao aninhamento na composição de espécies.


Uso
IC_NODF (data, amb)

Argumentos

data é uma matriz de incidência de espécies (presência - ausência) com os locais nas linhas e as espécies nas colunas. 
amb é um data frame com variaveis ambientais nas colunas. Todas as colunas são  arranjados em modo decrescente (portanto o 
usuario previamente debe organizar seus dados de modo que façam sentido para avaliar o aninhamento). 

Valores

Retorna uma lista com tres data frames que correspondem aos valores de NODFrows, NODFcol y NODF total. Cada data frame tem três
 colunas: o valor de NODF para a matriz ordenada por cada fator ambiental, o limite inferior e o limite superior do intervalo de
 confiança do índice.
A função também retorna o grafico com valores meios do NODF +/_ os intervalos do confiança ao 95% .


Autora

Eliana Martínez Pachón
emartinezpa@unal.edu.co

Referências

Almeida-Neto, M., Guimarães, P., Guimarães, P. R., Loyola, R. Ulrich, W. 2008. A consistent metric for nestedness analysis in 
ecological systems: reconciling concept and measurement. Oikos. Volume 117, Issue 8, pages 1227–1239.

Atmar, W. and Patterson, B. D. 1993. The measure of order and disorder in the distribution of species in fragmented habitat. 
Oecologia 96: 373-382.

Leibold, M. A. and G.M. Mikkelson. 2002. Coherence, species turnover, and boundary clumping: elements of meta-community 
structure. Oikos 97: 237–250, 2002.

Lewinsohn, T.M., Prado, P.I., Jordano, P., Bascompte, J. & Olesen, J. (2006) Structure in plant–animal interaction assemblages. 
Oikos, 113, 174–184.



Exemplos

dados<-matrix((sample(c(rep(0,80),rep(1,120)))),10,20)
f1<-(rnorm(10,20,2.5))
f2<-(rnorm(10,80,3.0))
f3<-(rnorm(10,0.5,0.01))
amb1<-data.frame(f1,f2,f3)
IC_NODF(dados,amb1)
 

Minha Função

 IC_NODF<-function(x,amb)
{
cat("\n\t IC_NODF retorna valores do Índice de aninhamento NODF com intervalos de confiança ao 95%, calculados através de re-amostragem tipo Jacknife. \n\n")
library(vegan)
library(permute)
data=x
amb=amb
ncol.amb<-ncol(amb) # número de fatores ambientais
col.data<-dim(data)[2] # número de colunas da matriz ecológica (espécies)
row.data<-dim(data)[1] # número de linhas da matriz
names.3d<-paste(colnames(amb))# nomes da terceira dimensão das matrizes
resultados<-array(NA, dim=c(row.data,col.data, ncol.amb),dimnames=list(NULL, NULL, c(names.3d))) # objeto para salvar matrizes re-arrangeadas
for(i in 1:ncol.amb)
{
m.ordenada<-data[order(amb[,i],decreasing = TRUE),]
resultados[,,i]<-m.ordenada
}
##### CALCULO DE ANINHAMENTO PARA àS MATRIZES REARRANJADAS PELOS FATORES AMBIENTAIS
NODF<-matrix(NA, nrow=ncol.amb, ncol=3) # objeto para salvar resultados de aninhamento das matrizes re-arranjadas
colnames(NODF)<-c("NODFcolumns", "NODFrows", "NODFtotal")  #nomes das colunas
rownames(NODF)<-paste("F.", c(colnames(amb))) #nomes das linhas
for (i in 1:dim(resultados)[3])
{
NODF[i,]<-nestednodf(resultados[,,i],order=FALSE, weighted=FALSE)$statistic
}
###### RE-AMOSTRAGEM - Função que elimina una a una às linhas das matrizes e calcula o aninhamento de novo.
NODF.reamostragem<-array(NA, dim=c(row.data,3,ncol.amb), dimnames=list(NULL, c("NODFcolumns", "NODFrows", "NODFtotal"), c(names.3d)))
for(i in 1:ncol.amb)  
{
for (j in 1: row.data)
{
NODF.reamostragem[j,,i]<-nestednodf(resultados[-j,,i],order=FALSE, weighted=FALSE)$statistic
}
}
## Diferencias entre valores observados de NODFrows e NODFrows(Jacknife) elevadas ao quadrado
Obs_Nrows<-c(rep(NODF[,2],each=row.data)) # Construçao de um vetor com os valores observados de NODF
ObsNODFrows<-array(Obs_Nrows,dim=(c(row.data,1, ncol.amb))) 
Dif<-(NODF.reamostragem[,2,]-ObsNODFrows[,,])^2 #Calcula a diferencia entre os valores observados e os calculados por re-amostragem
###Calculando média quadrático, desvio padrão e intervalos de confiança
MC<-(colSums(Dif))/(row.data-1)
desvio.padrao<-sqrt(MC) #(Desvio padrão)
IC_NODFrows<-desvio.padrao*1.96  #(intervalos de confiança ao 95%)
inf1<-NODF[,2]- IC_NODFrows 
sup1<-NODF[,2]+ IC_NODFrows
NODF.rows<-data.frame(NODF[,2],inf1,sup1)
names(NODF.rows)<-c("NODFrows", "IC95inf", "IC95sup")
## Diferências entre valores observados de NODFcol e NODFcol(Jacknife) elevadas ao quadrado
Obs_Ncol<-c(rep(NODF[,1],each=row.data))
ObsNODFcol<-array(Obs_Ncol,dim=(c(row.data,1, ncol.amb)))
Dif2<-(NODF.reamostragem[,1,]-ObsNODFcol[,,])^2
###Calculando média quadrático, desvio padrão e intervalos de confiança
MC2<-(colSums(Dif2))/(row.data-1)
desvio.padrao2<-sqrt(MC2)
IC_NODFcol<-desvio.padrao2*1.96  #(intervalos de confiança ao 95%)
inf<-NODF[,1]- IC_NODFcol 
sup<-NODF[,1]+ IC_NODFcol
NODF.col<-data.frame(NODF[,1],inf,sup)
names(NODF.col)<-c("NODFcol", "IC95inf", "IC95sup")
## Diferências entre valores observados de NODFtotal e NODFtotal(Jacknife) elevadas ao quadrado
Obs_Ntotal<-c(rep(NODF[,3],each=row.data))
ObsNODFtotal<-array(Obs_Ntotal,dim=(c(row.data,1, ncol.amb)))
Dif3<-(NODF.reamostragem[,3,]-ObsNODFtotal[,,])^2
###Calculando média quadrático, desvio padrão e intervalos de confiança
MC3<-(colSums(Dif3))/(row.data-1)
desvio.padrao3<-sqrt(MC3)
IC_NODFtotal<-desvio.padrao3*1.96  #(intervalos de confiança ao 95%)
inf2<-NODF[,3]- IC_NODFtotal 
sup2<-NODF[,3]+ IC_NODFtotal
NODF.total<-data.frame(NODF[,3],inf,sup)
names(NODF.total)<-c("NODFcol", "IC95inf", "IC95sup")
#gRAFICOS
maxNODF.row<-nestednodf(data,order=TRUE, weighted=FALSE)$statistic[2]
maxNODF.col<-nestednodf(data,order=TRUE, weighted=FALSE)$statistic[1]
#GRAFICO NODFrow
pdf("NODFgraf.pdf")
par(mfrow=c(2,1), mar=c(4,4,1,1))
plot(NODF.rows$NODFrows, bty="l", type="n", xaxt="n", yaxt="n", xlab="", ylab="", ylim=c(0, 80), xlim=c(1,ncol.amb))
mtext(c(names.3d), cex=0.7, side = 1, line = 0.5,  at = c(1:ncol.amb), tcl=20, las=1)
text(7,80, "a", cex=0.8)
axis(1, at=c(1:ncol.amb), label=FALSE, tick=TRUE, cex=1)
axis(2, cex.axis=1, label=TRUE, cex.lab=1)
title(xlab="Factor", line=1.5, cex.lab=0.9)
title(ylab= "NODFrow", line=2.5,cex.lab=1)
points(NODF.rows$NODFrows, pch="*", cex=1.5)
abline(h=maxNODF.row, lty="dotted")#maximo valor de aninhamento dos dados originales.
for(i in 1:ncol.amb) {lines(c(i,i),c(NODF.rows$IC95sup[i], NODF.rows$NODFrows[i]),col=3)} 
for(i in 1:ncol.amb) {lines(c(i,i),c(NODF.rows$IC95inf[i], NODF.rows$NODFrows[i]),col=3)}
#GRAFICO NODFcol
plot(NODF.col$NODFcol, bty="l", type="n", xaxt="n", yaxt="n", xlab="", ylab="", ylim=c(0, 80), xlim=c(1,ncol.amb))
mtext(c(names.3d), cex=0.7, side = 1, line = 0.5,  at = c(1:ncol.amb), tcl=20, las=1)
text(7,80, "b", cex=0.8)
axis(1, at=c(1:ncol.amb), label=FALSE, tick=TRUE, cex=1)
axis(2, cex.axis=1, label=TRUE, cex.lab=1)
title(xlab="Factor", line=1.5, cex.lab=0.9)
title(ylab= "NODFcol", line=2.5,cex.lab=1)
points(NODF.col$NODFcol, pch="*", cex=1.5)
abline(h=maxNODF.col, lty="dotted")#maximo valor de aninhamento dos dados originales.
for(i in 1:ncol.amb) {lines(c(i,i),c(NODF.col$IC95sup[i], NODF.col$NODFcol[i]),col=3)} 
for(i in 1:ncol.amb) {lines(c(i,i),c(NODF.col$IC95inf[i], NODF.col$NODFcol[i]),col=3)}
dev.off()
respuesta<-list(maxNODF.row, NODF.rows, maxNODF.col, NODF.col, NODF.total)
names(respuesta)<-c("Maximo aninhamento por linhas", "NODFrows com IC95%", "Maximo aninhamento por colunas", "NODFcol com IC95%", "NODFtotal com IC95%")
cat("\n\t Gráficos de NODFrows e NODFcol disponíveis no arquivo NODFgraf.pdf em seu escritorio de trabalho. \n\n")
return(respuesta)
}

ic_nodfvf.r help_ic_nodfvf.r

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