Buscar

(UFSC) Relatório ecopop I (R)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Ecologia de populações - R 
Primeiro relatório de aulas práticas 
Fabio Mitsuo Kimura 
 
Roteiro 3 - Aula introdutória parte 2 
# Criando um objeto chamado curupiras e adicionando valores 
curupiras <- c(50, 63, 71, 106, 79, 33, 42, 18, 21, 2) 
 
# Do ano 2001 a 2010 
ano <- 2001:2010 
 
# Contar o que tem em cada um 
length(curupiras) 
length(ano) 
 
# Abundância de curupiras ao longo do tempo 
plot (curupiras, ano, type=“b”) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A população de curupiras nesse período de 9 anos variou bastante, atingindo o pico em 2004 mas 
depois de 2005 passou a decrescer. 
 
# Criando um vetor „chuvas‟ com as condições climáticas 
chuvas <- c(rep("chuvosos", 4), rep("secos", 6)) 
 
# Transformando „chuvas‟ em fator 
chuvasf <- as.factor(chuvas) 
 
# Conferindo tipos de classe dos objetos 
class(ano) 
class(curupiras) 
class(chuvas) 
class(chuvasf) 
 
# Juntando os objetos em um único objeto 
tabela <- cbind(ano, curupiras, chuvas, chuvasf) 
 
# Verificando a classe da „tabela‟ 
class(tabela) 
# Tente identificar problemas 
Os números encontram-se entre parêntese, sendo convertidos em chr, além disso, chuvasf foi con-
vertido em número, porém, entendido pelo R como chr. 
 
# Juntando objetos com a função „data.frame‟ 
tabela2 <- data.frame(ano, curupiras, chuvas, chuvasf) 
 
# Usando str para ambos os objetos 
str(tabela) 
str(tabela2) 
 
# Identifique as diferenças 
Na tabela todos os itens do objeto foram convertidos em chr, enquanto que na tabela2 os itens dos 
objetos mantém o seu formato original. 
 
# Removendo os objetos criados, excetuando as tabelas 
rm(ano,curupiras,chuvas,chuvasf) 
 
 
ano <- 2001:2010 
 
# Contar o que tem em cada um 
length(curupiras) 
length(ano) 
 
# Elaborando o gráfico lado a lado 
par(mfrow=c(1, 2)) 
plot (curupiras ~ chuvas, data=tabela2, type="b", col="white", lwd=1, xlab="Chuvas", 
ylab="Abundância de curupiras") 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
De acordo com os gráficos, a população de curupiras cresce melhor em estações chuvosas, pois 
como os primeiros 4 anos são chuvosos e o restante são secos, isso coincide com o ano de observa-
ção, em que inicialmente a população aumentou (período chuvoso) e posteriormente, diminuiu 
(período seco), quase levanto a população à extinção. 
 
 
# Calculando a média dos valores de abundância em separado para meses chuvosos e secos 
mean(tabela2$curupiras[1:4]) # abundância de curupiras nos meses chuvosos 
mean(tabela2$curupiras[5:10]) # abundância de curupiras nos meses secos 
 
# Utilizando a função for 
for(i in 1:length(curupiras)){ 
 print(paste("No ano de", ano[i], "foram observados", curupiras[i], 
 "curupiras. E o valor de i agora é", i) ) 
} 
 
O for é utilizado para fazer o trabalho repetitivo, nesse caso, o i representaria o primeiro número 
guardado dentro do objeto, no caso do objeto „ano‟ e „curupiras‟. O “i in 1” indicaria que a conta-
gem estaria sendo feito de 1 em 1. 
 
 
 
 
 
 
Roteiro 4 - PA e PG 
# “Lendo” o arquivo gerado no excel 
objeto <- read.table("aritmeticaegeometricacsv.csv", header=TRUE,sep=";",dec=",") 
 
# Criando os gráficos 
plot(aritmetica ~ tempo, data=objeto, type="l") 
plot(geometrico ~ tempo, data=objeto, type="l") 
Apesar de ambos apresentarem o mesmo tempo e o mesmo número no início, o crescimento geo-
métrico é muito maior em relação ao aritmético. 
 
