Traduções desta página:

Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2013:alunos:trabalho_final:vanderson.sousa:start

Vanderson Cristiano

perfio_disciplina.jpg

Vida 1: Mestrando em Ciências Biológicas pelo Depto de Ecologia. Projeto: Riqueza, abundância relativa e densidade de ninhos de meliponíneos (Apidae, Meliponini) em duas distintas áreas naturais do Parque Estadual das Fontes do Ipiranga , São Paulo.

Exercícios

Trabalho Final: Proposta Inicial e alternativas

Plano A – Hora de morar, o que mais pesa: a casa ou a vizinhança? Matriz de distancia de ninhos de abelhas sem ferrão

Para essa disciplina, pretendo fazer uma matriz de distancia entre os ninhos de meliponíneos encontrados em uma unidade de conservação. Será especificada a espécie de meliponíneo detentora de cada ninho. Pretende-se aplicar funções para verificar se há ou não diferenças nas distancias entre os ninhos de cada (variável) espécies quando comparadas com ninhos de outras distintas espécies e com os ninhos da mesma espécie. Outra possibilidade é verificar se a densidade de ninhos e a riqueza de espécies de ninhos estão relacionadas/correlacionadas com os distintos fragmentos. Estes mesmos apresentam dois atributos: a) tipo de vegetação (área secundária inicial e área secundária tardio, em suma, menor e maior oferta de substratos para nidificação, respectivamente) e b) tamanho dos fragmentos (áreas grandes e pequenas).

Plano B – Estipulando uma taxa mínima de alimento que garante a harmonia conforme o grau de parentesco

Pretendo verificar a interação de colônias de abelhas sem-ferrão conforme o grau de parentesco e diferentes disponibilidades de recursos. Serão realizados experimentos por pares de colônias (variável A):

A1 -Colônias com alto grau de parentesco genético@ (colônias irmãs) A2- Colônias com médio grau de parentesco genético (colônias da mesma região) A3- Colônias com baixo grau de parentesco genético (colônias de outra região). @pode-se fazer um estudo genético para corroborar esse grau de parentesco

Será feita uma réplica para cada par de colônias, com isso podemos controlar a disponibilidade de recursos (variável B):

B1- pouca oferta de recursos @@ B2 – média oferta de recursos B2 – muita oferta de recursos @@entende-se por recursos os básicos: pólen, resina, néctar, etc.

As colônias ficaram pareadas e o espaço de saída delas será em um ambiente fechado (tipo uma caixa controlada) para a anotação da taxa de agressividade (verificado através de brigas, pelo recurso, ataques despropositais, etc)

Pretente-se relacionar os diferentes graus de parentesco com os (possíveis) diferentes números de ataques entre as colônias, conforme a disponibilidade de recursos. Ou, criar uma função que especifique a partir da quantidade de alimento disponível o possível número de conflitos/ataques entre as abelhas, conforme o parentesco. Por exemplo, haverá muitos ataques entre as abelhas quando houver menos que 10Nrecursos para as colônias com alto grau de parentesco, menos que 15Nrecursos para médio grau e menos que 20Nrecursos para baixo grau de parentesco.

Plano C - Questionário – Perfil Estudantil Eleitoral

Objetivo: fazer uma função que atribua valores (soma-se números) a três distintas variáveis, conforme o preenchimento de determinados “caracteres”/respostas em cada uma das linhas de uma coluna.

O usuário abre essa função e tabula os dados advindos de um questionário. Por exemplo, faríamos um questionário com 7 à 10 perguntas, ou n perguntas.

“Exemplo/Pergunta 1”

Quais dessas opiniões você mais concorda em relação ao uso exclusivo dos circulares apenas para alunos e funcionários regularizados?

a) Concordo com o BUSP, o dinheiro economizado pode ir para melhorar outras infra-estruturas da USP

b) A Universidade é pública e está em um espaço público, todos têm o direito de ir e vir!

c) Precisa haver uma discussão com toda a comunidade sobre isso

De um jeito prático, pensei em ir preenchendo todas as linhas com as respostas a, b e c. Pedir para buscar cada resposta (a, por exemplo) e contar. Criar uma função que atribua o item que tiver mais somatórias à determinada Chapa Eleitoral/perfil eleitoreiro. Por exemplo, se tiver mais itens “a” como resposta aparece um resultado final dizendo que o perfil é “Chapa Reação - Direita”e assim por diante.

Outra forma, não sei se dá para fazer com o R, preciso estudar mais, é a seguinte:

Cria-se um comando para cada linha da coluna Resposta dessa tabela/data.frame do tipo:

“Resposta$Questão1=a soma-se n=1 à “Chapa Reação –Direita”

“Resposta$Questão1=b soma-se n=1 à “ Chapa 27 de Outubro –Esquerda”

