Í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
doutorando em Ecologia, Instituto de Biociências - USP
Estou cursando doutorado no Programa de Pós-Graduação em Ecologia - IB, e trabalho na Secretaria do Meio Ambiente do estado. Meu interesse em pesquisa gira em torno da interface entre ciência ecológica e políticas públicas ambientais, com foco em restauração de ecossistemas e ecologia da paisagem. Tenho interesse em entender os drivers locais e de paisagem para o sucesso da restauração ecológica, bem como em compreender como seus benefícios podem ser otimizados na escala da paisagem.
Para acessar meus exercícios resolvidos, clique em: Exercicios
Calcular o número de vizinhos em um raio determinado a partir de múltiplos pontos permite inúmeras aplicações nas ciências biológicas.
No campo da restauração ecológica, no qual atuo, um sítio degradado (local) tem probabilidades mais altas de expressão de processos de regeneração natural quanto maiores forem as fontes de propágulos disponíveis (por exemplo, árvores nativas em uma paisagem dominadas por pasto). Assim, contabilizar o número de árvores em torno de um sítio em restauração, e a influência que este número pode ter na retomada de processos ecológicos importantes para a auto-sustentabilidade do ecossistema, pode ser uma ferramenta importante de análise e testes de hipóteses.
No entanto, diversos outros usos são possíveis. Para encontrar pontos com maiores chances de avistamento de uma espécie de ave que consome os frutos de determinada espécie de árvore, poderíamos selecionar locais candidatos a realização de ponto focal, e aplicando esta função poderíamos encontrar qual deles possui mais indivíduos da espécie de árvore em determinado raio de alcance.
Mesmo fora das ciências biológicas, podemos imaginar inúmeros outros usos. Por exemplo, alguém que queira se mudar e busque morar em um bairro arborizado, com uma base de dados das árvores urbanas e suas coordenadas poderia aplicar esta função a uma lista de casas potenciais, verificando qual delas tem mais árvores por perto. O mesmo poderia ser feito trocando-se as árvores por serviços úteis, na análise de proximidade.
A função irá ranquear locais (pontos) em ordem decrescente com relação ao número de vizinhos localizados a determinado raio de distância de cada local. O croqui com a distribuição espacial dos locais ranqueados e do conjunto de vizinhos será o produto colateral da função.
vizinhos(locais, vizi, raio, min.vizi, croqui)
O Brasil possui uma importante legislação que prevê a proteção e restauração da vegetação nativa, a Lei 12.651/2012, também conhecida como Novo Código Florestal. Esta lei prevê que determinadas áreas de preservação nos imóveis rurais, marcadamente as APPs (Áreas de Presenvação Permanente) e RLs (Reservas Legais) devem ser mantidas com vegetação nativa e, caso esta vegetaçnao esteja ausente, a vegetação deve ser restaurada. No entando, a lei federal não detalha os parâmetros que devem ser observados para considerar a vegetação restaurada, ficando tal regulamentação a cargo dos estados. O primeiro estado a regulamentar estes parâmetros foi São Paulo, que estipulou três indicadores ecológicos, que nada mais são que variáveis resposta que devem ser medidas em campo, por meio de metodologia pré-estabelecida, para verificar se os projetos de restauração atendem aos resultados ecológicos mínimos esperados, indicados por valores de referência (Chaves et al. 2015). Atualmente, outros estados como Rio de Janeiro, Mato Grosso e Distrito Federal já adotam sistemas semelhantes de monitoramento, e outros estão a caminho de adotar. Em todos estes casos, são os executores de projetos que medem as variáveis em campo, informando os resultados ao órgão ambiental. No entanto, o órgão precisa realizar auditorias em uma parte dos projetos.
A função descrita nesta proposta poderia auxiliar a tomada de decisão para a seleção de projetos a serem auditados, auxiliando a implementação das políticas ambientais em SP e outros estados brasileiros.
Apesar de ser esta a inspiração para a função, ela poderia ser utilizada por quaisquer interessados em comparar valores observados com valores esperados, para uma quantidade y de variáveis resposta em uma quantidade x de observações.
A função irá confrontar: a) valores aferidos em campo para um conjunto de variáveis resposta; com b) valores de referência esperados. Serão aferidos: c) o número de variáveis com valores abaixo do esperado (nível crítico), e d) o índice de criticidade para identificar as observações que ficaram mais aquém dos valores esperados. Os produtos da função serão o histograma com a distribuição dos valores encontrados para o índice de criticidade e a tabela ranqueando as observações segundo o índice.
monitora(dados, referencia, salva.hist, salva.tabela)
O índice de criticidade possui a seguinte fórmula preliminar:
Índice de criticidade = -(100^nc) + ∑ (vo-vr) nc = número de variáveis resposta com nível crítico (abaixo do esperado) vo = valores observados para cada variável resposta com nível crítico vr = valores de referência para a respectiva variável resposta com nível crítico
obs: Os elementos que sucedem o símbolo de somatório serão tantos quantas forem as colunas do argumento <dados>
Observações
—-
Olá Rafael. As suas duas propostas são factiveis e com um nível de dificuldade equilibrado. Eu particularmente acho a proposta A mais interessante e útil para outros usuários. Na proposta A, eu tomaria cuidado com o o nome do parâmetro (“plot”) que é o nome de uma função, isso vai confundir as pessoas e talvez até o R. Mas isso é um pequeno detalhe. Sobre os seus testes de premissa, talvez você possa deixar sua função mais robusta se você tentasse corrigir alguns erros. Por exemplo, se existe NA no data frame do plot ou do vizi, você remove os NAs e ao invés de dar erro dá um warning dizendo que rodou, mas removeu os NAs. O mesmo para numeric, vc a tenta força as informações para ser numeric e faz um teste lógico para saber se conseguiu transformar em número ou não. Se sim, dá um warning dizendo que teve que transformar, se não aí dá erro.
Acho que você não terá dificuldade em fazer essa função, mas vai te exigir um certo conhecimento sobre controle de fluxo. Seria legal se até a versão final da proposta você já conseguisse detalhar o que vai ter dentro dos for e if que você vai precisar. Mas claro, pensar nesses detalhes também faz parte do desenvolvimento da função em si. Portanto, fique a vontade para usar o tempo de fazer a função para pensar nesses detalhes.
Boa Sorte e taca-le pau!
— Bruno Travassos 2019/06/14 12:13
Oi Bruno,
Conforme havia indicado por email, concordei com sua avaliação de que a proposta A é mais interessante, e a selecionei para desenvolver o trabalho final.
Sendo assim, na versão final da proposta, incorporei suas sugestões:
locais
e vizi
min.vizi
na classe integer
Também incluí mensagens de aviso e refinei as premissas.
locais
e vizi
serem numéricos eu preferi manter como premissa, para que o usuário esteja consciente do que está fazendo, já que a conversão de arquivos de coordenadas que não estejam em escala absoluta (p.ex. geográficas), poderia retornar resultados errados.
No final achei que a função ficou menos engessada sem especificar um par(), de modo que o usuário pode inserir seus parâmetros gráficos favoritos antes de rodar a função.
Agradeço pelas sugestões!
Abraços,
Rafael
Para a entrega do trabalho final, decidi desenvolver a proposta A, cujo objetivo é ranquear locais quanto ao seu número de vizinhos a determinado raio, e secundariamente gerar um croqui para visualização gráfica.
Dessa forma, desenvolvi o código da função vizinhos
, disponível no link do item 1, bem como a respectiva página de ajuda, disponível no link do item 2: