User Tools

Site Tools


cs:mix:molluscs:solution

Řešení

# Nacteni knihoven
library (vegan)
 
# Import potřebných dat:
moll <- read.delim ('http://www.davidzeleny.net/anadat-r/lib/exe/fetch.php?media=data:molluscs-fens.txt', row.names = 1)
vasc <- read.delim ('http://www.davidzeleny.net/anadat-r/lib/exe/fetch.php?media=data:vascular-fens.txt', row.names = 1)
env <- read.delim ('http://www.davidzeleny.net/anadat-r/lib/exe/fetch.php?media=data:env-fens.txt', row.names = 1)
 
# Transformace matice druhového složení plžů a vegetace:
t.moll <- log1p (moll)
t.vasc <- decostand (vasc, 'hell')
 
# Vliv vegetace - redukce informace o druhovém složení vegetace do podoby několika málo ordinačních os:
PCA.vasc <- rda (t.vasc)  # vasc není třeba transformovat - jsou na ordinální škále 0-9
vasc.scores <- scores (PCA.vasc, choices = 1:4, display = 'sites')  # skóre na prvních čtyřech osách vegetačních ordinace
 
# Postupný výběr vegetačních proměnných
library (packfor)
fw.sel.vasc <- forward.sel (t.moll, vasc.scores)
fw.sel.vasc.adj <- fw.sel.vasc[p.adjust (fw.sel.vasc$p, 'bonf')<0.05,]  # adjustace mnohonasobneho porovnani pomoci Bonferroniho korekce
fw.sel.vasc.adj
  variables order         R2     R2Cum  AdjR2Cum         F  pval
1       PC1     1 0.25422033 0.2542203 0.2360306 13.976023 0.001
2       PC2     2 0.04509611 0.2993164 0.2642823  2.574407 0.009
# Postupný výběr proměnných prostředí
fw.sel.env <- forward.sel (t.moll, env)
fw.sel.env.adj <- fw.sel.env[p.adjust (fw.sel.env$p, 'bonf') < 0.05, ] # adjustace Bonferronim
fw.sel.env.adj
  variables order         R2     R2Cum  AdjR2Cum         F  pval
1        Ca     1 0.20184965 0.2018497 0.1823826 10.368768 0.001
2   conduct    13 0.05284076 0.2546904 0.2174249  2.835909 0.002
# Rozklad variance druhového složení plžů mezi proměnné reprezentujícími vliv vegetace a prostředí:
varpart.fw <- varpart (t.moll, vasc.scores[,fw.sel.vasc.adj$var], env[,fw.sel.env.adj$var])
varpart.fw
Partition of variation in RDA

Call: varpart(Y = t.moll, X = vasc.scores[, fw.sel.vasc.adj$var], env[,
fw.sel.env.adj$var])

Explanatory tables:
X1:  vasc.scores[, fw.sel.vasc.adj$var]
X2:  env[, fw.sel.env.adj$var] 

No. of explanatory tables: 2 
Total variation (SS): 2139.3 
            Variance: 50.936 
No. of observations: 43 

Partition table:
                     Df R.squared Adj.R.squared Testable
[a+b] = X1            2   0.29932       0.26428     TRUE
[b+c] = X2            2   0.25469       0.21742     TRUE
[a+b+c] = X1+X2       4   0.34823       0.27962     TRUE
Individual fractions                                    
[a] = X1|X2           2                 0.06220     TRUE
[b]                   0                 0.20209    FALSE
[c] = X2|X1           2                 0.01534     TRUE
[d] = Residuals                         0.72038    FALSE
---
Use function 'rda' to test significance of fractions of interest
# Vennuv diagram
plot (varpart.fw)

# Otestování signifikance
# 1. celého modelu (a+b+c):
anova.abc <- anova (rda (t.moll ~ vasc.scores[,'PC1'] + vasc.scores[,'PC2'] + env$Ca + env$conduct))

# 2. čistého vlivu vegetace ([a]):
anova.a <- anova (rda (t.moll ~ vasc.scores[,'PC1'] + vasc.scores[,'PC2'] + Condition (env$Ca + env$conduct)))

# 3. čistého vlivu proměnných prostředí ([c]):
anova.c <- anova (rda (t.moll ~ Condition (vasc.scores[,'PC1'] + vasc.scores[,'PC2']) + env$Ca + env$conduct))

# vypsání průkazností:
anova.abc
Permutation test for rda under reduced model

Model: rda(formula = t.moll ~ vasc.scores[, "PC1"] + vasc.scores[, "PC2"] + env$Ca + env$conduct)
         Df    Var      F N.Perm Pr(>F)   
Model     4 17.738 5.0757    199  0.005 **
Residual 38 33.199                        
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
anova.a
Permutation test for rda under reduced model

Model: rda(formula = t.moll ~ vasc.scores[, "PC1"] + vasc.scores[, "PC2"] + Condition(env$Ca + env$conduct))
         Df    Var      F N.Perm Pr(>F)   
Model     2  4.765 2.7268    199  0.005 **
Residual 38 33.199                        
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
anova.c
Permutation test for rda under reduced model

Model: rda(formula = t.moll ~ Condition(vasc.scores[, "PC1"] + vasc.scores[, "PC2"]) + env$Ca + env$conduct)
         Df    Var      F N.Perm Pr(>F)  
Model     2  2.491 1.4259    499  0.086 .
Residual 38 33.199                       
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Celkový model (tedy dvě vegetační osy a dvě proměnné prostředí) vysvětlí 28% variability v datech o druhovém složení plžů, a je průkazný. Čistý vliv vegetace je vyšší než čistý vliv proměnných prostředí (6.2 vs 1.5%) a zatímco čistý vliv vegetace je průkazný (p < 0.01), čistý vliv proměnných prostředí průkazný není (p = 0.086).

cs/mix/molluscs/solution.txt · Last modified: 2017/10/11 20:36 (external edit)