“Resposta$Questão1=c soma-se n=1 à “Chapa Não Vou me Adaptar – Situação/Centro”.

Com isso, no questionário, os teores das respostas a serem escolhidas ficam variados nas diferentes perguntas. Na linha seguinte, a resposta item “a” não se atribuiria mais um valor n=1 para ser somado na “Chapa Reação-Direita”, mas sim a outra variável/”Chapa”.

Comentários das propostas (Leo)

Apesar de interessantes e factíveis, acho que as propostas poderiam ser mais generalizadas. Por exemplo, a proposta A tem como função realizar operações usando matrizes de distâncias, certo? Isto certamente se aplica a outros problemas biológicos.

Alguns pontos não ficaram claros. Uma sugestão é que sejam explicitadas as entradas e saídas das funções, e seus formatos (classe de vetor ou dados - lista, data-frame, matriz, etc.). Isto te ajudará na construção da função também. Um bom guia é pensar no “help” da função. Geralmente o que a função faz pode ser descrito e resumido em uma ou duas linhas gerais (veja exemplos nas funções existentes no R).

É interessante também decompôr a função proposta em tarefas menores. Por exemplo, uma funçao poderia realizar as seguintes tarefas (pensando em sua proposta A): calcular as distâncias dois a dois a partir das coordenadas geográficas dos pontos (p.ex. ninhos), gerar as médias das distâncias dos diferentes pontos agrupados em classes (p. ex. espécies, fragmento, vegetação), comparar estas distâncias médias usando gráficos e/ou testes estatíticos. Veja que neste caso nem é preciso gerar uma matriz de distâncias. Assim podemos avaliar melhor qual o volume de trabalho que dará a construção da função, e se ela está bem dimensionada para o prazo estipulado.

Sempre é bom lembrar que a função não é uma análise por si, para isto existe o script. A função também é uma concatenação de códigos que pode conter outras funções, ciclos, filtros, operações lógicas, etc., mas ela traz uma tarefa que necessita ser repetida em diferentes contextos, que vai facilitar a vida do analista ecoonomizando seu tempo e trabalho de alguma forma.

Trabalho Final - Conclusão

Abaixo tem o trabalho final,função “agilizando”, além de uma função simples e acessória, função “fuso” como complementos.

Página de Ajuda

Agilizando package:nenhum R Documentation

Cálculo de novos dados, realização de ANOVA e distância das localidades.

Agilizando:

Calcula o número total , riqueza e densidade de ninhos das espécies, realiza uma análise de variância (ANOVA) e uma matriz de distância das localidades.

Descrição:

Calcula e oferece dados de saída para “numero total de espécies”, “riqueza de espécies” e “densidade de ninhos dessa espécie” a partir de dados brutos de campo para cada indivíduo.
Realiza ANOVA e retorna gráficos que representam a correlação de cada uma das variáveis isoladas com o tamanho do fragmento e uma matriz de distância eucladiana dos locais dos ninhos/morada dos indivíduos a partir das coordenadas geográficas.

Usage:

Agilizando(x)

Argumentos:

x: dataframe com 5 colunas que tenha:
1ª coluna- a espécie/ninho encontrado (identificacação da mesma)
2 ª coluna - a longitude em UTM da coordenada do local
3 ª coluna – a latitude em UTM da coordenada do local
4 ª coluna – o fragmento onde se encontra a espécie/ninho
5 ª coluna – o tamanho da área do fragmento

Detalhes:

A própria função, no decorrer do seu percurso, renomea os nomes das colunas para:
“Ninho”,“Long”,“Lat”,“Fragmento”,“Area”.

A matriz de distância é salva como um arquivo no diretório, podendo ser acessada.Outros dados tabmém são salvos em arquivos txt.

Valores:

A matriz de distância utiliza o método eucladiano.

Notas: a)Caso necessitar os dados das coordenadas para UTM, utilize os seguintes conversores:
http://splink.cria.org.br/conversor
http://home.hiwaay.net/~taylorc/toolbox/geography/geoutm.html

b)É preciso muitas saber o fuso para conversão.
Para facilitar utilize a função acessória “fuso()”, criada para facilitar a sua vida.
http://ecologia.ib.usp.br/bie5782/lib/exe/fetch.php?media=bie5782:01_curso_atual:alunos:trabalho_final:vanderson.sousa:fuso_funcao_acessoria.txt
De uma maneira mais trabalhosa é possível utilizar a seguinte fórmula:
f = 30 +/- dado/6
sendo que, f= número fuso; dado=longitude.
Para dados do Oeste subtraímos (-), para Leste somamos (+)

Exemplo:
Dado dado= 47º22’17” W
dado/ 6 = – 7,89 = – 7
f = 30 + dado= 30 + (– 7) = 23

