'Gives the covariance matrix of the corresponding VAR-representation.
More precisely, the covariance matrix of the vector consisting of the
columns of the corresponding VAR coefficient matrices (i.e.
vec(self.var_rep)).
Returns
cov : array (neqs**2 * k_ar x neqs**2 * k_ar)'

@cache_readonly
def cov_var_repr(self):

    if ((self.k_ar - 1) == 0):
        return self.cov_params_wo_det
    vecm_var_transformation = np.zeros((((self.neqs ** 2) * self.k_ar), ((self.neqs ** 2) * self.k_ar)))
    eye = np.identity((self.neqs ** 2))
    vecm_var_transformation[:(self.neqs ** 2), :(2 * (self.neqs ** 2))] = hstack((eye, eye))
    for i in range(2, self.k_ar):
        start_row = ((self.neqs ** 2) + ((i - 2) * (self.neqs ** 2)))
        start_col = ((self.neqs ** 2) + ((i - 2) * (self.neqs ** 2)))
        vecm_var_transformation[start_row:(start_row + (self.neqs ** 2)), start_col:(start_col + (2 * (self.neqs ** 2)))] = hstack(((- eye), eye))
    vecm_var_transformation[(- (self.neqs ** 2)):, (- (self.neqs ** 2)):] = (- eye)
    return chain_dot(vecm_var_transformation, self.cov_params_wo_det, vecm_var_transformation.T)
