diff --git a/R/mc_bias_correct_std.R b/R/mc_bias_correct_std.R
index 718e9c178d194bc123ba58199b4e698efb5bd3ac..c9c5c163d3c2b01c9eb11009f949a1e1c7331e46 100644
--- a/R/mc_bias_correct_std.R
+++ b/R/mc_bias_correct_std.R
@@ -34,7 +34,7 @@ mc_bias_corrected_std <- function(object, id) {
     Hi[[i]] <- Di[[i]]%*%inv_M%*%t(Di[[i]])%*%inv_Ci[[i]]
     }
     H <- bdiag(Hi)
-    I <- Diagonal(dim(data)[1], 1)
+    I <- Diagonal(dim(temp_data)[1], 1)
     inv_IH <- solve(I - H)
     Vbeta = inv_M%*%(t(D)%*%object$inv_C%*%inv_IH%*%R%*%inv_IH%*%
                        object$inv_C%*%D)%*%inv_M
diff --git a/R/mc_influence.R b/R/mc_influence.R
index 437c6b52d53be45b07f54900b40f926b973cca32..fc5e4c495e0c4b7a396ca7677bdabf50c84a3259 100644
--- a/R/mc_influence.R
+++ b/R/mc_influence.R
@@ -14,6 +14,7 @@
 
 mc_influence <- function(object, id) {
   temp_data <- data.frame(object$residuals, id)
+  names(temp_data) <- c("res", "id")
   data_id <- split(temp_data, temp_data$id)
   n_id <- length(data_id)
   D <- bdiag(lapply(object$mu_list, function(x) x$D))
@@ -24,7 +25,7 @@ mc_influence <- function(object, id) {
   # Leverage for observations
   inv_M <- -object$inv_S_beta
   M <- solve(inv_M)
-  uni_id <- unique(id)
+  uni_id <- as.character(unique(id))
   Hi <- list()
   Di <- list()
   inv_Ci <- list()
@@ -42,7 +43,7 @@ mc_influence <- function(object, id) {
   # Leverage for observations
   Hobs <- diag(H)
   # Leverage for clusters
-  Hid <- tapply(Hobs, id, sum)
+  Hid <- tapply(Hobs, id, mean)
   # DFBETAs for clusters
   I <- Diagonal(dim(temp_data)[1], 1)
   inv_IH <- solve(I - H)
@@ -60,7 +61,7 @@ mc_influence <- function(object, id) {
     }
     inv_IH_i = inv_IH[idTF,idTF]
     r_i <- object$residuals[idTF]
-        DFBETACi[[i]] <- t(inv_M%*%t(D_i)%*%inv_C_i%*%inv_IH_i%*%r_i)
+    DFBETACi[[i]] <- t(inv_M%*%t(D_i)%*%inv_C_i%*%inv_IH_i%*%r_i)
     DCLSi[i] <- as.numeric(DFBETACi[[i]]%*%M%*%t(DFBETACi[[i]]))/n_beta
     if(dim(inv_C_i)[1] == 1) {DFBETAOij[[i]] <- DFBETACi[[i]]
     } else {
@@ -71,19 +72,21 @@ mc_influence <- function(object, id) {
   }
   DFBETACi <- do.call(rbind, DFBETACi)
   DFBETAOij <- do.call(rbind, DFBETAOij)
-  DCOij = do.call(rbind, apply(DFBETAOij, MARGIN = 1,
-                               function(x,M,n_beta)t(x)%*%M%*%x/n_beta,
-                               M = M, n_beta = n_beta))
-  std.error <- coef(object, std.error = TRUE)$Std.error
+  DCOij <- apply(DFBETAOij, MARGIN = 1,
+                function(x,M,n_beta)as.numeric((t(x)%*%M%*%x)/n_beta),
+                M = M, n_beta = n_beta)
+  std.error <- coef(object, type = "beta", std.error = TRUE)$Std.error
   DFBETACi = data.frame(as.matrix(DFBETACi))/std.error
   DFBETAOij = data.frame(as.matrix(DFBETAOij))/std.error
   names(DFBETACi) <- do.call(c, object$beta_names)
   names(DFBETAOij) <- do.call(c, object$beta_names)
-  output_id <- data.frame(DFBETACi, "Leverage" = as.numeric(Hid),
-                          "Cook" = as.numeric(DCLSi))
-  output_obs <- data.frame(DFBETAOij, "Leverage" = as.numeric(Hobs),
-                          "Cook" = as.numeric(DCOij))
-  output <- list("Id" = output_id, "Obs" = output_obs)
+  DFBETACi$Leverage <- as.numeric(Hid)
+  DFBETACi$Cook <- as.numeric(DCLSi)
+  DFBETAOij$Leverage <- as.numeric(Hobs)
+  DFBETAOij$Cook <- as.numeric(DCOij)
+  DFBETAOij$Id <- rownames(object$data)
+  DFBETACi$Id <- uni_id
+  output <- list("Id" = DFBETACi, "Obs" = DFBETAOij)
   return(output)
 }
 
diff --git a/R/mc_initial_values.R b/R/mc_initial_values.R
index 53f2dcef07476066962882edf0d1da27aea1b400..bbbaa5cc51e56be156f7e10016cb4d57dc57651c 100644
--- a/R/mc_initial_values.R
+++ b/R/mc_initial_values.R
@@ -84,13 +84,13 @@ mc_initial_values <- function(linear_pred, matrix_pred, link, variance, covarian
     tau_extra <- lapply(matrix_pred, length)
     list_initial$tau <- list()
     for (i in 1:n_resp) {
-        if (covariance == "identity") {
+        if (covariance[i] == "identity") {
             list_initial$tau[[i]] <- as.numeric(c(tau0_initial[[i]], rep(0, c(tau_extra[[i]] - 1))))
         }
-        if (covariance == "inverse") {
+        if (covariance[i] == "inverse") {
             list_initial$tau[[i]] <- as.numeric(c(1/tau0_initial[[i]], rep(0, c(tau_extra[[i]] - 1))))
         }
-        if (covariance == "expm") {
+        if (covariance[i] == "expm") {
             list_initial$tau[[i]] <- as.numeric(c(exp(tau0_initial[[i]]), rep(0.1, c(tau_extra[[i]] - 1))))
         }
     }
diff --git a/man/mc_dfbetaOij.Rd b/man/mc_dfbetaOij.Rd
new file mode 100644
index 0000000000000000000000000000000000000000..b7f16ea6816d72b1d9533b0886436e2eff8ea577
--- /dev/null
+++ b/man/mc_dfbetaOij.Rd
@@ -0,0 +1,31 @@
+% Generated by roxygen2 (4.1.1): do not edit by hand
+% Please edit documentation in R/mc_influence.R
+\name{mc_dfbetaOij}
+\alias{mc_dfbetaOij}
+\title{Influence measures for McGLMs}
+\usage{
+mc_dfbetaOij(Di, Ci, inv_Ci, ri, inv_M)
+}
+\arguments{
+\item{Di}{D matrix for the cluster i.}
+
+\item{Ci}{C matrix for the cluster i.}
+
+\item{inv_Ci}{Inverse of C matrix for the cluster i.}
+
+\item{ri}{Residual vector for the cluster i.}
+
+\item{inv_M}{Inverse of variance/covariance of regression parameters.}
+}
+\value{
+Matrix with the DFBETA for observation in the cluster i.
+}
+\description{
+Compute influence measures for multivariate covariance
+generalized linear models. Leverage, DFBETA and Cook's distance
+for observations. Auxiliar function for \code{mc_influence}.
+}
+\author{
+Wagner Hugo Bonat, \email{wbonat@ufpr.br}
+}
+
diff --git a/man/mc_influence.Rd b/man/mc_influence.Rd
index 2886d739c81d4688bc55658ce53b94a54d5689e3..6f80a608812d7d68c2a6baf12ca6b82110475967 100644
--- a/man/mc_influence.Rd
+++ b/man/mc_influence.Rd
@@ -2,22 +2,26 @@
 % Please edit documentation in R/mc_influence.R
 \name{mc_influence}
 \alias{mc_influence}
-\title{Influence measures}
+\title{Influence measures for McGLMs}
 \usage{
 mc_influence(object, id)
 }
 \arguments{
-\item{object}{An object of mcglm class.}
+\item{object}{An object of \code{mcglm} class.}
 
-\item{id}{a vector which identifies the clusters. The length and order of id should be the
-same as the number of observations. Data are assumed to be sorted so that observations on a cluster
-are contiguous rows for all entities in the formula.}
+\item{id}{a vector which identifies the clusters.
+The length and order of id should match with the number of
+observations.}
 }
 \value{
-A matrix. Note that the function assumes that the data are in the correct order.
+A list with influence measures for cluster and observations.
 }
 \description{
-Compute influence measures for multivariate covariance generalized linear models.
-Leverage, DFBETA and Cook's distance for unit sample and observations.
+Compute influence measures for multivariate covariance
+generalized linear models. Leverage, DFBETA and Cook's distance
+for unit sample and observations.
+}
+\author{
+Wagner Hugo Bonat, \email{wbonat@ufpr.br}
 }
 
diff --git a/man/mc_sic_covariance.Rd b/man/mc_sic_covariance.Rd
new file mode 100644
index 0000000000000000000000000000000000000000..01fab7dcea81b0e6fc4d091c1cdf151d63396ac5
--- /dev/null
+++ b/man/mc_sic_covariance.Rd
@@ -0,0 +1,31 @@
+% Generated by roxygen2 (4.1.1): do not edit by hand
+% Please edit documentation in R/mc_sic_covariance.R
+\name{mc_sic_covariance}
+\alias{mc_sic_covariance}
+\title{Compute the score information criterion (SIC) for multivariate
+covariance generalized linear models.}
+\usage{
+mc_sic_covariance(object, scope, idx, data, penalty = 2, response)
+}
+\arguments{
+\item{object}{an object representing a model of \code{mcglm} class.}
+
+\item{scope}{a list of matrices to be tested in the matrix linear
+predictor.}
+
+\item{idx}{Indicator of matrices belong to the same effect.}
+
+\item{data}{data frame containing all variables envolved in the model.}
+
+\item{penalty}{penalty term (default = 2).}
+
+\item{response}{Indicate for which response variable SIC is computed.}
+}
+\value{
+A data frame with SIC values for each matrix in the scope
+argument.
+}
+\description{
+Compute SIC for covariance parameters in McGLMS.
+}
+