GLM_PC1
DMA
6/12/2021
Statistic analyses of PC1
Here we describe the formulation of a Generalized Linear Model for PC1 obtained from the GPA file. This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. For more details on using R Markdown see <http://rmarkdown.rstudio.com>
Setting the working directory and loading the dataset:
# Clean previous loaded data
rm(list=ls())
# Setting the workind directory:
setwd("F:/Documentos/1.1.Proyectos/16. Patterns of variation in the ammonoid cross section/Data")
#Loading the data
df<-read.csv2("SuppData1.csv", dec =".")
Dinfining objects and building a new dataframe
PC1<-(-df$PC1)#axis flipped to concide with the text
PC2<-df$PC2
PC3<-df$PC3
PC4<-df$PC4
PC5<-df$PC5
PC6<-df$PC6
G<-df$G
O<-df$O
ST<-df$ST
MA<-df$MeanAge
A<-df$A #area in mm^2
D<-df$D #diameter in mm
H<-df$H # whorl size in mm
CS<-df$CS
LogCS<-log(df$CS) #centroid size in mm
PLAT<-df$PLAT #Paleolatitude of the locality of origen
#newdataframe
df1<-cbind.data.frame(O,ST,G,MA,D,H,A,CS,LogCS,PLAT,PC1,PC2,PC3,PC4,PC5,PC6)
For this analysis we will use the PCs as response variables. The first analyses will focus in the first PC1 that explains around th 54% of the variance found in the sample.
To identify possible biological patterns, we will analyze the relation between PC1 and several possible predictors. In this case, to determine if there is a long term trend trough ammonoid evolutionary history ,we will use the mean age determined for each genus. For the size, which could be related to morphofunctional constraints, we will use the whorl size (or heigth). And for possible environmental trends, we will use the paleolatitude of the locality for each specimen. Further, to test potential phyllogenetic constraints we will also include some subtaxa.
Data validation
To test that the sample is representative of the original ammonoid population we can do a density plot for the number of genera trough time. This plot should mirror similar patterns to the ones observed before in other studies, such as the Sepkoski’s Disversity Curve.
library(ggplot2)
ggplot(df1, aes(x=MA)) +
geom_density(color="red", fill="darkred", alpha = .1,kernel = "rectangular") +
labs(x = "MAR", y = "density")+theme_classic()+theme_bw()
Further validation can be done plotting the mean age for each order
library(ggplot2)
ggplot(df1, aes(MA, O )) +
geom_point(aes(), size = 1) +
labs(title="Order - Mean Age",
x=expression("Mean Age (Ma)"),
y=expression("O"))+theme_bw()
summary for each PC and subtaxa
tapply(PC1,ST, summary)
## $`0. Agoniatitida`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.50592 -0.28844 0.01377 -0.03345 0.21407 0.34558
##
## $`1. Goniatitina`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.48039 -0.37222 -0.23186 -0.16555 -0.02003 0.38351
##
## $`2. Tornoceratina`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.44023 -0.30526 -0.11062 -0.09449 0.08746 0.29524
##
## $`3. Clymeniida`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.4727 -0.2858 -0.1082 -0.1295 -0.0120 0.3014
##
## $`4. Prolecanitida`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.1012 0.2257 0.2384 0.2388 0.2846 0.3111
##
## $`5. Ceratitida`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.46422 -0.14181 0.09218 0.01167 0.18709 0.41447
##
## $`6. Phylloceratida`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.331253 -0.112906 0.005528 -0.035066 0.090332 0.158350
##
## $`7. Lytoceratina`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.23987 -0.01796 0.13560 0.09024 0.19625 0.36280
##
## $`8. Ammonitina`
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.48485 -0.08792 0.07112 0.04174 0.18163 0.43718
##
## $`9. Ancyloceratina `
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.44193 -0.02604 0.13650 0.13771 0.39597 0.52179
Exploring the morphospace
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
plot_ly(df1, x = ~PC1, y = ~PC2, z = ~PC3, type="scatter3d", mode="markers", color=~ST, size = 1.5) #to see a particular specimen insert symbol = ~G or name = ~G
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
PC1 plots
ggplot(df1, aes(PC1, ST)) +
geom_boxplot()+
geom_point(aes(), size = 0.7, color="grey") +
labs(title="PC1",
x=expression("PC1"),
y=expression("Sutural Type"))+
theme(plot.title = element_text(family = "serif", face = "bold", hjust = 0.5))+theme_bw()
library(ggplot2)
ggplot(df1, aes(x =MA , y = PC1, group =ST, color = ST)) +
geom_point(size=1.5) + xlab("Mean Age (Ma)") +
ylab("PC1") +
ggtitle("PC1 - Mean Age")+
theme(plot.title = element_text(family = "serif", face = "bold", hjust = 0.5))+
scale_color_manual(breaks = c("0. Agoniatitida", "1. Goniatitina", "2. Tornoceratina","3. Clymeniida","4. Prolecanitida","5. Ceratitida", "6. Phylloceratida", "7. Lytoceratina", "8. Ammonitina", "9. Ancyloceratina "),
values=c("red", "blue4", "darkgreen","gold4","brown","gray", "deepskyblue1", "burlywood1","slateblue","Khaki1"))+theme_bw()
Here to avoid leverage we will use the logarithm of the centroid size
library(ggplot2)
ggplot(df1, aes(x =log(CS) , y = PC1, group =ST, color = ST)) + xlab("Log(CS)") + geom_point()+
ylab("PC1") +
ggtitle("PC1 - Centroid Size")+
theme(plot.title = element_text(family = "serif", face = "bold", hjust = 0.5))+
scale_color_manual(breaks = c("0. Agoniatitida", "1. Goniatitina", "2. Tornoceratina","3. Clymeniida","4. Prolecanitida","5. Ceratitida", "6. Phylloceratida", "7. Lytoceratina", "8. Ammonitina", "9. Ancyloceratina "),
values=c("red", "blue4", "darkgreen","gold4","brown","gray", "deepskyblue1", "burlywood1","slateblue","Khaki1"))+theme_bw()+stat_smooth(method = "lm",
formula = y ~ x,
geom = "smooth", size=0.7,se = F )
GLM for PC1
General linear models are used to analyze the effect of several variables with respect to a continuous variable, which is proposed to follow a statistical distribution, in this case a normal distribution. For this, several assumptions should be tested in order to confirm that the model is suitable for a specific database. Further modification of the model should be done in cases where some of these assumptions are falsified or some of the predictors are not relevant. Here we will use a simple multiple regression model.
Complete additive general linear model for PC1
m1 <- lm(PC1~MA+PLAT+LogCS+ST,data = df1)
#Note that here we use log of the centroid size to avoid leverage
Testing multicollinearity
library(car)
## Loading required package: carData
vif(m1)
## GVIF Df GVIF^(1/(2*Df))
## MA 10.336015 1 3.214967
## PLAT 1.218166 1 1.103705
## LogCS 1.129710 1 1.062878
## ST 11.760161 9 1.146746
#GVIF values should be lower than 5 to avoid multicollinearity
This result shows a rare case of multicollinearity in which a continuous variable (mean age) and a factor (subtaxa) are collinear. This is because the groups alternate in the geological record. A way to solve this problem is eliminating one of the variables as they are somewhat giving similar information.
m1 <- lm(PC1~log(CS)+ST+PLAT, data = df1)
Testing normality
plot(m1)
e <- resid(m1)
shapiro.test(e)
##
## Shapiro-Wilk normality test
##
## data: e
## W = 0.99423, p-value = 0.3136
Backwards selection
The variable PLAT is not relevant.
drop1(m1, test = "F")
## Single term deletions
##
## Model:
## PC1 ~ log(CS) + ST + PLAT
## Df Sum of Sq RSS AIC F value Pr(>F)
## <none> 14.991 -874.91
## log(CS) 1 0.28469 15.275 -871.26 5.4695 0.02004 *
## ST 9 2.89536 17.886 -839.93 6.1806 5.704e-08 ***
## PLAT 1 0.07013 15.061 -875.51 1.3473 0.24671
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Proposal of new model without PLAT
m2 <- lm(PC1~log(CS)+ST, data = df1)
plot(m2)
e <- resid(m2)
shapiro.test(e)
##
## Shapiro-Wilk normality test
##
## data: e
## W = 0.99368, p-value = 0.243
Summary of the final model
summary(m2)
##
## Call:
## lm(formula = PC1 ~ log(CS) + ST, data = df1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.53906 -0.16343 0.00496 0.15796 0.56802
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.10186 0.08929 1.141 0.2549
## log(CS) -0.03481 0.01550 -2.246 0.0255 *
## ST1. Goniatitina -0.14445 0.07455 -1.938 0.0536 .
## ST2. Tornoceratina -0.08251 0.08074 -1.022 0.3077
## ST3. Clymeniida -0.10984 0.10438 -1.052 0.2935
## ST4. Prolecanitida 0.25135 0.10897 2.307 0.0218 *
## ST5. Ceratitida 0.04739 0.07610 0.623 0.5340
## ST6. Phylloceratida 0.01202 0.10437 0.115 0.9084
## ST7. Lytoceratina 0.12567 0.11415 1.101 0.2718
## ST8. Ammonitina 0.08143 0.06893 1.181 0.2384
## ST9. Ancyloceratina 0.16131 0.08083 1.996 0.0469 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2283 on 289 degrees of freedom
## Multiple R-squared: 0.1654, Adjusted R-squared: 0.1365
## F-statistic: 5.726 on 10 and 289 DF, p-value: 7.608e-08
Comparisons
library(emmeans)
Comparaciones <- emmeans(m2, pairwise ~ ST|CS)
Comparaciones
## $emmeans
## CS = 67.5:
## ST emmean SE df lower.CL upper.CL
## 0. Agoniatitida -0.04472 0.0661 289 -0.17480 0.0854
## 1. Goniatitina -0.18917 0.0360 289 -0.26000 -0.1183
## 2. Tornoceratina -0.12723 0.0479 289 -0.22156 -0.0329
## 3. Clymeniida -0.15456 0.0815 289 -0.31493 0.0058
## 4. Prolecanitida 0.20663 0.0875 289 0.03449 0.3788
## 5. Ceratitida 0.00266 0.0383 289 -0.07264 0.0780
## 6. Phylloceratida -0.03271 0.0807 289 -0.19157 0.1262
## 7. Lytoceratina 0.08095 0.0933 289 -0.10266 0.2646
## 8. Ammonitina 0.03671 0.0201 289 -0.00294 0.0764
## 9. Ancyloceratina 0.11659 0.0475 289 0.02303 0.2102
##
## Confidence level used: 0.95
##
## $contrasts
## CS = 67.5:
## contrast estimate SE df t.ratio p.value
## 0. Agoniatitida - 1. Goniatitina 0.1444 0.0745 289 1.938 0.6433
## 0. Agoniatitida - 2. Tornoceratina 0.0825 0.0807 289 1.022 0.9908
## 0. Agoniatitida - 3. Clymeniida 0.1098 0.1044 289 1.052 0.9886
## 0. Agoniatitida - 4. Prolecanitida -0.2514 0.1090 289 -2.307 0.3879
## 0. Agoniatitida - 5. Ceratitida -0.0474 0.0761 289 -0.623 0.9998
## 0. Agoniatitida - 6. Phylloceratida -0.0120 0.1044 289 -0.115 1.0000
## 0. Agoniatitida - 7. Lytoceratina -0.1257 0.1141 289 -1.101 0.9843
## 0. Agoniatitida - 8. Ammonitina -0.0814 0.0689 289 -1.181 0.9747
## 0. Agoniatitida - 9. Ancyloceratina -0.1613 0.0808 289 -1.996 0.6028
## 1. Goniatitina - 2. Tornoceratina -0.0619 0.0573 289 -1.081 0.9862
## 1. Goniatitina - 3. Clymeniida -0.0346 0.0877 289 -0.394 1.0000
## 1. Goniatitina - 4. Prolecanitida -0.3958 0.0930 289 -4.257 0.0011
## 1. Goniatitina - 5. Ceratitida -0.1918 0.0517 289 -3.710 0.0093
## 1. Goniatitina - 6. Phylloceratida -0.1565 0.0885 289 -1.768 0.7548
## 1. Goniatitina - 7. Lytoceratina -0.2701 0.0996 289 -2.713 0.1733
## 1. Goniatitina - 8. Ammonitina -0.2259 0.0407 289 -5.554 <.0001
## 1. Goniatitina - 9. Ancyloceratina -0.3058 0.0579 289 -5.277 <.0001
## 2. Tornoceratina - 3. Clymeniida 0.0273 0.0928 289 0.295 1.0000
## 2. Tornoceratina - 4. Prolecanitida -0.3339 0.0976 289 -3.420 0.0246
## 2. Tornoceratina - 5. Ceratitida -0.1299 0.0604 289 -2.152 0.4926
## 2. Tornoceratina - 6. Phylloceratida -0.0945 0.0940 289 -1.005 0.9918
## 2. Tornoceratina - 7. Lytoceratina -0.2082 0.1043 289 -1.996 0.6026
## 2. Tornoceratina - 8. Ammonitina -0.1639 0.0514 289 -3.192 0.0495
## 2. Tornoceratina - 9. Ancyloceratina -0.2438 0.0654 289 -3.726 0.0087
## 3. Clymeniida - 4. Prolecanitida -0.3612 0.1182 289 -3.056 0.0729
## 3. Clymeniida - 5. Ceratitida -0.1572 0.0895 289 -1.756 0.7617
## 3. Clymeniida - 6. Phylloceratida -0.1219 0.1148 289 -1.062 0.9879
## 3. Clymeniida - 7. Lytoceratina -0.2355 0.1235 289 -1.907 0.6642
## 3. Clymeniida - 8. Ammonitina -0.1913 0.0836 289 -2.287 0.4006
## 3. Clymeniida - 9. Ancyloceratina -0.2712 0.0932 289 -2.909 0.1078
## 4. Prolecanitida - 5. Ceratitida 0.2040 0.0949 289 2.150 0.4938
## 4. Prolecanitida - 6. Phylloceratida 0.2393 0.1191 289 2.009 0.5935
## 4. Prolecanitida - 7. Lytoceratina 0.1257 0.1274 289 0.986 0.9928
## 4. Prolecanitida - 8. Ammonitina 0.1699 0.0894 289 1.901 0.6686
## 4. Prolecanitida - 9. Ancyloceratina 0.0900 0.0982 289 0.917 0.9958
## 5. Ceratitida - 6. Phylloceratida 0.0354 0.0894 289 0.396 1.0000
## 5. Ceratitida - 7. Lytoceratina -0.0783 0.1007 289 -0.778 0.9988
## 5. Ceratitida - 8. Ammonitina -0.0340 0.0430 289 -0.791 0.9987
## 5. Ceratitida - 9. Ancyloceratina -0.1139 0.0604 289 -1.886 0.6784
## 6. Phylloceratida - 7. Lytoceratina -0.1137 0.1234 289 -0.921 0.9957
## 6. Phylloceratida - 8. Ammonitina -0.0694 0.0832 289 -0.834 0.9980
## 6. Phylloceratida - 9. Ancyloceratina -0.1493 0.0938 289 -1.592 0.8512
## 7. Lytoceratina - 8. Ammonitina 0.0442 0.0953 289 0.464 1.0000
## 7. Lytoceratina - 9. Ancyloceratina -0.0356 0.1043 289 -0.342 1.0000
## 8. Ammonitina - 9. Ancyloceratina -0.0799 0.0512 289 -1.560 0.8663
##
## P value adjustment: tukey method for comparing a family of 10 estimates
plot(Comparaciones, comparisons = TRUE)+theme_bw()
## I bet you wanted to call this with just object[[1]] - use '[[]]' or which' if I'm wrong.
## See '? emm_list' for more information
## Warning: Comparison discrepancy in group "67.4549307296233", 2. Tornoceratina - 8. Ammonitina:
## Target overlap = -0.0011, overlap on graph = 0.023
Predicted values
library(ggeffects)
plot(ggpredict(m2,terms = c("CS")))+theme_bw()
ggpredict(m2,terms = c("ST"))
## # Predicted values of PC1
##
## ST | Predicted | 95% CI
## ---------------------------------------------
## 8. Ammonitina | 0.04 | [ 0.00, 0.08]
## 0. Agoniatitida | -0.04 | [-0.17, 0.08]
## 2. Tornoceratina | -0.13 | [-0.22, -0.03]
## 5. Ceratitida | 0.00 | [-0.07, 0.08]
## 1. Goniatitina | -0.19 | [-0.26, -0.12]
## 7. Lytoceratina | 0.08 | [-0.10, 0.26]
## 4. Prolecanitida | 0.21 | [ 0.04, 0.38]
## 3. Clymeniida | -0.15 | [-0.31, 0.01]
##
## Adjusted for:
## * CS = 67.45
p<-ggpredict(m2,terms = c("ST"))
p$x <- factor(p$x, levels=c("0. Agoniatitida", "1. Goniatitina", "2. Tornoceratina", "3. Clymeniida", "4. Prolecanitida", "5. Ceratitida", "6. Phylloceratida","7. Lytoceratina", "8. Ammonitina","9. Ancyloceratina "))
p <- p[order(levels(p$x)),]
p
## # Predicted values of PC1
##
## ST | Predicted | 95% CI
## ---------------------------------------------
## 8. Ammonitina | 0.04 | [ 0.00, 0.08]
## 0. Agoniatitida | -0.04 | [-0.17, 0.08]
## 2. Tornoceratina | -0.13 | [-0.22, -0.03]
## 5. Ceratitida | 0.00 | [-0.07, 0.08]
## 1. Goniatitina | -0.19 | [-0.26, -0.12]
## 7. Lytoceratina | 0.08 | [-0.10, 0.26]
## 4. Prolecanitida | 0.21 | [ 0.04, 0.38]
## 3. Clymeniida | -0.15 | [-0.31, 0.01]
##
## Adjusted for:
## * CS = 67.45
plot(p)+coord_flip(xlim = NULL, ylim = NULL, expand = TRUE, clip = "on")+theme_bw()
library(sjPlot)
## Install package "strengejacke" from GitHub (`devtools::install_github("strengejacke/strengejacke")`) to load all sj-packages at once!
tab_model(m2)
 | PC1 | ||
