R/matrix_glmNB.r
matrix_glmNB.Rd
Takes a matrix of observations, and fits the specified Negative Binomial GLM on each species, returning the matrix of coefficients.
matrix_glmNB(x, ...) # S3 method for default matrix_glmNB(x = NULL, Map = NULL, formula = NULL, response.name = "Count", verbose = FALSE, ...) # S3 method for Dataset matrix_glmNB(x, formula = NULL, response.name = "Count", verbose = FALSE, ...)
x | Either a matrix of abundances with samples as columns and species as rows or a Dataset object |
---|---|
... | Other parameters for the glm.nb function like control. |
Map | A data.frame containing the variables to be modelled as columns and samples as rows. The rows should be named with sample IDs and must correspond to the column names from x if an abundance matrix was passed |
formula | A formula specifying the model to be fit. Only the right hand side of the equation must be passed, and anything on the left side wild be silently ignored |
response.name | String indicating the name to be used for the response (dependent) variable in the GLM |
verbose | Logical value. If true the taza name is printed while the fit is in progress. |
Returns a matrix.glm object which is a list containing the following elements:
A matrix of coefficients for the glm fit. The matix has dimensions S x p, where S is the number of species in the abundance matrix, and p the number of parameters in the specified GLM. Each row corresponds to an independent fit of the model with glm() function and the specified formula
Similar to Coef, but this matrix contains the estimated Standard Errors (ie. the Standard deviation of the coefficients).
A named vector containing the Akaike Information Criteria (AIC) of each independent fit. The names of the vector correspond to the species IDs in the input abundance matrix
A vector of theta (ie. the overdispersion parameter) for each taxon
A vector of standard errorrs for the overdispersion parameter.
Function call via match.call
GLM model family. An object of class family
Design matrix of the model fit.
This function will take each species (row) in the abundance matrix and fit the specified (via the formula option) Negative binomial GLM independently on each one, using the glm.nb function from then MASS package.
data(Rhizo) data(Rhizo.map) data(Rhizo.tax) Dat <- create_dataset(Rhizo,Rhizo.map,Rhizo.tax) m1.nb <- matrix_glmNB(x=Dat$Tab,Map=Dat$Map, formula=~accession + plate)#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: glm.fit: fitted rates numerically 0 occurred#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: alternation limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: glm.fit: fitted rates numerically 0 occurred#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: alternation limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: alternation limit reached#> Warning: glm.fit: fitted rates numerically 0 occurred#> Warning: glm.fit: fitted rates numerically 0 occurred#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: alternation limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: alternation limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: glm.fit: fitted rates numerically 0 occurred#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: alternation limit reached#> Warning: glm.fit: fitted rates numerically 0 occurred#> Warning: glm.fit: fitted rates numerically 0 occurred#> Warning: glm.fit: fitted rates numerically 0 occurred#> Warning: glm.fit: fitted rates numerically 0 occurredm1.nb <- matrix_glmNB(Dat,formula=~accession + plate, control=glm.control(epsilon=1e-5,maxit=25), verbose=TRUE)#> OTU_14834 #> OTU_18567 #> OTU_14402 #> OTU_14822#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_16757 #> OTU_15154 #> OTU_7054 #> OTU_1196 #> OTU_18954 #> OTU_14839 #> OTU_13797 #> OTU_11245 #> OTU_19706 #> OTU_19511 #> OTU_19108 #> OTU_4555 #> OTU_19383 #> OTU_18240 #> OTU_10942 #> OTU_4035 #> OTU_5475 #> OTU_15151 #> OTU_18588 #> OTU_15877 #> OTU_19673#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_19937 #> OTU_19482 #> OTU_12773 #> OTU_3802#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_18407 #> OTU_220 #> OTU_18945#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_333 #> OTU_19245 #> OTU_11920#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_14820 #> OTU_2324 #> OTU_17382 #> OTU_15891 #> OTU_18209 #> OTU_16101 #> OTU_15808#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_9086#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_15529 #> OTU_3497 #> OTU_13953 #> OTU_14928 #> OTU_18468#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_17863 #> OTU_14830 #> OTU_14824 #> OTU_14747 #> OTU_13788 #> OTU_14293#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_16786 #> OTU_14813 #> OTU_4362 #> OTU_14450#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_467 #> OTU_19189#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_10317#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_3327 #> OTU_14816#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_19859 #> OTU_1460 #> OTU_13230#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_9309 #> OTU_3106 #> OTU_14431 #> OTU_19297 #> OTU_13390#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_19047 #> OTU_8809#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_14814#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_10839#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_14876 #> OTU_14829#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_3149 #> OTU_2168 #> OTU_3613#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_13635#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_14586 #> OTU_16467#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_16873 #> OTU_9926#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_3821 #> OTU_8660#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_7481 #> OTU_14836 #> OTU_878 #> OTU_773 #> OTU_1089 #> OTU_18314 #> OTU_6688 #> OTU_11102#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_8055 #> OTU_506 #> OTU_636 #> OTU_13052#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_13524 #> OTU_6144 #> OTU_14790 #> OTU_1422 #> OTU_13874 #> OTU_12803 #> OTU_18539 #> OTU_19786 #> OTU_2279 #> OTU_15667 #> OTU_6613 #> OTU_18651 #> OTU_9848#> Warning: iteration limit reached#> Warning: iteration limit reached#> OTU_13355 #> OTU_13519 #> OTU_331 #> OTU_19916 #> OTU_6457 #> OTU_6024 #> OTU_14844 #> OTU_18380 #> OTU_14780 #> OTU_20070 #> OTU_19960 #> OTU_12223 #> OTU_18927 #> OTU_19093 #> OTU_11949 #> OTU_7118 #> OTU_16233