# Criando um objeto „aritmética‟ e uma função que crie 20 valores somando de 10 em 10 
aritmetica <- c(100, rep(NA, 19)) 
for(i in 2:length(aritmetica)) { 
 aritmetica[i] <- aritmetica[i-1] + 10} 
 
# Criando um objeto „geométrica‟ e uma função que crie 20 valores somando 10% 
geometrica <- c(100, rep(NA, 19)) 
for(i in 2:length(geometrica)) { 
 geometrica[i] <- (geometrica[i-1] * 0.1) + geometrica[i-1]} 
 
# Juntando ambos os objetos em uma matriz e criando um gráfico 
aaaaa <- cbind(aritmetica, geometrica) 
plot(aaaaa, type=“l”) 
 
 
 
 
O gráfico mostra a razão entre o objeto 
„aritmética‟ e „geométrica‟, onde é possí-
vel verificar com maior clareza a dife-
rença de um crescimento em PA e em 
PG. 
Roteiro 5 - Crescimento exponencial contínuo 
# Criando os comandos para gerar um gráfico com diferentes curvas de crescimento 
N0 <- 10 
tempo <- 0:50 
rr <- c(-0.03, -0.02, 0, 0.02, 0.03) 
Nr1 <- N0 * exp(rr[1] * tempo) 
Nr2 <- N0 * exp(rr[2] * tempo) 
Nr3 <- N0 * exp(rr[3] * tempo) 
Nr4 <- N0 * exp(rr[4] * tempo) 
Nr5 <- N0 * exp(rr[5] * tempo) 
NNs <- cbind(Nr1, Nr2, Nr3, Nr4, Nr5) 
 
# Gerando o gráfico 
matplot(tempo, NNs, type="l", lwd=2, ylab="Número de indivíduos") 
legend("topleft", title="Valores de r", legend=rr, lty=1:5, col=1:5, lwd=2) 
 
 
 
 
 
 
 
Quando o valor de r = 0, a 
população se mantém cons-
tante. Quando r < 0, a po- 
pulação diminui e r > 0 a po-
pulação aumenta. 
# Gerando o gráfico em escala logarítmica 
matplot(tempo, NNs, type="l", lwd=2, ylab="Número de indivíduos", log="y") 
legend("topleft", title="Valores de r", legend=rr, lty=1:5, col=1:5, lwd=2, cex=0.6) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Transformando o gráfico em escala logarítmica, as curvas se tornam uma reta. 
 
# Criando objetos para o estudo hipotético 
N02 <- c(10, 20, 30) 
t2 <- 0:5 
r2 <- 0.25 
N1 <- N02[1] * exp(r2 * t2) 
N2 <- N02[2] * exp(r2 * t2) 
N3 <- N02[3] * exp(r2 * t2) 
NNs2 <- cbind(N1, N2, N3) 
 
# Elaborando o gráfico 
matplot(t2, NNs2, type="l", lwd=2, xlab="tempo", ylab="Tamanho populacional") 
legend("topleft", title="Valores de N0", legend=N02, lty=1:3, col=1:3, lwd=2, cex=0.6) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Em todos a curva está crescendo, mas o valor é maior para aqueles cuja população apresentava 
tamanho maior. 
 
 
# Gerando o mesmo gráfico em escala logarítmica 
matplot(t2, NNs2, type="l", lwd=2, xlab="tempo", ylab="Tamanho populacional", log="y") 
legend("topleft", title="Valores de N0", legend=N02, lty=1:3, col=1:3, lwd=2, cex=0.6) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A mudança de gráfico apenas altera a forma da linha, que passa a ser uma reta 
 
# Após os cinco anos, a população que iniciou com 30 indivíduos atingiu de fato 60 indivíduos. 
# Decida se houve algum problema no andamento da reintrodução dessa subpopulação. 
Sim, apresentou problema pois deveria ter alcançado pelo menos 100 indivíduos na população. 
 
# Montando os objetos para wolffia e besouro 
# Estimando as taxas de crescimento 
r.wolffia <- log(2) / 30 
r.besouro <- log(2) / 6.9 
 
# Convertendo a taxa para indivíduo/dia para wolffia 
r.wolffia <- (log(2) / 30) * 24 
 
