Traduções desta página:

Ferramentas do usuário

Ferramentas do site


05_curso_antigo:alunos2012:alunos:trabalho_final:andremxlima:start

André M X Lima

Exercícios


– Exercício 1 –

exercicio_1_-_andre_mxl.r

– Exercício 2 –

exercicio_2_-_andre_mxl.r

– Exercício 3 –

exercicio_3_-_andre_mxl.r

– Exercício 4 ) –

exercicio_4_-_andre_mxl_final.r

– Exercício 5 –

exercicio_5_-_andre_mxl.r

– Exercício 6 –

exercicio_6_-_andre_mxl_-_f.r

– Exercício 7 –

exercicio_7_-_andre_mxl_-_f.r


– Exercício 9 –

exercicio_9_-_andre_mxl_-_f.r




Proposta para avaliação / Apresentação do trabalho final

8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O 8-O


fudeu.jpg

Plano A


Animais que exibem na natureza padrões de locomoção ou de visualização que indisponibilizam a obtenção de parâmetros populacionais importantes – como, por exemplo, dados sobre diversas classes etárias – tornam mais difícil a concepção de abordagens populacionais mais amplas. Neste contexto pode-se recorrer à modelagem de ciclos parciais de vida, que buscam sanar a ausência de alguns parâmetros. Uma abordagem simplificada pode ser calculada com o uso da seguinte equação (Stahl e Oli 2006);

formula.gif

para se obter a taxa de crescimento populacional ( λ ) baseada em alguns parâmetros populacionais como Fecundidade, Sobrevivência e idade reprodutiva. Com base nesta equação, vou criar uma função que vai calcular o lambda ( λ ) e a respectiva taxa de crescimento intrínseco ( r ) para um vetor (uma população) ou tabela (várias pop. ou spp.) que contenha os demais dados da equação. Os argumentos podem atribuir valores fixos a cada um dos componentes. Em princípio acho que ela pode retornar ambos os valores em uma tabela…


referencia_stahl_e_oli_2006.gif


Resultado


Função “lambda” –>lambda.r


 lambda=function(x, nomes=x[,1], Pa=x[,2], Pj=x[,3], m=x[,4], save=FALSE|TRUE)
{
  ##### original equation:  lb^(alfa+1)-((lb^alfa)*(Pa))-(Pj^(alfa-1)*F*lb)+(Pj^(alfa-1)*F*Pa)-Pj^(alfa)*F=0
  x=as.data.frame(x)
  
  if(save==FALSE)
  {
    F=m*Pj
    delta=(Pa+F)^2-(4*((Pj^(1)*F*Pa)-Pj^(2)*F))
    x1=(-(Pa-F)-sqrt(delta))/2
    x2=(-(Pa-F)+sqrt(delta))/2
    lambda=abs(x1)+abs(x2)
    r=log(lambda, exp(1))
    cat("\t The dataframe was not saved \t\n\t\t\t")
    cat("\n\t")
    return(data.frame(nomes, Pa, Pj, m, lambda, r))
  }
  if(save==TRUE)
  {
    F=m*Pj
    delta=(Pa+F)^2-(4*((Pj^(1)*F*Pa)-Pj^(2)*F))
    x1=(-(Pa-F)-sqrt(delta))/2
    x2=(-(Pa-F)+sqrt(delta))/2
    lambda=abs(x1)+abs(x2)
    r=log(lambda, exp(1))
    result=data.frame(nomes, Pa, Pj, m, lambda, r)
    cat("\t The dataframe was saved as an object (result) in the file -- lambda result.RData -- in your current directory \t")
    return(save(result, file="lambda result.RData"))
  }
}

###for test

nomes=c("C.melanops","M.gularis","T.caerulescens","D.mentalis","P.nudicollis")
Pa=c(0.44, 0.5, 0.6, 0.8, 0.92)
Pj=Pa/1.5
m=c(0.4, 0.6, 0.8, 1, 0.3)
(x=data.frame(nomes, Pa, Pj, m))
lambda(x, save=FALSE)
lambda(x, Pj=0.5, save=TRUE)
lambda(x, Pj=0.5, save=FALSE)



HELP for lambda –> funcao_lambda.txt

 lambda {formula}										R Documentation


Function to calculate population growth rates



