Analysis of count data with covariates in R using LORI - tutorial

Genevieve Robin

2018-10-04

LORI (LOw-Rank Interaction) model for count data with covariates

The LORI model is designed to analyse count data with covariates, using a Poisson log-linear model. In particular, it can be used to assess the effect of temporal and geographical covariates on species abundances.

Let \(Y\in\mathbb{N}^{n\times p}\) be a (incomplete) matrix of counts, and \(L\in\mathbb{R}^{np\times K}\) a matrix of covariates about the rows and columns of \(Y\). For example if \(Y\) counts the abundance of species across sites (rows) and time stamps (columns), \(L\) might contain temporal, spatial, and spatio-temporal information.

library(lori)
library(glmnet)
## Loading required package: Matrix
## Loading required package: foreach
## Loaded glmnet 2.0-16
library(gridExtra)
data("aravo")

Example: Aravo data set

The {Aravo data set} measures the abundance of \(82\) species of alpine plants in \(75\) sites in France. The data consist of a contingency table collecting the abundance of species across sampling sites. Covariates about the environments and species are also available.

##      Aspect Slope Form PhysD ZoogD Snow
## AR07      7     2    1    50    no  140
## AR71      1    35    3    40    no  140
## AR26      5     0    3    20    no  140
## AR54      9    30    3    80    no  140
## AR60      9     5    1    80    no  140
## AR70      1    30    3    40    no  140
##           Height Spread Angle  Area Thick  SLA N_mass Seed
## Agro.rupe      6     10    80  60.0  0.12  8.1 218.70 0.08
## Alop.alpi      5     20    20 190.9  0.20 15.1 203.85 0.21
## Anth.nipp     15      5    50 280.0  0.08 18.0 219.60 0.54
## Heli.sede      0     30    80 600.0  0.20 10.6 233.20 1.72
## Aven.vers     12     30    60 420.0  0.14 12.5 156.25 1.17
## Care.rosa     30     20    80 180.0  0.40  6.5 208.65 1.68
## 
 1 / 100
 2 / 100
 3 / 100
 4 / 100
 5 / 100
 6 / 100
 7 / 100
 8 / 100
 9 / 100
 10 / 100
 11 / 100
 12 / 100
 13 / 100
 14 / 100
 15 / 100
 16 / 100
 17 / 100
 18 / 100
 19 / 100
 20 / 100
 21 / 100
 22 / 100
 23 / 100
 24 / 100
 25 / 100
 26 / 100
 27 / 100
 28 / 100
 29 / 100
 30 / 100
 31 / 100
 32 / 100
 33 / 100
 34 / 100
 35 / 100
 36 / 100
 37 / 100
 38 / 100
 39 / 100
 40 / 100
 41 / 100
 42 / 100
 43 / 100
 44 / 100
 45 / 100
 46 / 100
 47 / 100
 48 / 100
 49 / 100
 50 / 100
 51 / 100
 52 / 100
 53 / 100
 54 / 100
 55 / 100
 56 / 100
 57 / 100
 58 / 100
 59 / 100
 60 / 100
 61 / 100
 62 / 100
 63 / 100
 64 / 100
 65 / 100
 66 / 100
 67 / 100
 68 / 100
 69 / 100
 70 / 100
 71 / 100
 72 / 100
 73 / 100
 74 / 100
 75 / 100
 76 / 100
 77 / 100
 78 / 100
 79 / 100
 80 / 100
 81 / 100
 82 / 100
 83 / 100
 84 / 100
 85 / 100
 86 / 100
 87 / 100
 88 / 100
 89 / 100
 90 / 100
 91 / 100
 92 / 100
 93 / 100
 94 / 100
 95 / 100
 96 / 100
 97 / 100
 98 / 100
 99 / 100
 100 / 100
