Esta postagem esta relacionada a Estimativa da Mortalidade Total (Z) por Curvas de Captura - Composicao de Idades. A seguir esta o procedimento para o calculo de Z a partir da composicao de comprimentos das capturas. Para aplica-lo e necessario, alem dos dados de captura (C) por classe de comprimento (L), e necessario que indiquemos os parametros da curva de crescimento de von Bertalanffy (Linf, k e t0).O comprimento indicado (L1) e o limite inferior da classe. Os parametros de crescimento a serem utilizados serao Linf = 460 mm, k = 0,198 / ano e t0 = -0,271 / ano. L1 C 30 18 60 28 90 43 120 51 150 50 180 42 210 40 240 33 270 29 300 18 330 15 360 8 390 2 420 3 450 1 # importa e visualizadadosdat.CL <- read.delim("clipboard",dec=",")dat.CL# entra parametros da curva de crescimentoLinf <- 460k <- 0.198to <- -0.271# calcula o intervalo de classe utilizadoIC <- dat.CL[2,1]-dat.CL[1,1]IC# estima a idade de quando o especime entra na classe de comprimentoattach(dat.CL)dat.CL$t <- to-(1/k)*log(1-L1/Linf)# calcula o tempo que um especime fica na classe de comprimentodat.CL$dt <- (1/k)*log((Linf-L1)/(Linf-(L1+IC)))# estima a idade media do especime na classedat.CL$tm <- (to-(1/k)*log(1-L1/Linf)+to-(1/k)*log(1-(L1+IC)/Linf))/2# estima o log da captura por unidade de tempodat.CL$cdt <- log(C/dat.CL$dt)dat.CLdetach(dat.CL)# desenha o grafico e indica os pontos selecionadosattach(dat.CL)par(mar=c(5,5,4,2))plot(cdt~tm,xlab="idade (anos)",ylab=expression(log(C["L,L+1"] / Delta* t)),cex.lab=1.5,pch=19,col="blue",xlim=c(0,max(na.omit(tm))*1.1))# clique no grafico para selecionar os pontos inicial e final.# Depois de selecionar os dois pontos de um clique direito para sair.idn.CL<-identify(cdt~tm,plot=F)idn.CLdat.CLs <- dat.CL[c(idn.CL[1]:idn.CL[2]),]dat.CLspoints(dat.CLs$tm,dat.CLs$cdt,cex=1.5,col="red")detach(dat.CL)# ajusta o modelo linear para o calculo de Zattach(dat.CLs)lm.Zl <- lm(cdt~tm)summary(lm.Zl)lines(c(min(tm)-0.5,max(tm)+0.5), c(coef(lm.Zl)[1]+coef(lm.Zl)[2]*(min(tm)-0.5),coef(lm.Zl)[1]+coef(lm.Zl)[2]*(max(tm)+0.5)), col="red")detach(dat.CLs)# calcula Z, seus intervalos de confianca# Z = -b; % de individuos que morrem anualmente = 1-exp(-Z)Zl <- -coef(lm.Zl)[2]Zl-confint(lm.Zl)[2,]# Mortalidade expressa em porcentagem1-exp(-Zl)# Porcentagem de sobreviventes (S)exp(-Zl) E frequente termos a necessidade de verificar se as diferencas de uma variavel medida em diversos grupos sao significativas. Por exemplo, podemos querer testar a diferenca dos comprimentos de peixes capturados em diferentes locais ou da potencia do motor de embarcacoes de diferentes grupos identificados em um cluster.A seguir apresento uma sequencia basica para a realizacao da analise, incluindo testes a posteriori parametricos e nao parametricos. Para a comparacao multipla nao parametrica e utilizado o pacote npmc. Os dados utilizados no exemplo sao gerados no inicio da rotina. # gera dados GRP <- as.factor(rep(c("A","B","C","D"), c(30,50,40,20)))UA <- round(rnorm(30,360,75),1)UB <- round(rnorm(50,500,90),1)UC <- round(rnorm(40,150,30),1)UD <- round(rnorm(20,385,60),1)U <- c(UA,UB,UC,UD)dat.GRP <- data.frame(GRP,U)rm(GRP,UA,UB,UC,UD,U)# explora dados attach(dat.GRP)dat.GRPsummary(dat.GRP)aggregate(U,by = list(GRP=GRP), FUN = "length")aggregate(U,by = list(GRP=GRP), FUN = "min")aggregate(U,by = list(GRP=GRP), FUN = "max")aggregate(U,by = list(GRP=GRP), FUN = "mean")aggregate(U,by = list(GRP=GRP), FUN = "sd")aggregate(U,by = list(GRP=GRP), FUN = "median")boxplot(U~GRP,notch=T,at=rank(tapply(U,GRP, median)))# --- adaptado de Dalgaard 2008 Introductory Statistics with Rxbar <- tapply(U, GRP, mean)s <- tapply(U, GRP, sd)n <- tapply(U, GRP, length)sem <- s/sqrt(n)stripchart(U~GRP, method="jitter", jitter=0.05, pch=16, vert=T)arrows(1:length(levels(GRP)),xbar+sem,1:length(levels(GRP)),xbar-sem,angle=90,code=3,length=.1)lines(1:length(levels(GRP)),xbar,pch=4,type="b",cex=2)rm(xbar,s,n,sem)# ---# ANOVA e teste de comparacao multipla de Tukey aov.GRP<-aov(U~GRP)summary(aov.GRP)TukeyHSD(aov.GRP, ordered = TRUE)plot(TukeyHSD(aov.GRP, ordered = TRUE))# teste de KruskalWallis e teste de comparacao multipla nao parametrica kru.GRP<-kruskal.test(U~GRP)kru.GRPori.names<-names(dat.GRP)names(dat.GRP)<-c("class","var") # o pacote npmc requer que o nome da coluna que identifica o grupo seja class e a de valores varlibrary(npmc)npmc(dat.GRP)names(dat.GRP)<-ori.namesrm(ori.names)detach(dat.GRP) Em uma pescaria e importante determinar que especies sao alvo e quais podem ser