O pacote ecoCopula permite visualizar dados discretos multivariados com modelos gráficos e ordenação. O pacote foi projetado principalmente para dados de abundância multivariada em ecologia, porém pode ser aplicado a quaisquer dados discretos multivariados.

As duas funções principais são:

  1. Ordenação de cópula ( cord) para visualizar como amostras (sítios) e variáveis estão localizadas ao longo de diversas variáveis latentes (gradiente ambiental não observado).
  2. Modelos gráficos de cópula (cgr) para traçar um gráfico que distingue entre associações diretas e indiretas entre variáveis.

cgr: Ajusta lasso gráfico de cópula gaussiana a dados de coocorrência (multi espécies) em ecologia

Valor: Três objetos são retornados; best_graph é uma lista com parâmetros para o ‘melhor’ modelo gráfico, escolhido pelo método selecionado; all_graphs é uma lista com verossimilhança, BIC e AIC para todos os modelos ao longo do caminho de lambda; obj é o objeto de entrada.

Detalhes: O modelo é estimado usando amostragem de importância com K conjuntos de resíduos de Dunn–Smyth (padrão = 500), e o pacote glasso para ajustar modelos gráficos gaussianos.

summary.cgr Função de resumo para objeto cgr

y: Um quadro de dados com 28 observações sobre a abundância de 12 espécies de aranhas caçadoras.

abund <- spider$abund[,1:12]; abund
##       Alopacce Alopcune Alopfabr Arctlute Arctperi Auloalbi Pardlugu Pardmont
##  [1,]       25       10        0        0        0        4        0       60
##  [2,]        0        2        0        0        0       30        1        1
##  [3,]       15       20        2        2        0        9        1       29
##  [4,]        2        6        0        1        0       24        1        7
##  [5,]        1       20        0        2        0        9        1        2
##  [6,]        0        6        0        6        0        6        0       11
##  [7,]        2        7        0       12        0       16        1       30
##  [8,]        0       11        0        0        0        7       55        2
##  [9,]        1        1        0        0        0        0        0       26
## [10,]        3        0        1        0        0        0        0       22
## [11,]       15        1        2        0        0        1        0       95
## [12,]       16       13        0        0        0        0        0       96
## [13,]        3       43        1        2        0       18        1       24
## [14,]        0        2        0        1        0        4        3       14
## [15,]        0        0        0        0        0        0        6        0
## [16,]        0        3        0        0        0        0        6        0
## [17,]        0        0        0        0        0        0        2        0
## [18,]        0        1        0        0        0        0        5        0
## [19,]        0        1        0        0        0        0       12        0
## [20,]        0        2        0        0        0        0       13        0
## [21,]        0        1        0        0        0        0       16        1
## [22,]        7        0       16        0        4        0        0        2
## [23,]       17        0       15        0        7        0        2        6
## [24,]       11        0       20        0        5        0        0        3
## [25,]        9        1        9        0        0        2        1       11
## [26,]        3        0        6        0       18        0        0        0
## [27,]       29        0       11        0        4        0        0        1
## [28,]       15        0       14        0        1        0        0        6
##       Pardnigr Pardpull Trocterr Zoraspin
##  [1,]       12       45       57        4
##  [2,]       15       37       65        9
##  [3,]       18       45       66        1
##  [4,]       29       94       86       25
##  [5,]      135       76       91       17
##  [6,]       27       24       63       34
##  [7,]       89      105      118       16
##  [8,]        2        1       30        3
##  [9,]        1        1        2        0
## [10,]        0        0        1        0
## [11,]        0        1        4        0
## [12,]        1        8       13        0
## [13,]       53       72       97       22
## [14,]       15       72       94       32
## [15,]        0        0       25        3
## [16,]        2        0       28        4
## [17,]        0        0       23        2
## [18,]        0        0       25        0
## [19,]        1        0       22        3
## [20,]        0        0       22        2
## [21,]        0        1       18        2
## [22,]        0        0        1        0
## [23,]        0        0        1        0
## [24,]        0        0        0        0
## [25,]        6        0       16        6
## [26,]        0        0        1        0
## [27,]        0        0        0        0
## [28,]        0        0        2        0