# Criando objetos para montar o gráfico 
N0 <- 10 
tempo <- 0:100 
N.wolffia <- N0 * exp(r.wolffia * tempo) 
N.besouro <- N0 * exp(r.besouro * tempo) 
NNs <- cbind(N.wolffia, N.besouro) 
 
# Elaborando o gráfico 
matplot(tempo, NNs, type="l", lwd=2, log="y", xlab="Tempo(dias)", ylab="Tamanho populacio-
nal") 
legend("topleft", title="Espécies", legend =c("Wolffia", "besouro"), lty=1:2, col=1:2, lwd=2, 
cex=0.6) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Gráfico relacionando o tamanho populacional de wolffia e besouro no decorrer dos dias, observa-
se que wolffia cresce a uma taxa muito mais rápida em relação ao besouro. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Roteiro 6 - Crescimento exponencial discreto 
# Criando objetos para o exercício do jardim 
ano <- 2016:2020 
daninha <- c(1, 3, 9, 27, 81) 
Rs <- daninha[2:5] / daninha[1:4] # lambda 
Rs 
3 3 3 3 # Valor de lambda 
 
# Gráfico 
plot (ano, daninha, type="b", lty=2) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Como é crescimento discreto e não se sabe ao certo a quantidade exata de indivíduos, optou-se por 
utilizar linha pontilhada. Percebe-se também que a população está aumentando. 
 
# Aumentando o tempo 
N0 <- 1 
lambda <- 3 
tempo <- 0:9 
daninha2025 <- lambda^tempo* N0 
ano2025 <- 2016:2025 
plot(daninha2025 ~ ano2025, type="b", lty=2, ylab ="Erva daninha", xlab="Tempo") 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A população de daninha está crescendo bastante, sendo necessário cuidar do jardim para evitar 
uma superpopulação dessa planta. 
# Criando objetos e função para o gráfico 
lambda <- c(1.05, 0.99, 0.75) 
N_0 = 20 
Nts1 <- c(N_0, rep(NA,9)) 
 
for(i in 2:length(Nts1)) { 
 Nts1[i] <- lambda[1] * Nts1[i-1] 
} 
 
Nts2 <- c(N_0, rep(NA,9)) 
for(i in 2:length(Nts2)) { 
 Nts2[i] <- lambda[2] * Nts2[i-1] 
} 
 
Nts3 <- c(N_0, rep(NA,9)) 
for(i in 2:length(Nts3)) { 
 Nts3[i] <- lambda[3] * Nts3[i-1] 
} 
 
# Juntando em um objeto e elaborando o gráfico 
Nts <- cbind(Nts1, Nts2, Nts3) 
matplot(tempo, Nts, type="b", lty=2, pch=1, ylab="Tamanho populacional") 
legend("bottomleft", title="Valores de lambda", legend=lambda, lty=2, pch=1, col=1:3, cex=0.6) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
O gráfico mostra que quanto maior o valor de lambda, mais a população cresce (no caso de L > 1). 
No entanto, se o lambda for menor que 1, a população decresce. 
 
# Aumentando o tempo para 20 anos 
Nts1 <- c(N_0, rep(NA,19)) 
Nts2 <- c(N_0, rep(NA,19)) 
Nts3 <- c(N_0, rep(NA,19)) 
tempo <- 0:19 
 
for(i in 2:length(Nts1)) { 
 Nts1[i] <- lambda[1] * Nts1[i-1] 
} 
 
 
for(i in 2:length(Nts2)) { 
 Nts2[i] <- lambda[2] * Nts2[i-1] 
} 
 
for(i in 2:length(Nts3)) { 
 Nts3[i] <- lambda[3] * Nts3[i-1] 
} 
 
 
Nts <- cbind(Nts1, Nts2, Nts3) 
matplot(tempo, Nts, type="b", lty=2, pch=1, ylab="Tamanho populacional") 
legend("topleft", title="Valores de lambda", legend=lambda, lty=2, pch=1, col=1:3, cex=0.6) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Com um tempo maior fica mais claro a direção da população para cada lambda, principalmente o 
de L = 0.99. 
Roteiro 7 - Variação ambiental 
# Criando os objetos 
N0 <- 20 
nrs <- 240 
r.medio <- 0.01 
r.variacao <- 0.05 
set.seed(20) 
rr <- rnorm(nrs, mean=r.medio, sd=r.variacao) 
N <- numeric(length(rr)) 
N[1] <- N0 
tempo <- 0:length(rr)/24 
ntempo <- length(rr)/24 
 
for(t in 2:(length(rr)+1)) { 
 N[t] <- N[t-1] + (rr[t] * N[t-1]) 
 plot(tempo[1:t], N[1:t], xlab="Tempo (dias)", ylab=“Tamanho populacional”, type="l", xlim=c
(0, ntempo)) 
 Sys.sleep(0.05) 
} 
legend("topleft", legend=paste('r= ', r.medio, 'var.r=', r.variacao), cex=0.8, bty="n") 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A população está crescendo, é possível analisar algumas flutuações maiores a partir do dia 7. 
 
# Alterando o valor do r.medio para -0.01 
r.medio <- -0.01 
rr <- rnorm(nrs, mean=r.medio, sd=r.variacao) 
for(t in 2:(length(rr)+1)) { 
 N[t] <- N[t-1] + (rr[t] * N[t-1]) 
 plot(tempo[1:t], N[1:t], xlab="Tempo (dias)", ylab="Tamanho Populacional", type="l", xlim=c(0, 
ntempo)) 
 Sys.sleep(0.05) 
} 
legend("bottomleft", legend=paste('r= ', r.medio, 'var.r=', r.variacao), cex=0.8, bty="n") 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Com um r negativo, o tamanho populacional continua variando, porém, tendendo a diminuir. 
 
# Alterando a variação para 0.5 e retornando o r para 0.01 
r.medio <- 0.01 
r.variacao <- 0.5 
rr <- rnorm(nrs, mean=r.medio, sd=r.variacao) 
for(t in 2:(length(rr)+1)) { 
 N[t] <- N[t-1] + (rr[t] * N[t-1]) 
 plot(tempo[1:t], N[1:t], xlab="Tempo (dias)", ylab="Tamanho Populacional", type="l", xlim=c(0, 
ntempo)) 
 Sys.sleep(0.05) 
} 
legend("topright", legend=paste('r= ', r.medio, 'var.r=', r.variacao), cex=0.8, bty="n") 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Aumentando o valor da variação, o tamanho populacional variou de maneira que esse tipo de grá-
fico não poderia existir, pois ou a população atinge 0 ou permanece com um número baixo. Nesse 
caso, a população chegou a um valor negativo. 
 
# Teste diferentes valores para ver o que acontece. Em todos os casos a população cresce ou de-
cresce conforme o esperado? 
Quanto maior a variação, maior é a imprevisibilidade do crescimento da população. Caso fosse 
descartado a variação, a população poderia aumentar ou diminuir dependendo do valor de r. 
# Que tipo de espécie "real" pode apresentar um crescimento similar? 
Wolffia 
 
# Importando dados dos pardais 
pardais <- read.table("pardais.csv", header=TRUE, sep=";") 
 
# Elaborando o gráfico 
plot(Contagem ~ Ano, data=pardais, type="b", lty=2) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Número de pardais no decorrer do tempo de estudo. Para esse gráfico foi utilizado linha pontilhada 
para representar crescimento discreto. 
 
# Calculando a taxa de crescimento 
n.anos <- nrow(pardais) 
Rt <- pardais$Contagem[2:36]/pardais$Contagem[1:35] 
Rt 
[1] 1.1764706 1.0500000 1.2857143 0.9074074 1.4489796 0.9295775 0.8484848 1.2857143 
[9] 1.0694444 0.4805195 0.8648649 0.8125000 0.8461538 1.4090909 0.9032258 1.4642857 
[17] 0.8780488 1.0277778 1.1891892 0.7727273 1.3823529 0.9574468 0.9111111 0.7804878 
[25] 1.2500000 3.0000000 0.8000000 0.9687500 0.7204301 1.2537313 1.0714286 0.4111111 
[33] 0.9189189 1.0000000 1.2647059 
 
Analisando estes dados, não há como definir uma taxa de crescimento único para essa população 
de pardais, pois ao longo do tempo ocorrem oscilações, não tendo um padrão definido. 
 
# Elaborando o gráfico (ano x R) 
plot(Rt ~ Ano[2:n.anos], data=pardais, xlab="Ano", ylab="R") 
abline(h=1, lty=3) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Gráfico representando o ano x taxa de crescimento. Não há um padrão definido para determinar 
um crescimento ou decrescimento fixo. 
 
# Que explicações você acredita que podem explicar essas flutuações? 
Disponibilidade de recursos e fatores ambientais como o frio ou o calor que pode afetar os pardais. 
 
# Elaborando o gráfico (número de pardais x R) 
plot(Rt ~ Contagem[1:35], data=pardais) 
abline(h=1, lty=3) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Gráfico representando o número de pardais x taxa de crescimento. Observa-se que não há uma ta-
xa definida, tendo épocas em que a população aumenta, diminui e também se mantém estável. 
Quando a população era cerca de 20 pardais, o número de indivíduos estava aumentando, porém, a 
partir de 90 pardais a população tende a diminuir. 
 
 
 
Roteiro 8 - Crescimento logístico 
 
# Elaborando o gráfico (casos confirmados/milhões) 
plot(Confirmed/1000000 ~ Updated, data=br.covid, type="l") 
plot(Confirmed/1000000 ~ Updated, data=br.covid, log="y", type="l") 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Gráfico apresentando os meses x casos confirmados (em milhões). 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Gráfico apresentando os meses x casos confirmados, em escala logarítmica. 
 
No gráfico utilizando o log, é possível ver mais claramente a curva, sendo mais fácil de interpretar 
quando começou a estabilizar, enquanto que no gráfico normal é mais fácil de ver o número de 
casos confirmados. 
 
# Calculando os lambdas 
R0s <- br.covid$Confirmed[2:241] / br.covid$Confirmed[1:240] 
plot(R0s ~ Updated[1:240], data=br.covid, type="br.covid.csv") 
 
# Gerando o gráfico 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
O gráfico indica que entre Março e Abril a taxa de infecção estava bastante alta. No entanto, ape-
sar dos dados apontarem que o número de infectados está tendendo a permanecer constante, não se 
pode dizer que a situação está ficando "controlada". O que acontece é que devido ao grande núme-
ro de infectados, se torna mais difícil para o vírus infectar pessoas ainda não infectadas, que é dife-
rente de dizer que a situação está sob "controle". 
 
# Criando objetos 
K = 500 
N0 = 20 
r=0.009 
t <- c(5, 10, 20, 50, 100) 
 
# Calculando o tamanho populacional 
Nt <- K / (1 +(((K - N0) / N0)*exp(-r*t))) 
Nt 
[1] 20.88211 21.80136 23.75694 30.66906 46.47846 
 
# Para a nova população 
t <- 0:1000 
N0_20 <- 20 
Nt_20 <- K / (1 +(((K - N0_20) / N0_20)*exp(-r*t)))N0_1000 <- 1000 
Nt_1000 <- K / (1 +(((K - N0_1000) / N0_1000)*exp(-r*t))) 
Nt_1000 
 
# Elaborando o gráfico 
matplot(t, cbind(Nt_20, Nt_1000), type="l", ylab="Tamanho populacional", xlab="Tempo") 
abline(h=K, lty=2, col=3) 
legend("topright", title="Valores de N0", legend=c("N0 = 20", "N0 = 1000", "K = 500"), col=1:3, 
lty=1:2, cex=0.8) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Gráfico mostrando o tamanho populacional no decorrer do tempo, observa-se que ambas as popu-
lações chegam à capacidade suporte. A população menor conseguiu gerar descendentes a ponto de 
chegar ao K e a população maior, devido a falta de recursos, teve a sua população diminuída até K. 
 
N0 = 20: O aumento pode ocorrer quando se introduz uma espécie em um outro ambiente, e que o 
mesmo se adapte ao novo local, conseguindo obter recursos necessários e se reproduzir. Um exem-
plo é a introdução de espécies exóticas, como o Pinus sp 
N0 = 1000: A diminuição pode acontecer quando ocorre a invasão de alguma espécie que acaba 
competindo por recursos com a espécie nativa, que não consegue obter recurso suficiente e a sua 
população acaba diminuindo. Um exemplo é a invasão do ser humano, que acaba por competir 
também pelos recursos ali presente. 
 
# Criando a função para calcular o tamanho populacional 
logis <- function(K = 500, rd = 1, N0 = 2, t = 150) { 
 N <- c(N0, rep(NA, length(t))) 
 for (i in 1:t) { 
 N[i + 1] <- N[i] + rd * N[i] * (1 - (N[i] / K)) 
 } 
 return(N) 
} 
 
# Calculando logis 
logis(K = 100, rd = 0.95, N0 = 20, t = 10) 
logis(K = 500, rd = 1, N0 = 2, t = 150) 
 
Quanto maior o número de rd, mais oscilações terá a população. No entanto, como ambas possuem 
um rd pequeno, não se observa muita variação. E ao atingir a capacidade suporte, a população dei-
xa de crescer. Além disso, elas apresentam mais de um resultado devido ao rd, que faz a população 
oscilar até chegar no valor de K. 
 
# Criando „logis‟ com diferentes valores para rd 
logis1 <- logis(K = 100, rd = 0.95, N0 = 20, t = 10) 
logis2 <- logis(K = 100, rd = 1.2, N0 = 20, t = 10) 
logis3 <- logis(K = 100, rd = 1.8, N0 = 20, t = 10) 
logis4 <- logis(K = 100, rd = 2.1, N0 = 20, t = 10) 
 
 
# Juntando em um único objeto 
logisall <- cbind(logis1, logis2, logis3, logis4) 
 
# Gerando o gráfico 
rd <- c(0.95, 1.2, 1.8, 2.1) # para colocar na legenda 
matplot (t, logisall, type="l", lty = 1, xlab ="tempo", ylab="Tamanho populacional") 
legend("bottomright", title ="Valores de rd", legend = rd , lty=1:4, col=1:4) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Gráfico mostrando as diferenças no tamanho populacional ao longo do tempo de acordo com dife-
rentes valores de rd. 
Os valores de rd influenciaram no tamanho populacional, causando uma oscilação. Esse tipo de 
gráfico pode ocorrer em espécies que apresenta um tempo específico para a sua reprodução, como 
bambus. 
Roteiro 9 - Crescimento logístico em tempo discreto 
 
# Comando para gerar os dados 
covid <- read.csv("covid_florianopolis.csv", as.is=F) 
head(covid) 
str(covid) 
 
# Ajustando a data da tabela 
covid$data_teste <- as.Date(covid$data_teste, format="%Y-%m-%d") 
floripa <- aggregate(classificacao_final ~ data_teste, 
 data=subset(covid, data_teste >= "2020-01-01" & data_teste <= "2020-10-10"), 
FUN=table) 
 
# Criando uma nova tabela com os dados agrupados por data do teste 
flo.covid <- data.frame( 
 data=as.Date(floripa$data_teste), 
 confirmacao=floripa$classificacao_final[, "CONFIRMAÇÃO LABORATORIAL"]) 
 
# Calculando o número cumulativo de casos 
flo.covid$confirmadostot <- cumsum(flo.covid$confirmacao) 
 
# Gráfico com os novos casos confirmados/dia 
plot(confirmacao ~ data, data=flo.covid, type="h") 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Gráfico mostrando os números de casos confirmados por dia, observa-se um pico entre Julho e Se-
tembro, diminuindo posteriormente. Porém, com o descuido da população os números de novos 
casos voltaram a subir. 
 
# Gráfico com o total de casos por dia acumulado 
plot(confirmadostot ~ data, data=flo.covid, type="h") 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Gráfico mostrando o número de confirmados totais no decorrer dos meses, apontando um cresci-
mento acelerado a partir de Julho. 
 
# Calculando a taxa cumulativa de casos confirmados cumulativos 
ndias <- nrow(flo.covid) 
R0 <- flo.covid$confirmadostot[2:ndias] / flo.covid$confirmadostot[1:(ndias-1)] 
plot(R0 ~ data[1:(ndias-1)], data=flo.covid, type="b", xlab="data") 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Observa-se um pico na taxa cumulativa antes de Março, quando estava iniciando os casos de Co-
vid-19 em Florianópolis. A partir de Março, começou a ter um R0 mais balanceado devido ao au-
mento de casos. Apesar de recentemente estar com o R0 equilibrado, isso não quer dizer que está 
sob “controle”, apenas indica que o número está alto e que normalmente é difícil dobrar esse nú-
mero, que já está alto.

Continue navegando