Ferramentas do usuário

Ferramentas do site


05_curso_antigo:r2014:alunos:trabalho_final:mpombo:start

servletrecuperafoto.jpeg

Maíra Pombo

Doutoranda em Oceanografia Biológica, no Laboratório Manejo, do DOB IOUSP, sob orientação do Prof. Dr. Alexander Turra. O projeto objetiva analisar a distribuição temporal e espacial do caranguejo Ocypode quadrata, em especial a relação entre os métodos direto e indireto usados para seu levantamento, a fim de observar como determinados parâmetros ambientais podem influenciá-la.

exercícios

Trabalho Final

Pretendo criar uma função que facilite a substituição de números/caracteres específicos por outros. Assim como há pra NA, mas para o usuário escolher o que ele quer substituir pelo que (usando a função matcharg()). Para isso o usuário irá inserir no lugar do “avatar” um vetor, matriz e/ou dataframe, e depois escolher os dois argumentos, o encontrado e o que o substituirá.

*Plano B Criar uma função “atalho” para a execução de regressões mútiplas usando o critério “double stopping”, proposto por Banchet (2008), e até onde eu sei ausente em qualquer pacote estatístico. No Boccard ele explica como fazer, o que seria base para o desenvolvimento dessa função.

Comentários:

Não entendi como a proposta A funcionaria. Pelo que eu entendi, ela substituiria um valor X por um valor Y em vetor/matriz/dataframe? Não é algo assim, para substituir o valor 0 pelo valor 85:

> (x <- matrix (round(rnorm(25, 0, 3)), ncol=5))
     [,1] [,2] [,3] [,4] [,5]
[1,]   -2    2   -2   -1   -2
[2,]   -3   -2   -2    8   -1
[3,]    0    2    4   -2    1
[4,]   -5    3    0   -5   -5
[5,]    0    0   -2   -1   -1
> x[x==0] <- 85
> x
     [,1] [,2] [,3] [,4] [,5]
[1,]   -2    2   -2   -1   -2
[2,]   -3   -2   -2    8   -1
[3,]   85    2    4   -2    1
[4,]   -5    3   85   -5   -5
[5,]   85   85   -2   -1   -1

A proposta B parece interessante, mas precisa ser mais desenvolvida: por favor explicite qual é o método de “double stopping”, qual seria a entrada e a saída da função, e forneça as referências completas ao Banchet e Boccard para que nós possamos procura-los.

—-André Chalom

Mais Comentários

Comentários Concordo com os comentários do Chalom. A principio o plano B é mais interessante, caso sinta-se confortável com os procedimentos descritos nas referências de Banchet e Boccard. De qq forma precisa desenvolver melhor a ideia antes de iniciar a construção da função. Veja algumas dicas de como estruturar a proposta que incluímos no wiki: http://ecologia.ib.usp.br/bie5782/doku.php?id=bie5782:01_curso_atual:alunos:trabalho_final:start#a_proposta
Aguardamos suas correções! Avise o Chalom quando terminar via email acima. — Alexandre Adalardo de Oliveira 2014/04/25 17:02

Contra-proposta

Segue uma terceira proposta. Desisti da regressão múltipla doble stopping porque (1) descobri que já tem função pra isso e (2) não sei se eu teria a habilidade necessária.

Plano C - concluído

A ideia da função é ajudar a escolher valores centrais, quando necessário, para uma análise de progressão modal. Esses valores podem, por exemplo, ser usados posteriormente no ajuste de modelos de crescimento de indivíduos (seja o modelo qual for, Von Bertalanffy, Gompertz, Richards, etc). O mais comum é que os dados apresentem uma série temporal onde, para cada amostra, temos uma frequência de indivíduos em cada classe de comprimento (length-frequency). Supomos que, dentro de uma amostra, modas distintas representam coortes distintas. Assim, a progressão de uma moda ao longo do tempo diz o que está acontecendo com uma determinada coorte ao longo daquele período, ou seja, como o tamanho dos indivíduos está mudando ao longo do tempo. A ideia dessa função é respaldar esse processo, oferecendo como produto os valores dos vértices positivos da curva polinomial ajustada para cada amostra. Faça o download da função aqui

HELP

mode.len {stats}

Best fitted values for multi-modal data

Description

mode.len returns the best fitted values, from polynomial adjustments, of the positive vertices of multimodal data.

Usage lenage(date,len)

Arguments

date an object of class “vector”. If not of type factor will be coerced to.

len an object of class “vector” with individuals size (weight, length)

Details

This function aims to facilitate the chioce of values to be used in a modal progression analysis. The polynomial degree will be based on the number of modes you choose to use for each sample, during the function. The vertices values are RAW, not ORTHOGONAL, so it is possible to use values directly to choose the best modal progressions.

Value

mode.len returns an object of class array, where the 3rd margin corresponds to each of your samples, and contain the values fitted from a polynomial model.

Example

beaver1

mode.len(beaver1$temp,beaver1$day)

Agora rodando...
mode.len<-function(date,len)#os argumentos são os vetores correspondes à identificação da amostra e à medida dos indivíduos, respectivamente. 
	{
	tab<-data.frame(date,len)#tab será o objeto que juntará os dois vetores de entrada.
	names(tab)<-c("date","len")#nomeando as colunas
	vx<-unique(tab$date)
	for(i in vx)#para que o n de histogramas feitos corresponda ao número de amostras (datas diferentes).
		{
		hist<-tab[grep(i,tab$date),]#seleciona as amostras de um unico mesmo período
		hist(hist$len,breaks=length(unique(tab$date)))#faz o histograma daquele período
		x<-readline(prompt="choose the number of modes for this sample: ")#a pessoa precisa decidir quantas modas ela acredita que aquele histograma está de fato representando 
		x<-as.integer(x)#fazer com que o texto inserido seja lido como número
		#agora preciso que: ele gere um novo conjunto, com a frequencia de cada classe (1 vetor) e as classes (outro vetor), então:	
		hist$len<-sort(hist$len)#para garantir 
		v1<-unique(hist$len)#vetor com as diferentes classes de tamanho
		v2<-tabulate(hist$len,nbins=length(v1))#vetor com a freq de indivíduos em cada classe
		lm<-lm(v2 ~ poly(v1,x+1,raw=TRUE))#formula polinomial, sendo o grau da equação é o x (n de modas escolhido) + 1, já que, para 1 moda, será um polinômia de grau 2, e assim por diante
		coefs<-lm$coefficients[-lm$coefficients<=0]#separa os valores de vértices positivos; 
		coefs<-coefs[2:(x+1)]#começa em 2 pq o primeiro valor de $coefficients é o intercepto.
		result<-array(coefs,dim=c(1,length(coefs),i))#agrupamento dos looping do for em forma de array.
		}
		return(result) #final função

	}#FIM!
05_curso_antigo/r2014/alunos/trabalho_final/mpombo/start.txt · Última modificação: 2020/08/12 06:04 (edição externa)