X: Uma matriz de seis variáveis ambientais (transformadas) em cada um dos 28 locais.

data = spider$x; data
##    soil.dry bare.sand fallen.leaves   moss herb.layer reflection
## 1    2.3321    0.0000        0.0000 3.0445     4.4543     3.9120
## 2    3.0493    0.0000        1.7918 1.0986     4.5643     1.6094
## 3    2.5572    0.0000        0.0000 2.3979     4.6052     3.6889
## 4    2.6741    0.0000        0.0000 2.3979     4.6151     2.9957
## 5    3.0155    0.0000        0.0000 0.0000     4.6151     2.3026
## 6    3.3810    2.3979        3.4340 2.3979     3.4340     0.6931
## 7    3.1781    0.0000        0.0000 0.6931     4.6151     2.3026
## 8    2.6247    0.0000        4.2627 1.0986     3.4340     0.6931
## 9    2.4849    0.0000        0.0000 4.3307     3.2581     3.4012
## 10   2.1972    3.9318        0.0000 3.4340     3.0445     3.6889
## 11   2.2192    0.0000        0.0000 4.1109     3.7136     3.6889
## 12   2.2925    0.0000        0.0000 3.8286     4.0254     3.6889
## 13   3.5175    1.7918        1.7918 0.6931     4.5109     3.4012
## 14   3.0865    0.0000        0.0000 1.7918     4.5643     1.0986
## 15   3.2696    0.0000        4.3944 0.6931     3.0445     0.6931
## 16   3.0301    0.0000        4.6052 0.6931     0.6931     0.0000
## 17   3.3322    0.0000        4.4543 0.6931     3.0445     1.0986
## 18   3.1224    0.0000        4.3944 0.0000     3.0445     1.0986
## 19   2.9232    0.0000        4.5109 1.6094     1.6094     0.0000
## 20   3.1091    0.0000        4.5951 0.6931     0.6931     0.0000
## 21   2.9755    0.0000        4.5643 0.6931     1.7918     0.0000
## 22   1.2528    3.2581        0.0000 4.3307     0.6931     3.9120
## 23   1.1939    3.0445        0.0000 4.0254     3.2581     4.0943
## 24   1.6487    3.2581        0.0000 4.0254     3.0445     4.0073
## 25   1.8245    3.5835        0.0000 1.0986     4.1109     2.3026
## 26   0.9933    4.5109        0.0000 1.7918     1.7918     4.3820
## 27   0.9555    2.3979        0.0000 3.8286     3.4340     3.6889
## 28   0.9555    3.4340        0.0000 3.7136     3.4340     3.6889

Um objeto stackedsdm utilizado para previsão em Modelos de regressão de espécies empilhadas, ajustados em paralelo. (Pacote mvabund)

Inicialmente, estamos ajustando um modelo com intercepto apenas, sem considerar nenhum outra variável explicativa.

