adonis în vegan: ordinea variabilelor sau utilizarea stratelor
On februarie 15, 2021 by admin Folosesc funcția adonis()
în vegan
pachet pentru a determina 1) dacă speciile gazdă care apar în comun variază în comunitatea lor microbiană pe mai multe situri și 2) dacă siturile sunt diferite. Am examinat toate postările de pe CV și SO și nu există un răspuns clar la modul de determinare a semnificației mai multor factori folosind funcția adonis.
Am făcut acest lucru mai întâi, așa cum sugerează https://stackoverflow.com/questions/26768779/vegan-adonis-unbalanced-design-ss-type-ii-or-iii :
unde jacc este o matrice de diferențiere care utilizează metrica jaccard
adonis <- adonis(jacc ~ Species + Site, data = df_compare) adonis Call: adonis(formula = jacc ~ Species + Site, data = df_compare) Permutation: free Number of permutations: 999 Terms added sequentially (first to last) Df SumsOfSqs MeanSqs F.Model R2 Pr(>F) Species 2 0.6055 0.30273 1.7690 0.04981 0.004 ** Site 4 2.1378 0.53445 3.1231 0.17587 0.001 *** Residuals 55 9.4122 0.17113 0.77432 Total 61 12.1554 1.00000 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Apoi inversați ordinea:
adonis_2 <- adonis(jacc ~ Site + Species, data = df_compare) adonis_2 Call: adonis(formula = jacc ~ Site + Species, data = df_compare) Permutation: free Number of permutations: 999 Terms added sequentially (first to last) Df SumsOfSqs MeanSqs F.Model R2 Pr(>F) Site 4 2.4385 0.60962 3.5623 0.20061 0.001 *** Species 2 0.3048 0.15238 0.8904 0.02507 0.716 Residuals 55 9.4122 0.17113 0.77432 Total 61 12.1554 1.00000 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Dar nu știu cum să interpretez asta, deoarece ordinea contează și Nu sunt sigur dacă există diferențe între specii.
După câteva căutări, am decis să folosesc straturi.
Cred că se spune: speciile care apar în comun sunt diferite atunci când comparați speciile doar în aceleași locuri.
species_adonis <- adonis(jacc ~ Species, strata = df_compare$Site, data = df_compare) species_adonis Call: adonis(formula = jacc ~ Species, data = df_compare, strata = df_compare$Site) Blocks: strata Permutation: free Number of permutations: 999 Terms added sequentially (first to last) Df SumsOfSqs MeanSqs F.Model R2 Pr(>F) Species 2 0.6055 0.30273 1.5464 0.04981 0.335 Residuals 59 11.5500 0.19576 0.95019 Total 61 12.1554 1.00000
Apoi, pentru a pune întrebarea despre site, am folosit specii în blocare.
Cred că se spune: site-urile sunt diferite atunci când comparați doar aceeași specie
site_adonis <- adonis(jacc ~ Site, strata = df_compare$Species, data = df_compare) Call: adonis(formula = jacc ~ Site, data = df_compare, strata = df_compare$Species) Blocks: strata Permutation: free Number of permutations: 999 Terms added sequentially (first to last) Df SumsOfSqs MeanSqs F.Model R2 Pr(>F) Site 4 2.4385 0.60962 3.5761 0.20061 0.001 *** Residuals 57 9.7169 0.17047 0.79939 Total 61 12.1554 1.00000 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Concluzia mea este că comunitatea microbiană pe o anumită specie diferă între site-uri, dar că comunitatea microbiană nu diferă specii gazdă.
Este abordarea mea corectă sau interpretez greșit utilizarea straturilor (adică blocarea)?
Sau există o modalitate de a face cumva media peste teste când am schimbat ordinea variabilelor ?
Răspuns
După cum v-ați observat, rulați două modele adonis cu factorii fixi inversați vedeți că atât varianța atribuite fiecărui factor, iar valorile P diferă de fiecare dată. Acest lucru se întâmplă în modele dezechilibrate, cum ar fi ale dvs., în care gradele de libertate asociate fiecărui factor diferă.
Din descrierea experimentului dvs., pare un caz clasic a unui design imbricat în care specia este imbricată în site. În acest caz, modelul pe care îl căutați ar trebui să arate astfel:
adonis <- adonis(jacc ~ Site / Species, strata = Site, data = df_compare)
.
Rețineți că imbricarea ar trebui să fie menționate atât în formularea modelului, cât și în straturi (vezi răspunsul lui Jari Oksanen ).
Comentarii
- puteți actualiza linkul pentru răspunsul Oksanen?
- Ne pare rău, nu pot găsi un nou link. Forumul a fost închis.
Lasă un răspuns