## [1] "fitting model..."
## 
1%
2%
3%
4%
5%
6%
7%
8%
9%
10%
11%
12%
13%
14%
15%
16%
17%
18%
19%
20%
21%
22%
23%
24%
25%
26%
27%
28%
29%
30%
31%
32%
33%
34%
35%
36%
37%
38%
39%
40%
41%
42%
43%
44%
45%
46%
47%
48%
49%
50%
51%
52%
53%
54%
55%
56%
57%
58%
59%
60%
61%
62%
63%
64%
65%
66%
67%
68%
69%
70%
71%
72%
73%
74%
75%
76%
77%
78%
79%
80%
81%
82%
83%
84%
85%
86%
87%
88%
89%
90%
91%
92%
93%
94%
95%
96%
97%
98%
99%
100%
100% - iter: 10 - error: 1.170462e-05 - objective: 0.6617426
100% - iter: 20 - error: 1.169266e-05 - objective: 0.6616652
100% - iter: 30 - error: 1.16807e-05 - objective: 0.6615879
100% - iter: 40 - error: 1.166876e-05 - objective: 0.6615107
100% - iter: 50 - error: 1.165681e-05 - objective: 0.6614335
100% - iter: 60 - error: 1.164488e-05 - objective: 0.6613565
100% - iter: 70 - error: 1.163295e-05 - objective: 0.6612795
100% - iter: 80 - error: 1.162102e-05 - objective: 0.6612026
100% - iter: 90 - error: 1.16091e-05 - objective: 0.6611258
100% - iter: 100 - error: 1.159719e-05 - objective: 0.6610491
100% - iter: 110 - error: 1.158528e-05 - objective: 0.6609725
100% - iter: 120 - error: 1.157338e-05 - objective: 0.660896
100% - iter: 130 - error: 1.156148e-05 - objective: 0.6608196
100% - iter: 140 - error: 1.154959e-05 - objective: 0.6607432
100% - iter: 150 - error: 1.153771e-05 - objective: 0.6606669
100% - iter: 160 - error: 1.152583e-05 - objective: 0.6605908
100% - iter: 170 - error: 1.151396e-05 - objective: 0.6605147
100% - iter: 180 - error: 1.150209e-05 - objective: 0.6604387
100% - iter: 190 - error: 1.149023e-05 - objective: 0.6603627
100% - iter: 200 - error: 1.147837e-05 - objective: 0.6602869
100% - iter: 210 - error: 1.146652e-05 - objective: 0.6602112
100% - iter: 220 - error: 1.145468e-05 - objective: 0.6601355
100% - iter: 230 - error: 1.144284e-05 - objective: 0.66006
100% - iter: 240 - error: 1.1431e-05 - objective: 0.6599845
100% - iter: 250 - error: 1.141918e-05 - objective: 0.6599091
100% - iter: 260 - error: 1.140735e-05 - objective: 0.6598338
100% - iter: 270 - error: 1.139554e-05 - objective: 0.6597585
100% - iter: 280 - error: 1.138373e-05 - objective: 0.6596834
100% - iter: 290 - error: 1.137192e-05 - objective: 0.6596084
100% - iter: 300 - error: 1.136013e-05 - objective: 0.6595334
100% - iter: 310 - error: 1.134833e-05 - objective: 0.6594585
100% - iter: 320 - error: 1.133655e-05 - objective: 0.6593837
100% - iter: 330 - error: 1.132476e-05 - objective: 0.659309
100% - iter: 340 - error: 1.131299e-05 - objective: 0.6592344
100% - iter: 350 - error: 1.130122e-05 - objective: 0.6591599
100% - iter: 360 - error: 1.128945e-05 - objective: 0.6590854
100% - iter: 370 - error: 1.127769e-05 - objective: 0.6590111
100% - iter: 380 - error: 1.126594e-05 - objective: 0.6589368
100% - iter: 390 - error: 1.125419e-05 - objective: 0.6588626
100% - iter: 400 - error: 1.124245e-05 - objective: 0.6587885
100% - iter: 410 - error: 1.123072e-05 - objective: 0.6587145
100% - iter: 420 - error: 1.121899e-05 - objective: 0.6586406
100% - iter: 430 - error: 1.120726e-05 - objective: 0.6585667
100% - iter: 440 - error: 1.119554e-05 - objective: 0.658493
100% - iter: 450 - error: 1.118383e-05 - objective: 0.6584193
100% - iter: 460 - error: 1.117212e-05 - objective: 0.6583457
100% - iter: 470 - error: 1.116042e-05 - objective: 0.6582722
100% - iter: 480 - error: 1.114872e-05 - objective: 0.6581988
100% - iter: 490 - error: 1.113703e-05 - objective: 0.6581254
100% - iter: 500 - error: 1.112535e-05 - objective: 0.6580522
100% - iter: 510 - error: 1.111367e-05 - objective: 0.657979
100% - iter: 520 - error: 1.1102e-05 - objective: 0.6579059
100% - iter: 530 - error: 1.109033e-05 - objective: 0.6578329
100% - iter: 540 - error: 1.107867e-05 - objective: 0.65776
100% - iter: 550 - error: 1.106701e-05 - objective: 0.6576872
100% - iter: 560 - error: 1.105536e-05 - objective: 0.6576145
100% - iter: 570 - error: 1.104372e-05 - objective: 0.6575418
100% - iter: 580 - error: 1.103208e-05 - objective: 0.6574692
100% - iter: 590 - error: 1.102045e-05 - objective: 0.6573968
100% - iter: 600 - error: 1.100882e-05 - objective: 0.6573244
100% - iter: 610 - error: 1.09972e-05 - objective: 0.657252
100% - iter: 620 - error: 1.098558e-05 - objective: 0.6571798
100% - iter: 630 - error: 1.097397e-05 - objective: 0.6571077
100% - iter: 640 - error: 1.096237e-05 - objective: 0.6570356
100% - iter: 650 - error: 1.095077e-05 - objective: 0.6569636
100% - iter: 660 - error: 1.093917e-05 - objective: 0.6568917
100% - iter: 670 - error: 1.092759e-05 - objective: 0.6568199
100% - iter: 680 - error: 1.0916e-05 - objective: 0.6567482
100% - iter: 690 - error: 1.090443e-05 - objective: 0.6566765
100% - iter: 700 - error: 1.089286e-05 - objective: 0.656605
100% - iter: 710 - error: 1.088129e-05 - objective: 0.6565335
100% - iter: 720 - error: 1.086974e-05 - objective: 0.6564621
100% - iter: 730 - error: 1.085818e-05 - objective: 0.6563908
100% - iter: 740 - error: 1.084663e-05 - objective: 0.6563196
100% - iter: 750 - error: 1.083509e-05 - objective: 0.6562484
100% - iter: 760 - error: 1.082356e-05 - objective: 0.6561774
100% - iter: 770 - error: 1.081203e-05 - objective: 0.6561064
100% - iter: 780 - error: 1.08005e-05 - objective: 0.6560355
100% - iter: 790 - error: 1.078898e-05 - objective: 0.6559647
100% - iter: 800 - error: 1.077747e-05 - objective: 0.655894
100% - iter: 810 - error: 1.076596e-05 - objective: 0.6558233
100% - iter: 820 - error: 1.075446e-05 - objective: 0.6557528
100% - iter: 830 - error: 1.074297e-05 - objective: 0.6556823
100% - iter: 840 - error: 1.073148e-05 - objective: 0.6556119
100% - iter: 850 - error: 1.071999e-05 - objective: 0.6555416
100% - iter: 860 - error: 1.070851e-05 - objective: 0.6554713
100% - iter: 870 - error: 1.069704e-05 - objective: 0.6554012
100% - iter: 880 - error: 1.068557e-05 - objective: 0.6553311
100% - iter: 890 - error: 1.067411e-05 - objective: 0.6552612
100% - iter: 900 - error: 1.066265e-05 - objective: 0.6551913
100% - iter: 910 - error: 1.06512e-05 - objective: 0.6551214
100% - iter: 920 - error: 1.063976e-05 - objective: 0.6550517
100% - iter: 930 - error: 1.062832e-05 - objective: 0.6549821
100% - iter: 940 - error: 1.061689e-05 - objective: 0.6549125
100% - iter: 950 - error: 1.060546e-05 - objective: 0.654843
100% - iter: 960 - error: 1.059404e-05 - objective: 0.6547736
100% - iter: 970 - error: 1.058263e-05 - objective: 0.6547043
100% - iter: 980 - error: 1.057122e-05 - objective: 0.654635
100% - iter: 990 - error: 1.055981e-05 - objective: 0.6545659
100% - iter: 1000 - error: 1.054841e-05 - objective: 0.6544968
##      Aspect       Slope       PhysD        Snow      Height      Spread 
##  0.03812487  0.07070402 -0.01872686 -0.07311364  0.09327172 -0.23549705 
##       Angle        Area       Thick         SLA      N_mass        Seed 
## -0.18366508 -0.19437829 -0.10844523 -0.16766109  0.18173165 -0.11695309