Autor:

Vanderson Cristiano de Sousa vandersonsousa@gmail.com

Referencias
http://ecologia.ib.usp.br/bie5782/doku.php (apostilas e tutoriais)
Sobre a transformação do fuso:
http://www.ufrb.edu.br/joanito/index2.php?option=com_docman&task=doc_view&gid=68&Itemid=27
http://www.ltc.ufes.br/geomaticsee/Aula12_Geom%C3%A1tica_Cartografia%203.pdf


Veja também:

fuso() ## função acessória criada para a identificação do fuso


Exemplos

x = read.csv(“projeto.csv”, header=TRUE,sep=“;”,dec=“,”, as.is=TRUE)

Função (SCRIPT FINAL)

agilizando(x)

agilizando ← function(x)
{
cat(“\n”,“\t”,“OBS1: Os novos dados calculados, os resultados da Anova foram salvos no diretorio como Resultado_Anova.csv e Dados_Calculados.csv ”,“\t”,“\n”)
colnames(x)←c (“Ninho”,“Long”,“Lat”,“Fragmento”,“Area”)
x$Fragmento\leftarrowas.factor(x$Fragmento)
x$Ninho\leftarrowas.factor(x$Ninho)
x.local← table(x$Ninho,x$Fragmento)##Contando spp por local (fragmento) e selecionando uma localidade (fragmento)
x.local
total.spp=apply(x.local,2,sum)##calculando o total de individuos/ninhos
total.spp
##calcular o número de espécie por local
x.spplocal=x.local>0
riqueza=apply(x.spplocal,2,sum)## calculando a riqueza
riqueza
##PEGANDO OS TAMANHOS DOS FRAGMETNOS PARA CALCULAR A DENSIDADE
tamanho.fragmentos← aggregate(x=x$Area, by=list(x$Fragmento), FUN=mean)
Area.ha←c(tamanho.fragmentos[,2]/10000)
dados.totais← data.frame(Area.ha,riqueza,total.spp)
dados.totais
colnames(dados.totais)←c(“Area.ha”,“Riqueza”,“Total”)
### agora sim calculando a densidade por fragmento e já transformando em ninhos por hectare
dados.totais$Densidade=(dados.totais$Total/dados.totais$Area.ha)
dados.totais
### plotando o grafico de dispersao e achando os coeficientesp por regressão linear
par(mfrow=c(2,2))
par(cex.axis=1.5,cex.lab=1.2, bty=“l”)
plot(dados.totais$Area.ha~dados.totais$Riqueza,xlab=“Riqueza spp.”, ylab=“Area ha”,main=“Riqueza pela Área”)
A1←lm(dados.totais$Area.ha~dados.totais$Riqueza)
abline(A1, col=“red”)
plot(dados.totais$Area.ha~dados.totais$Total,xlab=“N Indivíduos/NInhos Total”, ylab=“Area ha”,main=“N Indivíduos/Ninhos Total pela Área”)
A2←lm(dados.totais$Area.ha~dados.totais$Total)
abline(A2,col=“green”)
plot(dados.totais$Area.ha~dados.totais$Densidade,xlab=“Densidade”, ylab=“Area ha”,main=“Densidade pela Área”)
A3←lm(dados.totais$Area.ha~dados.totais$Densidade)
abline(A3,col=“blue”)
B1←lm(dados.totais$Area.ha~dados.totais$Riqueza+dados.totais$Total)
abline(B1)
anova(B1)
resultado1← anova(B1)
resultado2←dados.totais
write.csv2(resultado1, file=“Resultados_Anova.csv”)
write.csv2(resultado2, file=“Dados_Calculados.csv”)
matriz.a← matrix(NA,nrow=nrow(x),ncol=2)
matriz.a[,1]←as.numeric(x[,2])
matriz.a[,2]←as.numeric(x[,3])
row.names(matriz.a)← x[,1]
matriz.a #matrix com dados LONG e LAT em UTM
distancia←matrix(NA,nrow=nrow(matriz.a),ncol=ncol(matriz.a),dimnames=dimnames(matriz.a))
distancia[,1]← matriz.a[,1]
distancia[,2]← matriz.a[,2]
distancia
saida←dist(distancia) #Cálculo da matriz de distancia
saida
resultado3←as.matrix(saida)
write.csv2(resultado3, file=“Matriz_Distancia.csv”)
cat(“\t”,“\n”,“\t”,“OBS2: Para visualizar abra a matriz de distancia que foi salva no seu diretorio como Matriz_Distancia.csv”,“\t”,“\n”,“\n”)
return (resultado1)
}

help_agilizando.txt

agilizando.txt

projeto.txt

help_fuso_funcao_acessoria.txt

fuso_funcao_acessoria.txt

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