---|---|---|---|
Predictors | Estimates | CI | p |
(Intercept) | 0.10 | -0.07 – 0.28 | 0.255 |
CS [log] | -0.03 | -0.07 – -0.00 | 0.025 |
ST [1. Goniatitina] | -0.14 | -0.29 – 0.00 | 0.054 |
ST [2. Tornoceratina] | -0.08 | -0.24 – 0.08 | 0.308 |
ST [3. Clymeniida] | -0.11 | -0.32 – 0.10 | 0.294 |
ST [4. Prolecanitida] | 0.25 | 0.04 – 0.47 | 0.022 |
ST [5. Ceratitida] | 0.05 | -0.10 – 0.20 | 0.534 |
ST [6. Phylloceratida] | 0.01 | -0.19 – 0.22 | 0.908 |
ST [7. Lytoceratina] | 0.13 | -0.10 – 0.35 | 0.272 |
ST [8. Ammonitina] | 0.08 | -0.05 – 0.22 | 0.238 |
ST9 Ancyloceratina | 0.16 | 0.00 – 0.32 | 0.047 |
Observations | 300 | ||
R2 / R2 adjusted | 0.165 / 0.136 |
Testing for interaction between the remaining variables
m3 <- lm(PC1~LogCS*ST, data = df1)
plot(m3)
e <- resid(m3)
shapiro.test(e)
##
## Shapiro-Wilk normality test
##
## data: e
## W = 0.99516, p-value = 0.4715
Backwards selection
drop1(m3, test = "F")
## Single term deletions
##
## Model:
## PC1 ~ LogCS * ST
## Df Sum of Sq RSS AIC F value Pr(>F)
## <none> 14.338 -872.27
## LogCS:ST 9 0.7231 15.061 -875.51 1.569 0.1242
New dataset excluding non-coiled ammonoids to propose a model involving the diameter
df2<- df1[-c(16, 27, 76, 87, 106, 108, 118, 126, 228, 232, 276, 280), ]
df2$D<- as.numeric(df2$D)
m4 <- lm(PC1~log(D)+ST, data = df2)
summary(m4)
##
## Call:
## lm(formula = PC1 ~ log(D) + ST, data = df2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.56983 -0.16768 0.01599 0.15557 0.52595
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.14747 0.09027 -1.634 0.10346
## log(D) 0.03072 0.01679 1.830 0.06838 .
## ST1. Goniatitina -0.11931 0.07401 -1.612 0.10805
## ST2. Tornoceratina -0.04035 0.08025 -0.503 0.61546
## ST3. Clymeniida -0.09399 0.10326 -0.910 0.36352
## ST4. Prolecanitida 0.28653 0.10788 2.656 0.00836 **
## ST5. Ceratitida 0.03981 0.07546 0.528 0.59824
## ST6. Phylloceratida -0.01325 0.10345 -0.128 0.89818
## ST7. Lytoceratina 0.11289 0.11327 0.997 0.31980
## ST8. Ammonitina 0.06103 0.06863 0.889 0.37462
## ST9. Ancyloceratina 0.14631 0.09057 1.615 0.10736
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2262 on 277 degrees of freedom
## Multiple R-squared: 0.154, Adjusted R-squared: 0.1234
## F-statistic: 5.041 on 10 and 277 DF, p-value: 9.562e-07
Testing normality
plot(m4)
e <- resid(m4)
shapiro.test(e)
##
## Shapiro-Wilk normality test
##
## data: e
## W = 0.99397, p-value = 0.3074
Backwards selection
Note the diameter is not a significant factor.
drop1(m4, test = "F")
## Single term deletions
##
## Model:
## PC1 ~ log(D) + ST
## Df Sum of Sq RSS AIC F value Pr(>F)
## <none> 14.177 -845.28
## log(D) 1 0.17132 14.348 -843.82 3.3476 0.06838 .
## ST 9 1.92549 16.102 -826.60 4.1803 4.449e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
library(sjPlot)
tab_model(m4)
 | PC1 | ||
---|---|---|---|
Predictors | Estimates | CI | p |
(Intercept) | -0.15 | -0.33 – 0.03 | 0.103 |
D [log] | 0.03 | -0.00 – 0.06 | 0.068 |
ST [1. Goniatitina] | -0.12 | -0.26 – 0.03 | 0.108 |
ST [2. Tornoceratina] | -0.04 | -0.20 – 0.12 | 0.615 |
ST [3. Clymeniida] | -0.09 | -0.30 – 0.11 | 0.364 |
ST [4. Prolecanitida] | 0.29 | 0.07 – 0.50 | 0.008 |
ST [5. Ceratitida] | 0.04 | -0.11 – 0.19 | 0.598 |
ST [6. Phylloceratida] | -0.01 | -0.22 – 0.19 | 0.898 |
ST [7. Lytoceratina] | 0.11 | -0.11 – 0.34 | 0.320 |
ST [8. Ammonitina] | 0.06 | -0.07 – 0.20 | 0.375 |
ST9 Ancyloceratina | 0.15 | -0.03 – 0.32 | 0.107 |
Observations | 288 | ||
R2 / R2 adjusted | 0.154 / 0.123 |