Nothing
## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(echo = TRUE)
options(rmarkdown.html_vignette.check_title = FALSE)
## -----------------------------------------------------------------------------
library(evolved)
## -----------------------------------------------------------------------------
simulateBirthDeathRich(t = 10, S = 1, E = 0)
## -----------------------------------------------------------------------------
data("timeseries_fossil")
## -----------------------------------------------------------------------------
unique(timeseries_fossil$clade)
## -----------------------------------------------------------------------------
# Here we will use dinosaurs:
dino_rich <- timeseries_fossil[timeseries_fossil$clade=="dinosauria",]
head(dino_rich)
## -----------------------------------------------------------------------------
unique(dino_rich$time_ma)
## -----------------------------------------------------------------------------
# We will use the early Jurassic, around 201 Mya, as our reference for this analysis
t_obs <- 201
rich_early_J <- dino_rich$richness[dino_rich$time_ma==t_obs]
# species richness from this time point
rich_early_J
# plotting our data and our point of observation:
plot(x = dino_rich$time_ma,
y=dino_rich$richness,
xlim=c(max(dino_rich$time_ma), min(dino_rich$time_ma)),
xlab = "Millions of years ago", ylab = "Dino species richness")
# connecting the dots:
lines(x = dino_rich$time_ma,
y=dino_rich$richness)
# highlighting the point we will pick:
points(x=t_obs, y=rich_early_J, col="red", pch=16)
abline(v=t_obs, col="red")
## -----------------------------------------------------------------------------
# Richness at the stem age of the dinosaurs:
rich_0 <- 1
# The start age of our clade marks time 0 for diversification:
t0 = dino_rich$stem_age[1]
# Since we now know N_t, N_0, and the elapsed time, calculate R:
R_dino = (log(rich_early_J) - log(1)) / (t0 - t_obs)
R_dino
# Plot our data and project the richness since the beginning of our time series:
time_from_t0 = t0 - dino_rich$time_ma
projected_rich = rich_0 * exp(R_dino * time_from_t0)
# Finally, we calculate the difference between our projections and the data:
projected_rich-dino_rich$richness
# Plotting the difference between our projections and the data:
plot(x = dino_rich$time_ma,
y=dino_rich$richness,
xlim=c(max(dino_rich$time_ma), min(dino_rich$time_ma)),
)
# Connecting the dots:
lines(x = dino_rich$time_ma,
y=dino_rich$richness)
# Highlighting our point of observation again:
points(x=t_obs, y=rich_early_J, col="red", pch=16)
# Now, we will add the predicted richness curve based on our estimations:
lines(x = dino_rich$time_ma,
y=projected_rich, col="red")
#Finally, we plot the differences between our projections and our data using bars:
segments(x0 = dino_rich$time_ma,
x1 = dino_rich$time_ma,
y0 = dino_rich$richness,
y1 = projected_rich,
col="red")
## -----------------------------------------------------------------------------
#we can plot the data again, this time with extra care with the scale of our axes:
plot(x = dino_rich$time_ma,
y=dino_rich$richness,
xlim=c(max(dino_rich$time_ma), min(dino_rich$time_ma)),
#we will change the y-axis limits to fit all our calculations:
ylim=c(
min(c(dino_rich$richness, projected_rich)),
max(c(dino_rich$richness, projected_rich))),
)
#connecting the dots:
lines(x = dino_rich$time_ma,
y=dino_rich$richness)
#highlighting our observation point:
points(x=t_obs, y=rich_early_J, col="red", pch=16)
#adding the predictions of the model:
lines(x = dino_rich$time_ma,
y=projected_rich, col="red")
#Finally, we plot the differences between our projections and our data using bars:
segments(x0 = dino_rich$time_ma,
x1 = dino_rich$time_ma,
y0 = dino_rich$richness,
y1 = projected_rich,
col="red")
## -----------------------------------------------------------------------------
perc_error <- (projected_rich - dino_rich$richness)/dino_rich$richness * 100
min(perc_error)
max(perc_error)
hist(perc_error, xlab = "Error as a percentage of the data")
## -----------------------------------------------------------------------------
proj_rich_dinos_KPg <- (R_dino +1)^(dino_rich$stem_age[1]-66)
proj_rich_dinos_KPg
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.