# Estimativa dos parâmetros beta e psi
spider_mod <- stackedsdm(abund,~1, data = spider$x, ncores=2) 
spid_graph=cgr(spider_mod) 
summary(spid_graph)
## 
## Call:
## stackedsdm(y = abund, formula_X = ~1, data = spider$x, ncores = 2)
## 
## Pairwise associations:
##        Alo    Alo    Alo    Arc    Arc   Aul    Par    Par   Par   Par    Tro
## Alo  0.000  0.000  0.304  0.000  0.056 0.000 -0.275  0.385 0.000 0.000 -0.025
## Alo  0.000  0.000  0.000  0.000 -0.050 0.047  0.000  0.133 0.231 0.155  0.224
## Alo  0.304  0.000  0.000  0.000  0.235 0.000 -0.015  0.000 0.000 0.000 -0.224
## Arc  0.000  0.000  0.000  0.000  0.000 0.023 -0.035  0.000 0.167 0.137  0.048
## Arc  0.056 -0.050  0.235  0.000  0.000 0.000 -0.042 -0.067 0.000 0.000 -0.147
## Aul  0.000  0.047  0.000  0.023  0.000 0.000  0.000  0.021 0.195 0.247  0.102
## Par -0.275  0.000 -0.015 -0.035 -0.042 0.000  0.000 -0.203 0.000 0.000  0.105
## Par  0.385  0.133  0.000  0.000 -0.067 0.021 -0.203  0.000 0.000 0.247  0.000
## Par  0.000  0.231  0.000  0.167  0.000 0.195  0.000  0.000 0.000 0.193  0.117
## Par  0.000  0.155  0.000  0.137  0.000 0.247  0.000  0.247 0.193 0.000  0.164
## Tro -0.025  0.224 -0.224  0.048 -0.147 0.102  0.105  0.000 0.117 0.164  0.000
## Zor -0.130  0.000  0.000  0.093  0.000 0.116  0.000  0.000 0.166 0.000  0.405
##        Zor
## Alo -0.130
## Alo  0.000
## Alo  0.000
## Arc  0.093
## Arc  0.000
## Aul  0.116
## Par  0.000
## Par  0.000
## Par  0.166
## Par  0.000
## Tro  0.405
## Zor  0.000
spid_graph$best_graph$cov
##             Alopacce    Alopcune    Alopfabr    Arctlute    Arctperi
## Alopacce  1.00000000 -0.10339710  0.48462796 -0.09501208  0.26065214
## Alopcune -0.10339710  1.00000000 -0.29846793  0.36839842 -0.31701899
## Alopfabr  0.48462796 -0.29846793  1.00000000 -0.20946898  0.43907508
## Arctlute -0.09501208  0.36839842 -0.20946898  1.00000000 -0.19799175
## Arctperi  0.26065214 -0.31701899  0.43907508 -0.19799175  1.00000000
## Auloalbi -0.13165304  0.51225212 -0.28601866  0.38177548 -0.27176781
## Pardlugu -0.49124352  0.07437421 -0.29037331  0.04249923 -0.18741450
## Pardmont  0.45128155  0.29620190  0.09576954  0.16033663 -0.05490586
## Pardnigr -0.16065334  0.62222075 -0.32582837  0.47818962 -0.30843692
## Pardpull -0.05318095  0.59746808 -0.27182962  0.45072469 -0.28454042
## Trocterr -0.31497674  0.62229433 -0.51665642  0.43051248 -0.44834230
## Zoraspin -0.31854074  0.50100453 -0.40864083  0.41340246 -0.34386151
##             Auloalbi    Pardlugu    Pardmont   Pardnigr    Pardpull   Trocterr
## Alopacce -0.13165304 -0.49124352  0.45128155 -0.1606533 -0.05318095 -0.3149767
## Alopcune  0.51225212  0.07437421  0.29620190  0.6222207  0.59746808  0.6222943
## Alopfabr -0.28601866 -0.29037331  0.09576954 -0.3258284 -0.27182962 -0.5166564
## Arctlute  0.38177548  0.04249923  0.16033663  0.4781896  0.45072469  0.4305125
## Arctperi -0.27176781 -0.18741450 -0.05490586 -0.3084369 -0.28454042 -0.4483423
## Auloalbi  1.00000000  0.09092954  0.22321611  0.6088848  0.61189976  0.5835068
## Pardlugu  0.09092954  1.00000000 -0.35186060  0.1100958  0.03203937  0.2470608
## Pardmont  0.22321611 -0.35186060  1.00000000  0.2261169  0.38533731  0.1368118
## Pardnigr  0.60888484  0.11009576  0.22611694  1.0000000  0.64211159  0.6543311
## Pardpull  0.61189976  0.03203937  0.38533731  0.6421116  1.00000000  0.6128274
## Trocterr  0.58350676  0.24706080  0.13681177  0.6543311  0.61282743  1.0000000
## Zoraspin  0.53561282  0.20913351  0.08705506  0.6058451  0.51027603  0.7267551
##             Zoraspin
## Alopacce -0.31854074
## Alopcune  0.50100453
## Alopfabr -0.40864083
## Arctlute  0.41340246
## Arctperi -0.34386151
## Auloalbi  0.53561282
## Pardlugu  0.20913351
## Pardmont  0.08705506
## Pardnigr  0.60584514
## Pardpull  0.51027603
## Trocterr  0.72675509
## Zoraspin  1.00000000
spid_graph$all_graphs$lambda.opt
## [1] 0.09686299
plot(spid_graph,pad=1)

Controle por covariáveis