Description:

	~~ The function returns the value for the assymptotic growth rate (lambda) and intrinsec population growth rate (r) from given values following a partial life-cicle model (Oli and Zinner 2001, Stahl and Oli 2006), which in this particular case has the assumption that every individual reachs maturity with one year after the individual had born.


Usage:

	lambda=function(x, nomes=x[,1], Pa=x[,2], Pj=x[,3], m=x[,4], save=FALSE|TRUE)
	

Arguments:

 	x 	- an object with the name of the species, if you will set the values for all the arguments, or a dataframe which columns must follow the order: nomes=x[,1], Pa=x[,2], Pj=x[,3], m=x[,4];
	Pa	- the survival probability for adults;
	Pj	- the survival probability for juveniles;
	m	- the fecundity, as rate of female produced per female monitored in one season;
	save	- the function automatically save the result as a dataframe object in a file .RData (save=TRUE); to show the dataframe in the console set save=FALSE.


Value:

     lambda calculates the value of assymptotic growth rate (lambda, λ) and the intrinsec population growth rate (r). If values of lambda are close to 1 and r close to 0, the population seems as stable (λ ≈ 1, r ≈ 0), 



Details:

	##### original equation:  λ^(alfa+1)-((λ^alfa)*(Pa))-(Pj^(alfa-1)*F*λ)+(Pj^(alfa-1)*F*Pa)-Pj^(alfa)*F=0   (Stahl and Oli 2006)

	where alfa is the age of maturity (here, alfa=1).


Warning:

	I do not take any responsability on the results if you set crazy numbers for modelling.


Author(s):

     André M. X. Lima (versão:1.2012)

References:

    - Oli, Madan K., and Bertram Zinner. 2001. Partial life-cycle analysis: a model for birth-pulse populations. Ecology 82:1180–1190
    - Stahl, Justyn T. and Oli, Madan K. 2006. Relative importance of avian life-history variables to population growth rate. Ecological Modelling 198:23-39.


Example:

##checking lambda for a single population

x="name of the species"
lambda(x, Pa=0.78, Pj=0.6, m=1.2, save=FALSE)


##checking for several populations or species

nomes=c("C.melanops","M.gularis","T.caerulescens","D.mentalis","P.nudicollis")
Pa=c(0.44, 0.5, 0.6, 0.8, 0.92)
Pj=Pa/1.5
m=c(0.4, 0.6, 0.8, 0.5, 0.3)
(x=data.frame(nomes, Pa, Pj, m))

lambda(x, save=FALSE)
lambda(x, Pj=0.5, save=TRUE)
lambda(x, Pj=0.5, save=FALSE)
 

Plano B

Função para converter dados brutos em variáveis

O objetivo é criar uma função que converta tabelas de dados de observações iniciais em tabela com resumo de variáveis, úteis para análises exploratórias e de significância. Por exemplo, que busque em uma tabela de entrada de dados as colunas com diferentes tratamentos e medidas de interesse indicadas, e as insira em uma tabela com colunas para os respectivos valores de variáveis como N, média, variância, desvio e erro padrão. Até que ponto será possível incrementar esta função, como gerar análises de significância ou gráficos exploratórios em uma função conjunta, é algo que acredito ser dependente do restante das aulas para poder planejar (pra não dizer da minha habilidade) .

Comentário

Olá Andre,

Ambas propostas precisam ser melhor trabalhadas, estão muito vagas. Fica dificil avaliar a viabilidade delas. Minha sugestão é refletir sobre a tarefa a ser realizada, pense em algo que vc. já tenha o domínio teórico (esse não é o objetivo do curso) e produza um pseudocodigo, uma descrição de cada passo da função proposta, tipo:

  1. recebe um data frame com variáveis na coluna
  2. produz um sumário de cada uma dessa variáveis e guarda parte dales.. (media, quantils)

Quanto ao teste de hipótese, acho dificil automatizar. É preciso uma clara para fazê-lo e dificilmente a mesma pergunta é aplicável para todas as variáveis. Até o tipo de resultado que ela vai soltar. Vc. disse que prefere pensar no resultado primeiro. Pode ser! Pense no que a função vai retornar, depois no objeto que vai entrar, em seguida construa os passos.

Alexandre Adalardo de Oliveira 2012/04/03 20:41


=== Ok! E agora?

André Magnani Xavier de Lima 2012/04/06 17:33

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