Data
library(tidyverse)
library(dplyr)
library(ggpubr)
library(rcompanion)
library(car)
library(googlesheets4)
library(plotly)
DATA “species.txt”
gs4_deauth()
ss= "https://docs.google.com/spreadsheets/d/18J313ymQP0xj3Lf3P4WHnuqXzyUEGJGW2whdJgmUp0c/edit?usp=sharing"
hoja= "species"
rango = "B2:D92"
sp <- read_sheet(ss,
sheet= hoja,
range= rango,
col_names= TRUE
)
✔ Reading from Deviance_Ancova_Reg_Glm.
✔ Range ''species'!B2:D92'.
names(sp)
[1] "pH" "Biomass" "Species"
sp$pH <- as.factor(sp$pH)
str(sp)
tibble [90 × 3] (S3: tbl_df/tbl/data.frame)
$ pH : Factor w/ 3 levels "a.low","b.mid",..: 3 3 3 3 3 3 3 3 3 3 ...
$ Biomass: num [1:90] 0.469 1.731 2.09 3.926 4.367 ...
$ Species: num [1:90] 30 39 44 35 25 29 23 18 19 12 ...
sp
Regression
p <- ggplot(data= sp,
aes(x=Biomass, y= Species)) + geom_point() +
geom_smooth(method="lm")
ggplotly(p)
`geom_smooth()` using formula = 'y ~ x'
lm <- lm(data=sp, Species ~ Biomass)
lmS <- summary(lm)
lmS
Call:
lm(formula = Species ~ Biomass, data = sp)
Residuals:
Min 1Q Median 3Q Max
-16.0037 -6.2194 -0.0894 5.7617 22.8037
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 23.6755 1.6604 14.259 < 2e-16 ***
Biomass -1.1864 0.3782 -3.137 0.00232 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 9.232 on 88 degrees of freedom
Multiple R-squared: 0.1006, Adjusted R-squared: 0.09034
F-statistic: 9.839 on 1 and 88 DF, p-value: 0.002324
tstat <- lmS$coefficients[2,3]
tstat
[1] -3.136681
Randomization
nreps <- 5000
tstats <- numeric(nreps)
set.seed(123) # reprducibility
for (i in 1:nreps) {
tstats[i] <- summary(lm(Species~sample(Biomass),data=sp))$coef[2,3]
}
Compute p-value (proportion of simmulated test stats at least as
extreme as observed)
hist(tstats)
abline(v= tstat, col="red")

mean(abs(tstats) >= abs(tstat))
[1] 0.0022
LS0tDQp0aXRsZTogIlBlcm11dGF0aW9uIHRlc3QiDQphdXRob3I6ICJGZWRlcmljbyBKLiBWaWxsYXRvcm8iDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoNCg0KIyMjIERhdGENCg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgcmVzdWx0cz1GQUxTRX0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShkcGx5cikgDQpsaWJyYXJ5KGdncHVicikNCmxpYnJhcnkocmNvbXBhbmlvbikNCmxpYnJhcnkoY2FyKQ0KbGlicmFyeShnb29nbGVzaGVldHM0KQ0KbGlicmFyeShwbG90bHkpDQpgYGAgIA0KDQojIyMjIERBVEEgInNwZWNpZXMudHh0Ig0KIA0KYGBge3J9DQpnczRfZGVhdXRoKCkNCnNzPSAiaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vc3ByZWFkc2hlZXRzL2QvMThKMzEzeW1RUDB4ajNMZjNQNFdIbnVxWHp5VUVHSkdXMndoZEpnbVVwMGMvZWRpdD91c3A9c2hhcmluZyINCmhvamE9ICJzcGVjaWVzIg0KcmFuZ28gPSAiQjI6RDkyIg0Kc3AgPC0gcmVhZF9zaGVldChzcywNCiAgICAgICAgICAgICAgICAgICAgc2hlZXQ9IGhvamEsDQogICAgICAgICAgICAgICAgICAgIHJhbmdlPSByYW5nbywNCiAgICAgICAgICAgICAgICAgICAgY29sX25hbWVzPSBUUlVFDQogICAgICAgICAgICAgICAgICAgICkNCm5hbWVzKHNwKQ0Kc3AkcEggPC0gYXMuZmFjdG9yKHNwJHBIKQ0Kc3RyKHNwKQ0Kc3ANCmBgYCANCiMjIyBSZWdyZXNzaW9uDQoNCmBgYHtyfQ0KcCA8LSBnZ3Bsb3QoZGF0YT0gc3AsIA0KICAgICAgICAgICAgYWVzKHg9QmlvbWFzcywgeT0gU3BlY2llcykpICsgZ2VvbV9wb2ludCgpICsNCiAgZ2VvbV9zbW9vdGgobWV0aG9kPSJsbSIpDQpnZ3Bsb3RseShwKQ0KbG0gPC0gbG0oZGF0YT1zcCwgU3BlY2llcyB+IEJpb21hc3MpDQpsbVMgPC0gc3VtbWFyeShsbSkNCmxtUw0KdHN0YXQgPC0gbG1TJGNvZWZmaWNpZW50c1syLDNdDQp0c3RhdA0KYGBgICANCiMjIyBSYW5kb21pemF0aW9uDQpgYGB7cn0NCm5yZXBzIDwtIDUwMDANCnRzdGF0cyA8LSBudW1lcmljKG5yZXBzKQ0Kc2V0LnNlZWQoMTIzKSAjIHJlcHJkdWNpYmlsaXR5DQoNCmZvciAoaSBpbiAxOm5yZXBzKSB7DQogIHRzdGF0c1tpXSA8LSBzdW1tYXJ5KGxtKFNwZWNpZXN+c2FtcGxlKEJpb21hc3MpLGRhdGE9c3ApKSRjb2VmWzIsM10NCn0NCmBgYCAgDQoNCiMjIyMgQ29tcHV0ZSBwLXZhbHVlIChwcm9wb3J0aW9uIG9mIHNpbW11bGF0ZWQgdGVzdCBzdGF0cyBhdCBsZWFzdCBhcyBleHRyZW1lIGFzIG9ic2VydmVkKQ0KYGBge3J9DQpoaXN0KHRzdGF0cykNCmFibGluZSh2PSB0c3RhdCwgY29sPSJyZWQiKQ0KbWVhbihhYnModHN0YXRzKSA+PSBhYnModHN0YXQpKQ0KYGBgICANCg==