Estamos ajustando um modelo com covariavéis ambientais, exceto areia exposta.

X <- spider$x # X
abund <- spider$abund # y
myfamily <- "negative.binomial"
#Modelos de regressão de espécies empilhadas, estimativa dos parâmetros beta e psi
spider_mod1 <- stackedsdm(abund, formula_X = ~. -bare.sand, data = X, family = myfamily, ncores = 2)
spid_graph1=cgr(spider_mod1) 
summary(spid_graph1)
## 
## Call:
## stackedsdm(y = abund, formula_X = ~. - bare.sand, data = X, family = myfamily, 
##     ncores = 2)
## 
## Pairwise associations:
##       Alo   Alo Alo Arc Arc Aul Par   Par   Par Par   Tro   Zor
## Alo 0.000 0.000   0   0   0   0   0 0.069 0.000   0 0.000 0.000
## Alo 0.000 0.000   0   0   0   0   0 0.000 0.141   0 0.194 0.000
## Alo 0.000 0.000   0   0   0   0   0 0.000 0.000   0 0.000 0.000
## Arc 0.000 0.000   0   0   0   0   0 0.000 0.000   0 0.000 0.000
## Arc 0.000 0.000   0   0   0   0   0 0.000 0.000   0 0.000 0.000
## Aul 0.000 0.000   0   0   0   0   0 0.000 0.000   0 0.000 0.000
## Par 0.000 0.000   0   0   0   0   0 0.000 0.000   0 0.000 0.000
## Par 0.069 0.000   0   0   0   0   0 0.000 0.000   0 0.000 0.000
## Par 0.000 0.141   0   0   0   0   0 0.000 0.000   0 0.152 0.190
## Par 0.000 0.000   0   0   0   0   0 0.000 0.000   0 0.000 0.000
## Tro 0.000 0.194   0   0   0   0   0 0.000 0.152   0 0.000 0.112
## Zor 0.000 0.000   0   0   0   0   0 0.000 0.190   0 0.112 0.000
spid_graph1$best_graph$cov
##           Alopacce   Alopcune Alopfabr Arctlute Arctperi Auloalbi Pardlugu
## Alopacce 1.0000000 0.00000000        0        0        0        0        0
## Alopcune 0.0000000 1.00000000        0        0        0        0        0
## Alopfabr 0.0000000 0.00000000        1        0        0        0        0
## Arctlute 0.0000000 0.00000000        0        1        0        0        0
## Arctperi 0.0000000 0.00000000        0        0        1        0        0
## Auloalbi 0.0000000 0.00000000        0        0        0        1        0
## Pardlugu 0.0000000 0.00000000        0        0        0        0        1
## Pardmont 0.0693495 0.00000000        0        0        0        0        0
## Pardnigr 0.0000000 0.18538788        0        0        0        0        0
## Pardpull 0.0000000 0.00000000        0        0        0        0        0
## Trocterr 0.0000000 0.22726989        0        0        0        0        0
## Zoraspin 0.0000000 0.06197391        0        0        0        0        0
##           Pardmont  Pardnigr Pardpull  Trocterr   Zoraspin
## Alopacce 0.0693495 0.0000000        0 0.0000000 0.00000000
## Alopcune 0.0000000 0.1853879        0 0.2272699 0.06197391
## Alopfabr 0.0000000 0.0000000        0 0.0000000 0.00000000
## Arctlute 0.0000000 0.0000000        0 0.0000000 0.00000000
## Arctperi 0.0000000 0.0000000        0 0.0000000 0.00000000
## Auloalbi 0.0000000 0.0000000        0 0.0000000 0.00000000
## Pardlugu 0.0000000 0.0000000        0 0.0000000 0.00000000
## Pardmont 1.0000000 0.0000000        0 0.0000000 0.00000000
## Pardnigr 0.0000000 1.0000000        0 0.2123125 0.21844105
## Pardpull 0.0000000 0.0000000        1 0.0000000 0.00000000
## Trocterr 0.0000000 0.2123125        0 1.0000000 0.15552298
## Zoraspin 0.0000000 0.2184410        0 0.1555230 1.00000000
spid_graph1$all_graphs$lambda.opt
## [1] 0.3587627
plot(spid_graph1,pad=1)